如何在matlab中使用线性索引为矢量赋值?

Cla*_*net 1 indexing matlab assign

我有一个带NaNs的向量:

v1 = [NaN NaN NaN NaN NaN];
Run Code Online (Sandbox Code Playgroud)

另一个具有不同值的向量:

v2 = [1 4 6 8 9];
Run Code Online (Sandbox Code Playgroud)

和线性指数:

idx = [1 0 4 0 3];
Run Code Online (Sandbox Code Playgroud)

我想根据线性索引将v2中的值分配给v1,结果如下:

v1 = [1 NaN 8 NaN 6];
Run Code Online (Sandbox Code Playgroud)

Wol*_*fie 8

v1(idx ~= 0) = v2(idx(idx ~= 0))
Run Code Online (Sandbox Code Playgroud)

这需要

"中的值v1,其中idx不等于零"

并为其分配值

" v2,在索引处idx,其中idx也不等于零"