我有列向量 A 和 B:
A'= [1 2 0 0 1 4]
B'= [1 2 3 4 5 6]
我想过滤掉 A 中的零并删除 B 中的相应元素并将它们设置为:
A' = [1 2 1 4]
B' = [1 2 5 6]
我知道有一个快速的 MATLAB 命令可以做到这一点,但无法弄清楚。
最佳答案
最快、最简单的方法是使用逻辑索引:
A = [1 2 0 0 1 4].';
B = [1 2 3 4 5 6].';
nz = (A ~= 0); %# logical matrix for non-zeros in A
A = A(nz) %# non-zeros of A
B = B(nz) %# corresponding elements in B
另一种方式是稍微慢一点
nz = find(A); %# vector of linear indices to non-zero elements
A = A(nz) %# non-zeros of A
B = B(nz) %# corresponding elements in B
关于matlab - matlab中的过滤矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12410450/