42 lines
1 KiB
Text
42 lines
1 KiB
Text
print
|
|
dim a(2, 2)
|
|
a(1,1) = 1 : a(1,2) = 2 : a(2,1) = 3 : a(2,2) = 4
|
|
dim b(2, 2)
|
|
b(1,1) = 0 : b(1,2) = 5 : b(2,1) = 6 : b(2,2) = 7
|
|
kronecker_product(a, b)
|
|
|
|
print
|
|
dim a(3, 3)
|
|
a(1,1) = 0 : a(1,2) = 1 : a(1,3) = 0
|
|
a(2,1) = 1 : a(2,2) = 1 : a(2,3) = 1
|
|
a(3,1) = 0 : a(3,2) = 1 : a(3,3) = 0
|
|
dim b(3, 4)
|
|
b(1,1) = 1 : b(1,2) = 1 : b(1,3) = 1 : b(1,4) = 1
|
|
b(2,1) = 1 : b(2,2) = 0 : b(2,3) = 0 : b(2,4) = 1
|
|
b(3,1) = 1 : b(3,2) = 1 : b(3,3) = 1 : b(3,4) = 1
|
|
kronecker_product(a, b)
|
|
end
|
|
|
|
sub kronecker_product(a, b)
|
|
local i, j, k, l
|
|
ua1 = arraysize(a(), 1)
|
|
ua2 = arraysize(a(), 2)
|
|
ub1 = arraysize(b(), 1)
|
|
ub2 = arraysize(b(), 2)
|
|
|
|
for i = 1 to ua1
|
|
for k = 1 to ub1
|
|
print "[";
|
|
for j = 1 to ua2
|
|
for l = 1 to ub2
|
|
print a(i, j) * b(k, l) using "##";
|
|
if j = ua1 and l = ub2 then
|
|
print "]"
|
|
else
|
|
print " ";
|
|
endif
|
|
next
|
|
next
|
|
next
|
|
next
|
|
end sub
|