Multiplying 3D matrices
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Aj
 am 20 Aug. 2019
  
    
    
    
    
    Bearbeitet: Bruno Luong
      
      
 am 20 Aug. 2019
            To 3d-Matrix:
How can i multiplicate two 3d-Matrizes? 
When i use following code:
A1=[1,2;3,4];
B1=[5,6;7,8];
C1=[9,10;11,12];
Z1=cat(3,A1,B1,C1)
A2=[1,2;3,4];
B2=[5,6;7,8];
C2=[9,10;11,12];
Z2=cat(3,A2,B2,C2)
Z=Z1*Z2
Then comes this Error:
Error using  * 
Arguments must be 2-D, or at least one argument must be scalar. Use TIMES (.*) for elementwise multiplication.
But when I use (.*), its the wrong multiplication, because its elementwise and i want a matrixmultiplication.
The result of the first array with .* is 
Z(:,:,1) =
     1     4
     9    16
But it should be like
>> A1 * A2
ans =
     7    10
    15    22
Maybe someone can help.
0 Kommentare
Akzeptierte Antwort
  Bruno Luong
      
      
 am 20 Aug. 2019
        There is no stock function (what a MATRIX LABORATORY doesn't have such feature?), but here it is MTIMESX
2 Kommentare
  Bruno Luong
      
      
 am 20 Aug. 2019
				
      Bearbeitet: Bruno Luong
      
      
 am 20 Aug. 2019
  
			A1=[1,2;3,4];
B1=[5,6;7,8];
C1=[9,10;11,12];
Z1=cat(3,A1,B1,C1)
A2=[1,2;3,4];
B2=[5,6;7,8];
C2=[9,10;11,12];
Z2=cat(3,A2,B2,C2)
Z=mtimesx(Z1,Z2) % HERE IT IS, SO SIMPLE
Z1(:,:,1) =
     1     2
     3     4
Z1(:,:,2) =
     5     6
     7     8
Z1(:,:,3) =
     9    10
    11    12
Z2(:,:,1) =
     1     2
     3     4
Z2(:,:,2) =
     5     6
     7     8
Z2(:,:,3) =
     9    10
    11    12
Z(:,:,1) =
     7    10
    15    22
Z(:,:,2) =
    67    78
    91   106
Z(:,:,3) =
   191   210
   231   254
>> 
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

