How can I find the average between two points?
显示 更早的评论
So, I basically have a column of data composed of numbers and NaNs. I want my code to go through the column and wherever it finds an NaN, I want it to replace it with the average of the number before and after that NaN. For example:
Input:
23
45
64
NaN
32
Result:
23
45
64
48
32
Please help and thank you so much! :)
2 个评论
David Schubert
2015-7-20
input = [23; 45; 64; NaN; 32];
output = input;
idx = find(isnan(input));
output(idx) = (input(idx+1)+input(idx-1))/2
However this will only work if the first and the last elements are not NaN.
Sandy
2015-7-20
采纳的回答
更多回答(1 个)
David Schubert
2015-7-20
input = [23; 45; 64; NaN; 32];
output = input;
idx = find(isnan(input));
output(idx) = (input(idx+1)+input(idx-1))/2
However this will only work if the first and the last elements are not NaN.
类别
在 帮助中心 和 File Exchange 中查找有关 NaNs 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!