小编use*_*235的帖子

MATLAB - 如何用零替换每列中的第一个NaN?

我有一系列具有正值的列,然后是NaN,例如:

12    16    10
11    13    9
8     10    7 
7     6     5
4     1     4
2     NaN   2
NaN   NaN   1
NaN   NaN   NaN
Run Code Online (Sandbox Code Playgroud)

如果是这个矩阵A,那么可以使用以下方法找到每列中第一个NaN的(行)位置:sum(~isnan(A))

我现在想用零替换每个位置中的NaN,例如:

12    16    10
11    13    9
8     10    7 
7     6     5
4     1     4
2     0     2
0     NaN   1
NaN   NaN   0
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试使用逻辑,索引和循环方法的组合失败了,创建了一个新的矩阵,其中所有NaN都为零,每个找到的行中的所有值都为零,或者只将第一列或最后一列中的NaN作为零.

实现这一目标的最佳方法是什么?谢谢.

matlab loops matrix nan

1
推荐指数
2
解决办法
694
查看次数

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

我有值的列减少到〜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'没有成功.请告知实现此目的的最佳方法.谢谢.

matlab loops row matrix find

0
推荐指数
1
解决办法
605
查看次数

标签 统计

loops ×2

matlab ×2

matrix ×2

find ×1

nan ×1

row ×1