这个可以这么做,先编写函数,输入A和B,然后得到A和B的大小,如果可以作乘法(即A的列数等于B的行数),那么返回C=A*B,否则就判断两个矩阵的行数和列数是否相等,如果是,就返回C=A.*B,否则就用error返回错误。
function C=jzcj(A,B)
[m,n] = size(A);%获取A的行数m和列数n
[r,s] = size(B);%获取B的行数r和列数s
if(n==r) %判断A的列数等于B的行数
C=A*B;
elseif(m==r && n==s)%判断两个矩阵的行数和列数是否相等
C=A.*B;
else
error('错误,矩阵的大小没匹配上!')
end
end
调用该函数的主函数:
A=[1,2,3; 4,5,6];
B1=[1,3,5; 2,4,6];
B2 = [1,4; 2,5; 3,6];
B3 = [1,3; 2,4];
C1=jzcj(A,B1)
C2=jzcj(A,B2)
C3=jzcj(A,B3)
最后结果:
C1 =
1 6 15
8 20 36
C2 =
14 32
32 77
错误使用 jzcj (line 9)
错误,矩阵的大小没匹配上!
可见确实是三种情况都有了,大功告成!!