MATLAB - 如何在值中大于零(或在NaN序列之前)找到列中的最后一行?

use*_*235 0 matlab loops row matrix find

我有值的列减少到〜1,之后所有剩余的值都是NaN.例如:

10    10
8     9
6     8
5     7
3     5
1     2
NaN   1
NaN   NaN
Run Code Online (Sandbox Code Playgroud)

我需要的是紧接在NaN序列之前的每列的行号,或序列中的最后一个正整数.上例中的第6行和第7行.

虽然循环可能用于查找每列的所需行,但我无法确定找到此行的正确命令.我尝试使用find 'last'没有成功.请告知实现此目的的最佳方法.谢谢.

bla*_*bla 6

如果您的矩阵是a,您可以使用

 sum(isfinite(a))

ans =
     6     7
Run Code Online (Sandbox Code Playgroud)

这意味着对于第一个col它是第6行,而对于第二个col,它是具有最后非NaN值的第7行.

这是另外一样的:sum(~isnan(a))......