0

我有两个清单:

数据1 = {0, 1, 1, 0, 0}

数据2 = {1, 2, 3, 4, 5}

我想根据data1的值替换data2中的元素。

例如,如果 data1=0,我希望将 data2 替换为 0,否则我希望 data2 保持原样。

我正在寻找的输出是:

数据2 = {1, 0, 0, 4, 5};

4

2 回答 2

1

对于所需的输出,如果,不data1 = 0替换data2为0。

data1 = {0, 1, 1, 0, 0};
data2 = {1, 2, 3, 4, 5};

data2 = MapThread[If[#1 == 0, #2, 0] &, {data1, data2}]

{1, 0, 0, 4, 5}

data2 = UnitStep[-Abs@data1]*data2

{1, 0, 0, 4, 5}

于 2017-11-06T09:46:15.683 回答
0

另一种方式..

ReplacePart[data2, Position[data1, 0] -> 0]

{0, 2, 3, 0, 0}

请注意您的示例输出与您的问题文本不一致。

于 2017-11-06T14:46:56.510 回答