【发布时间】:2017-01-23 15:23:27
【问题描述】:
我有一个矩阵A,即m x n。我想做的是连续计算NaN 元素的数量。如果NaN 元素的数量大于或等于某个任意阈值,则该行中的所有值都将设置为NaN。
num_obs = sum(isnan(rets), 2);
index = num_obs >= min_obs;
就像我说的那样,我正在努力让我的大脑正常工作。正在尝试以下行的不同变体,但没有运气。
rets(index==0, :) = rets(index==0, :) .* NaN;
threshold >= 1 的示例数据为:
A = [-7 -8 1.6 11.9;
NaN NaN NaN NaN;
5.5 6.3 2.1 NaN;
5.5 4.2 2.2 5.6;
NaN NaN NaN NaN];
而我想要的结果是:
A = [-7 -8 1.6 11.9;
NaN NaN NaN NaN;
NaN NaN NaN NaN;
5.5 4.2 2.2 5.6;
NaN NaN NaN NaN];
【问题讨论】:
-
试试这个
rets(index, :) = NaN; -
例如,如果行中至少有 2 个 NaN,您希望行为 = NaN:
M(sum(isnan(M),2)>=2,:) = NaN -
@obchardon 这对我来说很有意义,但是它不断将我的矩阵 A 变成 NaN 的任何地方
-
在我的电脑上很好用,你确定是按行算nan,而不是按列算?
-
是的,一定是我想念的东西。计数在行而不是列上工作