32 lines
639 B
Lua
32 lines
639 B
Lua
function MatMul( m1, m2 )
|
|
if #m1[1] ~= #m2 then -- inner matrix-dimensions must agree
|
|
return nil
|
|
end
|
|
|
|
local res = {}
|
|
|
|
for i = 1, #m1 do
|
|
res[i] = {}
|
|
for j = 1, #m2[1] do
|
|
res[i][j] = 0
|
|
for k = 1, #m2 do
|
|
res[i][j] = res[i][j] + m1[i][k] * m2[k][j]
|
|
end
|
|
end
|
|
end
|
|
|
|
return res
|
|
end
|
|
|
|
-- Test for MatMul
|
|
mat1 = { { 1, 2, 3 }, { 4, 5, 6 } }
|
|
mat2 = { { 1, 2 }, { 3, 4 }, { 5, 6 } }
|
|
erg = MatMul( mat1, mat2 )
|
|
for i = 1, #erg do
|
|
for j = 1, #erg[1] do
|
|
io.write( erg[i][j] )
|
|
io.write(" ")
|
|
end
|
|
io.write("\n")
|
|
end
|