如何在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;