MATLAB: How to replace missing data with a random value in the statistical distribution

random imputationstatistical distributionstatisticsvector

I have a vector x=[1 NaN 2 3 NaN 4 NaN NaN NaN 5 7 9 3 0 23 9 8 ]; I would like to know if there is a way to randomly select a known value from x to replace only the missing values (NaN's) in x.

Best Answer

x(isnan(x))=randsample(x(~isnan(x)),1)