【问题标题】:Check if matrix is not Nan in matlab在matlab中检查矩阵是否不是Nan
【发布时间】:2016-06-30 22:03:17
【问题描述】:

我有一个矩阵<1x100>。如何检查矩阵中的所有值是否都是 NaN?

基本上我想检查矩阵是否只包含带有if-statement.的NaN值

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    解决方案

    使用以下语法:

    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
    

    【讨论】:

    • any(~isnan(X)) 会做同样的事情。它检查是否有任何不是 nan
    • 像魅力一样工作!谢谢!
    • 我会再次检查您编辑的帖子。我不认为这是正确的。
    • 我的主要问题仍然存在。你试过了吗?如果矩阵只包含NaNfalse,它真的会给你true 吗?
    • @AndrasDeak 当然!我将添加一个示例来展示它
    【解决方案2】:

    让我们考虑 x 它是 nan 的向量

    x = nan(1,100);
    

    要检查所有值是否都是 nan ,您可以这样做

    if(~isempty(find(isnan(x))))
    

    【讨论】:

    • 太棒了。现在尝试使用 x=[1 2 3] 。会发生什么?
    • 这是无效的 MATLAB 代码(if 必须有 end)。此外,if 的参数始终为 true,除非您重新定义 nan 函数以返回空数组。
    • @AnderBiguri 我在我的帖子中进行了编辑,我忘了添加 find ,现在试试 x = [1 2 3] ,会发生什么
    • @AnderBiguri 1) 用户可以在最后添加“end”,这是他完成语法必须做的事情 2) 阅读他只想检查所有向量是否为 nan vector 的 OP基本上我想检查矩阵是否只包含 NaN 值”
    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 2015-02-09
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2019-03-09
    • 2013-05-17
    • 2017-08-12
    相关资源
    最近更新 更多