假设我有两个向量:
V1 = [0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1]
和矢量
V2 = [23 24 23 45 46 2 3 48 49 50 24 23 24 24 47 46]
如何创建矢量输出V3(如下所示)其中:如果Vector V1的值= 0,那么V3的相应值= Nan,如果V1 = 1而不是V3 = V2。
V3 = [NaN NaN NaN 45 46 NaN NaN 48 49 50 NaN NaN NaN NaN 47 46]
提前谢谢你 DM
答案 0 :(得分:1)
您可以使用find查找V1中非零元素的索引。
您的意见:
V1 = [0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1];
V2 = [23 24 23 45 46 2 3 48 49 50 24 23 24 24 47 46];
创建矢量V3:
V3 = V1;
%Logical indexing for adding NaN.
V3(~V1) = NaN;
%Find indexes for non-zero V1.
indx = find(V1);
%Use indexes for filling V3 with respective values in V2.
V3(indx) = V2(indx);
输出V3:
V3 = [NaN NaN NaN 45 46 NaN NaN 48 49 50 NaN NaN NaN NaN 47 46]
有关如何使用逻辑进行数组索引的更多信息,请阅读documentation。
答案 1 :(得分:1)
将V3
初始化为V2
,然后使用逻辑索引替换V3
的相应索引为V1
的{{1}}的索引。
NaN