我需要在 Matlab 中快速完成这样的事情(我正在处理巨大的向量,所以正常的循环需要很长时间!):
来自像
这样的向量[0 0 2 3 0 0 0 5 0 0 7 0]
我需要得到这个:
[NaN NaN 2 3 3 3 3 5 5 5 7 7]
基本上,每个零值都会被前一个非零值替换。第一个是 NaN
因为没有先前的非零元素
在向量中。
最佳答案
试试这个,但不确定速度。必须运行,所以如果您需要的话,稍后必须提供解释:
interp1(1:nnz(A), A(A ~= 0), cumsum(A ~= 0), 'NearestNeighbor')
关于matlab - 用以前的非零值替换零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30729201/