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

如何在matlab中相乘两个不等矩阵?,matlab,matrix,Matlab,Matrix,我要乘c1和c2,这是一个不等矩阵。我得到以下错误: 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/(N

我要乘
c1
c2
,这是一个不等矩阵。我得到以下错误:

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;

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


最接近的方法是用零填充其中一个矩阵,以获得与规则匹配的维度-但是您可能无法获得预期的结果。

您不能。只有当第一个矩阵的宽度与第二个矩阵的高度相同时,矩阵乘法才被定义。K如何填充零。如果我将零填充到c1和c3,则o1,o2,o3的输出得到不同的值。对于CIp1,CIp2和CIp3会有所不同,所以我要做的是请帮助我…你能举一个例子说明你期望得到的结果吗?比如o1=[3 4 5 6],o2=[4 5 6 7],o3=[3 5 7];所以我想得到“p”的结果,通过填充零,我可以得到“p”的值,但是对于CIp1,CIp2和CIp3,我得不到,先生。。。
??? Error using ==> times
Matrix dimensions must agree.

Error in ==> batwsn at 13

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