将矩阵中的nan替换为特定的值
2次浏览(过去30天)
显示旧的注释
我不知道为什么下面的代码不能工作
我有一个矩阵F它有一些nan项,我把这个矩阵的最后一行保存为
N_lastrow。
那么我想替换这一行中的所有nan项,如果F是4*4矩阵,如果
N_lastrow
(4,4)= nan,然后直接将其替换为f中所有剩余条目的平均值
N_lastrow
(1,2)=nan,我们必须用F(3,3)的值替换它,如果它也是nan,我将用F(2,4)替换它,如果它也是nan,那么将它替换为整个剩余条目的平均值。
这就是代码
f;
N_lastrow=f(n,:);%其中n为f中的行数
为
k = 1: n
如果
isnan (N_lastrow (k))
如果
k = = n
N_lastrow (k) = nanmean (f,
“所有”
)
打破
结束
为
m = n: 1
如果
m - 1 > 0
N_lastrow (k) = f (m - 1 k + 1)
如果
~ isnan (f (m - 1 k + 1))
打破
结束
其他的
N_lastrow (k) = nanmean (f,
“所有”
)
结束
结束
其他的
N_lastrow (k) = f (n, k)
结束
结束
N_lastrow
0评论
答案(1)
凯文·霍利
2022年11月15日
你能说清楚你想要什么吗?在我看来,你想要的是这样的:
F = [1 2 3 2;4 5 6 1;7 8 9 2];
f(4,4) = NaN
N_lastrow = f(最终,:)
如果isnan (f (4, 4))
F (4,4) = F (3,3);
如果3) isnan (f(3日)
F (4,4) = F (2,4);
如果isnan (f (4, 4))
F (4,4) = mean(F,“omitnan”);
结束
结束
结束
f
N_lastrow = f(最终,:)