我想寻找在MATLAB中高效地(即不使用for循环)从矩阵中移除NaN数字的方法。
以下是一个简单的例子来说明我的目标:
假设我有一个矩阵M:
以下是一个简单的例子来说明我的目标:
假设我有一个矩阵M:
3.00 1.00
1.00 3.00
NaN NaN
3.00 3.00
1.00 1.00
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
我想找到一种方法将此更改为
3.00 1.00
1.00 3.00
3.00 3.00
1.00 1.00
我目前正在尝试使用M(isfinite(M))来实现,但这会返回一个向量而不是矩阵。有什么技巧可以让它返回一个矩阵吗?
M(all(isnan(M), 1), :) = [];
做到这一点,由于某种原因它没有起作用。我转置并使用了这个方法,但应该有更好的方法。谢谢。 - discipulusinf
值。最好使用M(~isnan(M(:, 1)), :)
。 - Luis Mendo