Matrix multiplication: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 2,530: | Line 2,530: | ||
endfor; |
endfor; |
||
enddefine;</lang> |
enddefine;</lang> |
||
=={{header|PowerShell}}== |
|||
{{works with|PowerShell|4.0}} |
|||
<lang PowerShell> |
|||
function array-mult($A, $B) { |
|||
$C = @() |
|||
if($n -gt 0) { |
|||
$C = 0..($n-1)| foreach{@(0)} |
|||
0..($n-1)| foreach{ |
|||
$i = $_ |
|||
$C[$i] = 0..($n-1)| foreach{ |
|||
$j = $_ |
|||
$((0..($n-1) | foreach{ |
|||
$k = $_ |
|||
$A[$i][$k]*$B[$k][$j] |
|||
} | measure -Sum).Sum) |
|||
} |
|||
} |
|||
} |
|||
$C |
|||
} |
|||
function show($a) { |
|||
if($a.Count -gt 0) { |
|||
$n = $a.Count - 1 |
|||
0..$n | foreach{ "$($a[$_][0..$n])" } |
|||
} |
|||
} |
|||
$A = @(@(1,2),@(3,4)) |
|||
$B = @(@(5,6),@(7,8)) |
|||
$I = @(@(1,0),@(0,1)) |
|||
$C = array-mult $A $B |
|||
$D = array-mult $A $I |
|||
show $C |
|||
" " |
|||
show $D |
|||
</lang> |
|||
<b>Output:</b> |
|||
<pre> |
|||
19 22 |
|||
43 50 |
|||
1 2 |
|||
3 4 |
|||
</pre> |
|||
=={{header|Prolog}}== |
=={{header|Prolog}}== |
||
{{trans|Scheme}} |
{{trans|Scheme}} |