将矩阵中的那些元素更改为零,这些元素不在另一个矩阵的列中

时间:2017-02-09 10:37:43

标签: matlab matrix

我有一个100x100矩阵A(包含0到150之间的值)和一个35x4矩阵B。在矩阵A中,我只想保留B第3列中存在的那些值,即B(:,3),并将A中的所有其他值更改为零。因此A的大小将保持不变。这可以实现吗?

我开始创建一个代码,该循环遍历遍历矩阵A的循环,另一个循环遍历B的第3列和if - 语句以表示我的相等条件想要但如何正确定义循环的终结性?

for i=1:size(A,1)
    for j=1:size(B,3)
        if ismember (A(i,i),B(j,3))
            A(B(j,3))=A; % it's false
        end
    end
end

1 个答案:

答案 0 :(得分:0)

这可以使用ismember进行无循环,如下所示:

 A=A.*ismember(A,B(:,3))