如何在matlab中乘以两个不等矩阵?

时间:2014-06-22 05:51:57

标签: matlab matrix

c1=[1 2 3 4 5 6];
c2=[4 5 6 7 8 9 10];    
c3=[3 5 7 11 12 13];

o1=intersect(c1,union(c2,c3)); 
o2=intersect(c2,union(c1,c3));  
o3=intersect(c3,union(c1,c2));  

p=(c1.*c2).*c3;  

ND21=1;  
ND22=2;  
ND23=3;  

CIa1=1/(ND21);  
CIa2=1/(ND22);  
CIa3=1/(ND23);  

CIp1=(c1-o1)/p; 
CIp2=(c2-o2)/p;  
CIp3=(c3-o3)/p;  

Eavg1=(Ecur1+Ecur2+Ecur3)/ND21;  
Eavg2=(Ecur1+Ecur2+Ecur3)/ND22;  
Eavg3=(Ecur1+Ecur2+Ecur3)/ND23;

我想要乘以c1c2这是一个不相等的矩阵。我收到以下错误:

??? Error using ==> times
Matrix dimensions must agree.

Error in ==> batwsn at 13

p=(c1.*c2).*c3;

1 个答案:

答案 0 :(得分:0)

矩阵乘法的规则是,只有当第一列中的列数等于第二列中的行数时,才能将两个矩阵相乘。这是一个数学原理,所以基本上你不应该期望MatLab这样做。

你最接近的是用零填充其中一个矩阵以获得符合规则的尺寸 - 你可能得不到你期望的结果。