在matlab中检查矩阵是否为Nan
我有一个矩阵在matlab中检查矩阵是否为Nan,matlab,matrix,Matlab,Matrix,我有一个矩阵。如何检查矩阵中的所有值是否为NaN 基本上,我想检查矩阵是否只包含带有if语句的NaN值。解决方案 使用以下语法: res = ~any(~isnan(X(:))); 如果res==true,则表示矩阵仅包含nan值 示例 X = nan(3,3) ~any(~isnan(X(:))) X(1,2) = 0; ~any(~isnan(X(:))) 结果 ans = 1 ans = 0 解决方案 使用以下语法: res = ~any(~isnan(X(:))); 如果res
。如何检查矩阵中的所有值是否为NaN
基本上,我想检查矩阵是否只包含带有
if语句的NaN值。
解决方案
使用以下语法:
res = ~any(~isnan(X(:)));
如果res==true,则表示矩阵仅包含nan值
示例
X = nan(3,3)
~any(~isnan(X(:)))
X(1,2) = 0;
~any(~isnan(X(:)))
结果
ans = 1
ans = 0
解决方案 使用以下语法:
res = ~any(~isnan(X(:)));
如果res==true,则表示矩阵仅包含nan值
示例
X = nan(3,3)
~any(~isnan(X(:)))
X(1,2) = 0;
~any(~isnan(X(:)))
结果
ans = 1
ans = 0
让我们考虑x是n/p>的向量
x = nan(1,100);
要检查所有值是否为nan,可以执行以下操作
if(~isempty(find(isnan(x))))
让我们考虑x是n/p>的向量
x = nan(1,100);
要检查所有值是否为nan,可以执行以下操作
if(~isempty(find(isnan(x))))
任何(~isnan(X))都会做同样的事情。它会检查是否有任何东西比护身符更有效!谢谢我会再次查看你编辑的帖子。我认为这是不对的。我的主要问题仍然存在。你试过了吗?如果矩阵只包含
NaN
和false
,否则它真的会给你true
!我将添加一个示例来说明itany(~isnan(X))也会做同样的事情。它会检查是否有任何东西比护身符更有效!谢谢我会再次查看你编辑的帖子。我认为这是不对的。我的主要问题仍然存在。你试过了吗?如果矩阵只包含NaN
和false
,否则它真的会给你true
!我将添加一个示例来展示它的奇妙之处。现在用x=[1 2 3]
试试。发生了什么?这不是有效的MATLAB代码(如果if
必须有end
)。另外,if
的参数总是true
,除非重新定义nan
函数以返回空数组。@AnderBiguri我在帖子中做了一个编辑,我忘了添加find,现在试试x=[1 2 3]
,什么happens@AnderBiguri1)用户可以在末尾添加'end',这是他完成语法所必须做的2)阅读OP他只想检查所有向量是否都是nan向量“基本上我想检查矩阵是否只包含nan值”非常棒。现在用x=[1 2 3]
试试。发生了什么?这不是有效的MATLAB代码(如果if
必须有end
)。另外,if
的参数总是true
,除非重新定义nan
函数以返回空数组。@AnderBiguri我在帖子中做了一个编辑,我忘了添加find,现在试试x=[1 2 3]
,什么happens@AnderBiguri1)用户可以在末尾添加'end',这是完成语法所必须做的2)阅读OP他只想检查所有向量是否都是nan向量“基本上我想检查矩阵是否只包含nan值”