如何根据任一向量上的条件修改多个向量



我在MATLAB中有两个向量:

AA = [1 2 3 5 6 7 100 1 4 5];
BB = [1 100 3 4 5 8 9 10 11 12];

两者长度相同。

如果数字100出现在任一向量中,我想用0替换它,并用0替换另一个矩阵中的相应数字(即使不是100(。

期望输出:

AA = [1 0 3 6 7 0 1 4 5];
BB = [1 0 3 4 5 0 9 10 11 12];

我正在努力寻找解决方案,我可以考虑创建第三个向量,并尝试使用一些逻辑规则,但我似乎无法做到这一点。

CC = [AA' BB'];
% logical rules here

使用布尔运算符|(OR(获取索引:

AA = [1 2 3 5 6 7 100 1 4 5];
BB = [1 100 3 4 5 8 9 10 11 12];
ind = AA == 100 | BB == 100;
AA(ind) = 0
BB(ind) = 0

如果您确实从向量创建了一个矩阵,那么您可以使用any进行逻辑索引。如果你实际上有两个以上的矢量,这是灵活的:

C = [AA; BB]; % Each row is one of the original vectors
C( :, any(C == 100, 1)) = 0;
% C = [ 1     0     3     5     6     7     0     1     4     5
%       1     0     3     4     5     8     0    10    11    12 ]

相关内容

  • 没有找到相关文章

最新更新