matlab A(m ,2)B(n,2)矩阵相减.
问题描述:
matlab A(m ,2)B(n,2)矩阵相减.
求C=B-A,条件:当B(:,1)和A(:,1)中有元素相等时,对此行的A(m ,2)B(n,2)矩阵相减.
如:A=[1,3;2,4;3,5;4,7;6,8;] B=[2,5;4,6;6,8;]
结果为C=[2,1;4,-1]
答
function [C] = nn(A,B)
%必须保证输入A、B格式正确
[ma,na]=size(A);
[mb,nb]=size(B);
m=1;
for i=1:mb
for j=1:ma
if B(i,1)==A(j,1)&&B(i,2)~=A(j,2)
C(m,1)=B(i,1);
C(m,2)=B(i,2)-A(j,2);
m=m+1;
end
end
end
end
按你的意思写的,你把上面的另存为nn.m文件,用matlab运行即可.我忘了说了 在B(:,1)和A(:,1)中有相同的值就是说有重复的是呀,程序就是这样。我的意思是B(:,1)中有相同的 B(:,1) 而对应的B(:,2)不同。由于这个原因 程序一直没跑出来。我估摸着要把它相同的行删除。你用我的程序啊,能跑出来,我是全部遍历的,就算重复只是往C里面添加,没问题哦~~如果说不清楚,你可以用百度hi问我。