请问一下,用matlab怎样编这个的程序

img

这个可以这么做,先编写函数,输入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)
错误,矩阵的大小没匹配上!

可见确实是三种情况都有了,大功告成!!