use*_*630 2 indexing matlab vectorization
我需要一个快速的方法在Matlab中做这样的事情(我正在处理大量的向量,所以一个正常的循环需要永远!):
从像矢量
[0 0 2 3 0 0 0 5 0 0 7 0]
Run Code Online (Sandbox Code Playgroud)
我需要得到这个:
[NaN NaN 2 3 3 3 3 5 5 5 7 7]
Run Code Online (Sandbox Code Playgroud)
基本上,每个零值被替换为先前非零值的值.第一个是NaN因为向量中没有先前的非零元素.
试试这个,虽然不确定速度.必须运行,所以如果你需要,解释必须在以后进行:
interp1(1:nnz(A), A(A ~= 0), cumsum(A ~= 0), 'NearestNeighbor')
Run Code Online (Sandbox Code Playgroud)