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

How to assign values to vector using linear indexing in matlab?

我有一个包含 NaN 的向量:

v1 = [NaN NaN NaN NaN NaN];

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

v2 = [1 4 6 8 9];

和线性索引:

idx = [1 0 4 0 3];

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

v1 = [1 NaN 8 NaN 6];
v1(idx ~= 0) = v2(idx(idx ~= 0))

这需要

"The values in v1 where idx is not equal to zero"

并为它们分配

中的值

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