The matrix multiplication product C of two matrices A and B is defined as:

 c_(ik)=a_(ij)b_(jk)

In this equation,  j is added for each conceivable estimation of i and k and the documentation above utilizes the Einstein summation, effectively demonstrating a matrix multiplication calculator. The inferred summation over rehashed records without the nearness of an unequivocal aggregate sign is called Einstein summation and is generally utilized in both network and tensor examination. According to matrix multiplication rules, for grid duplication to be characterized, the components of the lattices must fulfill 

 (n×m)(m×p)=(n×p),

where (a×b) denotes a matrix with a rows and b columns. Writing out the product explicitly,

 [c_(11) c_(12) ... c_(1p); c_(21) c_(22) ... c_(2p); | | ... |; c_(n1) c_(n2) ... c_(np)]=[a_(11) a_(12) ... a_(1m); a_(21) a_(22) ... a_(2m); | | ... |; a_(n1) a_(n2) ... a_(nm)][b_(11) b_(12) ... b_(1p); b_(21) b_(22) ... b_(2p); | | ... |; b_(m1) b_(m2) ... b_(mp)],  

where

c_(11) = a_(11)b_(11)+a_(12)b_(21)+...+a_(1m)b_(m1)
c_(12) = a_(11)b_(12)+a_(12)b_(22)+...+a_(1m)b_(m2)
c_(1p) = a_(11)b_(1p)+a_(12)b_(2p)+...+a_(1m)b_(mp)
c_(21) = a_(21)b_(11)+a_(22)b_(21)+...+a_(2m)b_(m1)
c_(22) = a_(21)b_(12)+a_(22)b_(22)+...+a_(2m)b_(m2)
c_(2p) = a_(21)b_(1p)+a_(22)b_(2p)+...+a_(2m)b_(mp)
c_(n1) = a_(n1)b_(11)+a_(n2)b_(21)+...+a_(nm)b_(m1)
c_(n2) = a_(n1)b_(12)+a_(n2)b_(22)+...+a_(nm)b_(m2)
c_(np) = a_(n1)b_(1p)+a_(n2)b_(2p)+...+a_(nm)b_(mp).

Matrix multiplication is associative, as can be seen by taking

 [(ab)c]_(ij)=(ab)_(ik)c_(kj)=(a_(il)b_(lk))c_(kj),  

where Einstein summation is  used again. Now, since a_(il)b_(lk), and c_(kj) are scalars,  the associativity of scalar multiplication to write

 (a_(il)b_(lk))c_(kj)=a_(il)(b_(lk)c_(kj))=a_(il)(bc)_(lj)=[a(bc)]_(ij).  

Since this is true for all i and j, it must be true that

 (ab)c=a(bc).

without equivocalness. Because of associativity, frameworks structure a semigroup under duplication. 

That is, matrix multiplication is associative. The equation can, therefore, be written as:

 [abc]_(ij)=a_(il)b_(lk)c_(kj),  

without ambiguity. Due to associativity, matrices form a semigroup under multiplication.

Matrix increase is also distributive. On the off chance that An and B are m×n grids and C and D are n×p networks, at that point 

A(C+D) = AC+AD  
(A+B)C = AC+BC.  

Since n×n lattices structure an Abelian bunch under expansion, n×n frameworks structure a ring. 

Be that as it may, lattice augmentation isn’t, by and large, commutative (despite the fact that it is commutative if An and B are corner to corner and of a similar measurement). 

The result of two square lattices is given by increasing each square

 [o o    ; o o    ;   o   ;    o o o;    o o o;    o o o][x x    ; x x    ;   x   ;    x x x;    x x x;    x x x] 
 =[[o o; o o][x x; x x]  ;  [o][x] ;   [o o o; o o o; o o o][x x x; x x x; x x x]].