replace nan with a value
이전 댓글 표시
I have a column in which some values are missing and shown as NaN. I need to replace all these NaN with the median of the column. Here is what I tried: I am extracting column 4 in which there are missing values, find the median value, Use isnan to replace the logical 1 with the median.
Column 4 values: 1 2 3 4 5 6 NaN 12 10 NaN 4 5 NaN
C=num(:,4);
median=nanmedian(C);
R(isnan(C))=median;
But with this I am getting results as : 0 0 0 0 0 0 12 0 0 12 0 0 12
But the expected result is: 1 2 3 4 5 6 12 12 10 12 4 5 12
Any suggestions ?
채택된 답변
추가 답변 (1개)
Steven Lord
2017년 6월 21일
z = [1 2 3 4 5 6 NaN 12 10 NaN 4 5 NaN].';
y = fillmissing(z, 'constant', median(z, 'omitnan'));
showBothColumnsSideBySide = [z, y]
댓글 수: 3
Daphne Mariaravi
2017년 6월 21일
Jan
2017년 6월 21일
@Daphne: This happens, because "median" was defined as a variable on your computer. Do not shadow builtin functions by variables. Solution: Restart Matlab or:
clear median
Daphne Mariaravi
2017년 6월 21일
카테고리
도움말 센터 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!