有没有现成的函数不知道,但是实现起来应该不难。我采用跟C类似的方法经过两次循环实现的。代码如下:
[ra,ca] = size(a);
[rb,cb] = size(b);
for i = 1:ra*ca
for j = 1:rb*cb
if a(i) == b(j)
a(i) = 0;
end
end
end
a,b可以为任意形式的矩阵。
这样也可以,依次找到与b每个数相等的a数列编号,再赋值为零。
index=[];
for i = 1:length(b)
index = [index; find(a==b(i))];
end
a(index)=0;
%向量化的方式(代码是不是很犀利)
for i=1:length(b(:)) %感谢某兄弟的提示,不是length(b)
a(a==b(i))=0;
end
用循环来实现吧,假设a矩阵共有m个元素,b矩阵共有n个元素
for i=1:m
for j=1:n
if a(i)==b(j)
a(i)=0
end
end
end
就行了。
可以这样写:
a=[ 1 2 3;4 1 2]
b=[2,3 4]'
for i=1:length(b)
a(find(a==b(i)))=0;
end
a
--------------运行结果:
a =
1 2 3
4 1 2
b =
2
3
4
a =
1 0 0
0 1 0