如何找到满足特定条件的矩阵行的索引?

时间:2017-06-24 00:13:33

标签: matlab vector

我有(Idx = 3, 8, and 10)矩阵mx3的两行索引A,其相关元素如下A所示:

A = [7 4 5
     8 4 5
     NaN NaN NaN
     1 4 5
     1 5 5
     7 4 5
     2 4 5
     4 5 7
     2 4 6
     NaN NaN NaN];

我想要提取具有最后all NaNs的行;这可能发生在矩阵A的任何一行中。

1 个答案:

答案 0 :(得分:2)

使用isnan查找NaN s的位置,并使用all查找所有元素均为NaN的行。找到所述条件为真的idx元素,最后得到满足这些条件的idx的最后一个元素。

idx=idx(all(isnan(A(idx,:)),2)); %elements of idx for which A has all NaNs
idx=idx(end);                    %last element of idx for which A has all NaNs

或者如果您想要单行,则使用find,方向为'last'

idx=idx(find(all(isnan(A(idx,:)),2),1,'last'));