我有一个巨大的矩阵,我需要非NAN元素的行,列和值。
当我有零(而不是NAN)和非零元素时,这是有效的:
[rwpRow, rwpCol, rwpVal] = find( zerotest )
但是当我为NAN矩阵执行此操作时,我得到所有1个值。
[rwpRow, rwpCol, rwpVal] = find(~isnan(nantest))
我该怎么做?
答案 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));