如何在Matrix中获取非NAN元素的值?

时间:2016-02-09 00:05:13

标签: matlab matrix

我有一个巨大的矩阵,我需要非NAN元素的行,列和值。

当我有零(而不是NAN)和非零元素时,这是有效的:

[rwpRow, rwpCol, rwpVal] = find( zerotest )

但是当我为NAN矩阵执行此操作时,我得到所有1个值。

[rwpRow, rwpCol, rwpVal] = find(~isnan(nantest))

我该怎么做?

2 个答案:

答案 0 :(得分:4)

find的输入是一个逻辑数组,对于所有非纳米元素为1。那是你获得的1而find没有"看到"实际价值。您必须将其拆分为单独的调用:

select=~isnan(nantest)
[rwpRow, rwpCol] = find(select)
rwpVal=nantest(select)

答案 1 :(得分:0)

您只能在调用find时获取行和列,因为它在~isnan(nantest)中找到了1。在另一个步骤中获取矩阵中的所有非NaN值:

[rwpRow, rwpCol] = find(~isnan(nantest));
vals = nantest(~isnan(nantest));