RosettaCodeData/Task/Matrix-multiplication/PowerShell/matrix-multiplication.psh

34 lines
621 B
Text
Raw Permalink Normal View History

2016-12-05 22:15:40 +01:00
function multarrays($a, $b) {
2019-09-12 10:33:56 -07:00
$n,$m,$p = ($a.Count - 1), ($b.Count - 1), ($b[0].Count - 1)
if ($a[0].Count -ne $b.Count) {throw "Multiplication impossible"}
$c = @(0)*($a[0].Count)
foreach ($i in 0..$n) {
$c[$i] = foreach ($j in 0..$p) {
$sum = 0
foreach ($k in 0..$m){$sum += $a[$i][$k]*$b[$k][$j]}
$sum
2015-11-18 06:14:39 +00:00
}
}
2016-12-05 22:15:40 +01:00
$c
2019-09-12 10:33:56 -07:00
}
function show($a) { $a | foreach{"$_"}}
2016-12-05 22:15:40 +01:00
$a = @(@(1,2),@(3,4))
$b = @(@(5,6),@(7,8))
$c = @(5,6)
"`$a ="
show $a
""
"`$b ="
show $b
""
"`$c ="
$c
""
"`$a * `$b ="
show (multarrays $a $b)
2015-11-18 06:14:39 +00:00
" "
2016-12-05 22:15:40 +01:00
"`$a * `$c ="
show (multarrays $a $c)