Matlab中矩阵相减

有矩阵a和b,a包含b,如何得到a-b,就是把a中和b相同的项去掉

4.1 数组运算和矩阵运算
从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.
4.1.1 数组运算和矩阵运算指令形式和实质内涵
数组运算
矩阵运算
指令
含义
指令
含义
A.'
非共轭转置
A'
共轭转置
A=s
把标量s赋给数组A的每个元素
s+B
把标量s分别与数组B的每个元素相加
s-B, B-s
标量s分别与数组B的元素之差
s.*A
标量s分别与数组A的元素之积
s*A
标量s分别与矩阵A的元素之积
s./B, B.\s
标量s分别被数组B的元素除
s*inv(B)
矩阵B的逆乘标量s
A.^n
数组A的每个元素的n次方
A^n
A为方阵时,矩阵A的n次方
A+B
数组对应元素的相加
A+B
矩阵相加
A-B
数组对应元素的相减
A-B
矩阵相减
A.*B
数组对应元素的相乘
A*B
内维相同矩阵的乘积
A./B
A的元素被B的对应元素除
A/B
A右除B
B.\A
一定与上相同
B\A
A左除B(一般与右除不同)
exp(A)
以e为底,分别以A的元素为指数,求幂
expm(A)
A的矩阵指数函数
log(A)
对A的各元素求对数
logm(A)
A的矩阵对数函数
sqrt(A)
对A的积各元素求平方根
sqrtm(A)
A的矩阵平方函数
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-12
问题不明确。
1、相同的元素是单个元素还是矩阵块(N*N)
2、相同元素的矩阵块大小,是方形(N*N)还是矩形(N*M)
没有限制,问题是无法解决的。
例如:
A=[1 2 3;4 5 6;5 5 5];
B=[5 5 5];本回答被网友采纳
第2个回答  2010-02-09
用 ismember()
用一个循环,把b过一遍
for i = 1 : length(b)
if (ismember(b(i),a))
b(i) = NaN
end
end
当然你的提问不清楚
如果两个矩阵大小不一样的话你没法直接-的,所以我的理解你就是要把a和b重叠的地方消除。用NaN代替。

哦,不好意思,貌似你的意思是a和b有一部分完全一样是吧?你可以参考一下ismember() 还有find()。你可以补充细节然后我再看看怎么做。本回答被提问者采纳
第3个回答  2010-02-09
集合差setdiff
举个例子
A=[1 2 3;4 5 6]
B=[3 4 5;6 7 8]
setdiff(A(:),B(:))
第4个回答  2015-08-26
A-B 直接运行
相似回答