【问题标题】:MATLAB: How can I cancel ("NaN" value) elements of a matrix based on another matrix's "NaN" values?MATLAB:如何根据另一个矩阵的“NaN”值取消(“NaN”值)矩阵元素?
【发布时间】:2018-03-06 10:55:38
【问题描述】:

假设我有一个矩阵 A=

 1     2     3;
 4     5     6;
 7     8     9

和一个矩阵 B=

1      NaN    3; 
NaN    5      6;  
7      NaN    NaN

我想取消在矩阵 B 中被取消的相同元素。应该是:

A2=

 1     NaN     3;
 NaN     5     6;
 7     NaN     NaN

我该怎么做?

【问题讨论】:

  • 可以使用逻辑索引:A2=A ; A2(isnan(B))=NaN ;
  • @Hoki:请在答案部分回答。

标签: matlab matrix nan relate


【解决方案1】:

您可以创建新矩阵 A2,使得每个元素都是 a2 = b - b + a

这依赖于 NaN 通过表达式求值传播的事实,而 b - b 在所有其他情况下本质上是一个空操作。

也保证不会溢出你的类型。

【讨论】:

  • 在所有其他情况下均无操作,除非b = inf
猜你喜欢
  • 2016-05-18
  • 1970-01-01
  • 2016-09-10
  • 2015-04-17
  • 2015-07-23
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多