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

如何在matlab中使用线性索引为向量赋值?,matlab,indexing,assign,Matlab,Indexing,Assign,我有一个带NaNs的向量: 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]; 这需要 “其中idx的v1中的值不等于零” 并为它们指定中的值 v2,在索引idx,其中idx也不等于零 这需要 “其中idx的v1中的值不等于零” 并为它们指定中的值 v2,在索引idx,其中

我有一个带NaNs的向量:

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];
这需要

“其中
idx
v1
中的值不等于零”

并为它们指定中的值

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

这需要

“其中
idx
v1
中的值不等于零”

并为它们指定中的值

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

v1(idx ~= 0) = v2(idx(idx ~= 0))