将NaN替换为每列的中值

2次查看(最近30天)
Konvictus177
Konvictus177 2021年8月10日
回答: Yazan2021年8月10日
你好,
我有一个矩阵,其中我有NaN值在几列。
我想用该列的中值填充NaN值。我该怎么做?

答案(4)

KSSV
KSSV 2021年8月10日
编辑:KSSV 2021年8月10日
读到 fillmissing
或者使用:
A = rand(20,1);%数据演示
A(randperm(20,5)) = NaN;%插入nan
M = nanmedian(A);%得到值
(isnan (A)) = M%用中位数替换nan

Wan霁
Wan霁 2021年8月10日
使用方便 填充函数得到你想要的
matOut = fillmissing (matrixIn,“线性”“EndValues”“最近的”
4评论

登录评论。


斯蒂芬。
斯蒂芬。 2021年8月10日
编辑:斯蒂芬。 2021年8月10日
M =兰迪(3、5、7);
米(randi(元素个数(M), 1, 9)) = NaN
M = 5×7
1 NaN 1 1 2 1 NaN 1 1 3 NaN 3 NaN 1 2 1 NaN 2 NaN 3 1 2 1 NaN 3 1 2 NaN 3 2 2 1 1 2
V =值(M, 1“omitnan”
V = 1×7
1 1 2 1 2 2 2
X = isnan (M);
M (X) = repelem (V, sum (X, 1))
M = 5×7
1 1 1 1 2 3 1 1 1 2 1 1 1 3 1 2 3 2 1 1 2 2 1 3 2 3 2 2 1 1 2 1 1 3 2

Yazan
Yazan 2021年8月10日
clc,清晰
X1 = randn(5, 5);
X1 (randi(numel(X1), 1, 5)) = nan;
(x1, x2 = fillmissing“movmedian”、大小(x1, 1) * 2, 1);
显示器(x1)
x1 = 5×5
NaN 0.1826 NaN 0.3875 -0.7928 - 1.3983 -0.1527 0.1261 0.1482 -0.8491 1.4623 0.7005 -0.0511 -0.1259 1.1562 0.8948 0.0311 0.0064
显示器(x2)
x2 = 5×5
1.1466 0.1826 -0.0223 0.3875 -0.7928 1.3983 -0.1527 0.1261 0.1482 -0.8491 1.4623 0.7005 -0.0511 -0.1259 1.1562 0.8948 0.0311 0.0064 0.2678 -0.1005 -0.2615 -0.1371 -1.7245 0.9723 0.5918

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!