我在matlab中有很长的清单(数组)。
-1, -1, -1, -1, 1, 1, -1, -1, 2, 2, 2
我想将-1替换为最接近的正值。
1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2
有效的方法是什么?
我假设您想用最接近的非负值替换负值。
可以interp1
使用'nearest'
和'extrap'
选项(感谢@rayryeng提供后者)来完成此操作:
x = [1, -1, -1, -1, 1, 1, -1, -1, 2, 2, 2];
ind = x<0;
xi = interp1(find(~ind),x(~ind),find(ind),'nearest','extrap');
x(ind) = xi;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句