有没有通用的方法可以从矩阵中删除 NaN?有时我在某些代码中间遇到这个问题,然后它会产生问题以获得适当的输出。有没有办法生成任何类型的检查以避免 MATLAB 代码中出现 NaN?如果有人能给我一个例子并提供一些与之相关的想法,那将非常有帮助。
您可以使用以下命令检测 nan 值isnan功能:
A = [1 NaN 3];
A(~isnan(A))
1 3
这实际上删除了 nan 值,但这并不总是可能的,例如
A = [1 nan; 2 3];
A(~isnan(A))
1
2
3
正如你所看到的,这破坏了矩阵结构。您可以通过首先预分配并将 nan 值设置为零来避免这种情况:
B = zeros(size(A));
B(~isnan(A))=A(~isnan(A))
B =
1 0
2 3
或者,覆盖我们的原始矩阵A
A(isnan(A))=0
A =
1 0
2 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)