MATLAB: Using interpolation to replace missing values (NaN)

后端 未结 6 887
一整个雨季
一整个雨季 2020-12-10 16:29

I have cell array each containing a sequence of values as a row vector. The sequences contain some missing values represented by NaN.

I would like to re

6条回答
  •  悲哀的现实
    2020-12-10 17:00

    I would use inpaint_nans, a tool designed to replace nan elements in 1-d or 2-d matrices by interpolation.

    seq{1} = [-0.50782 -0.32058 NaN -3.0292 -0.45701 1.2424 NaN 0.93373 NaN -0.029006];
    seq{2} = [0.18245 -1.5651 -0.084539 1.6039 0.098348 0.041374 -0.73417];
    seq{3} = [NaN NaN 0.42639 -0.37281 -0.23645 2.0237];
    
    for i = 1:3
      seq{i} = inpaint_nans(seq{i});
    end
    
    seq{:}
    ans =
     -0.50782 -0.32058 -2.0724 -3.0292 -0.45701 1.2424 1.4528 0.93373 0.44482 -0.029006
    
    ans =
      0.18245 -1.5651 -0.084539 1.6039 0.098348 0.041374 -0.73417
    
    ans =
      2.0248 1.2256 0.42639 -0.37281 -0.23645 2.0237
    

提交回复
热议问题