Skip to main content
added 191 characters in body
Source Link
user484
user484
matrix2x2
(* {{{a1, a2}, {b1, b2}}, {{c1, c2}, {d1, d2}}} *)
Map[Hold, matrix2x2, {2}]
(* {{Hold[{a1, a2}], Hold[{b1, b2}]}, {Hold[{c1, c2}], Hold[{d1, d2}]}} *)

And so:

ReleaseHold[Map[Hold, matrix2x2, {2}].Map[Hold, matrix2x2, {2}]]
 
(* {{{a1^2 + b1 c1, a2^2 + b2 c2},
     {a1 b1 + b1 d1, a2 b2 + b2 d2}},
    {{a1 c1 + c1 d1, a2 c2 + c2 d2},
     {b1 c1 + d1^2, b2 c2 + d2^2}}} *)
ReleaseHold[Map[Hold, matrix2x2, {2}].Map[Hold, matrix2x2, {2}]]
 
(* {{{a1^2 + b1 c1, a2^2 + b2 c2},
     {a1 b1 + b1 d1, a2 b2 + b2 d2}},
    {{a1 c1 + c1 d1, a2 c2 + c2 d2},
     {b1 c1 + d1^2, b2 c2 + d2^2}}} *)
matrix2x2
(* {{{a1, a2}, {b1, b2}}, {{c1, c2}, {d1, d2}}} *)
Map[Hold, matrix2x2, {2}]
(* {{Hold[{a1, a2}], Hold[{b1, b2}]}, {Hold[{c1, c2}], Hold[{d1, d2}]}} *)

And so:

ReleaseHold[Map[Hold, matrix2x2, {2}].Map[Hold, matrix2x2, {2}]]
(* {{{a1^2 + b1 c1, a2^2 + b2 c2},
     {a1 b1 + b1 d1, a2 b2 + b2 d2}},
    {{a1 c1 + c1 d1, a2 c2 + c2 d2},
     {b1 c1 + d1^2, b2 c2 + d2^2}}} *)
Source Link
user484
user484

ReleaseHold[Map[Hold, matrix2x2, {2}].Map[Hold, matrix2x2, {2}]]

(* {{{a1^2 + b1 c1, a2^2 + b2 c2},
     {a1 b1 + b1 d1, a2 b2 + b2 d2}},
    {{a1 c1 + c1 d1, a2 c2 + c2 d2},
     {b1 c1 + d1^2, b2 c2 + d2^2}}} *)