matlab 如何把两个矩阵中相同值的元素设为0

来自:    更新日期:早些时候
在MATLAB中的两个矩阵中,怎么当一个矩阵的数据出现0时,另一个矩阵相同位置的数据也要为0~

你好,运行下面的一句话就可以了哦!!
b(find(a==0)) =0;

设A,B为行列数分别相等的两个矩阵。
C=(A==B)
%C为0,1矩阵,等于1的元素位置即A,B相同元素的位置,(0对应不等)

有没有现成的函数不知道,但是实现起来应该不难。我采用跟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


matlab 如何把两个矩阵中相同值的元素设为0视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网