映射/将值乘以逻辑向量

时间:2014-03-28 09:41:36

标签: matlab

虽然我有一个非常简单的问题,但我没有在较旧的帖子中找到答案。我想做的(以相当优雅的方式)是将一个向量中的值映射/乘以另一个向量中的逻辑真元素,保持它的维度。 所以,让我们假设我有两个向量,一个像逻辑一样

a = [1,1,0,0,1,0,1,0]

和另一个整数,如

b = [3,1,7,4]

我现在想要将它们相乘以便我收到一个矢量:

c = [3,1,0,0,7,0,4,0]

很抱歉,如果我错过了这里显而易见的事情,但我在其他地方找不到答案。

2 个答案:

答案 0 :(得分:2)

如果a真正属于逻辑类型或恰好包含0/1,则取决于某种程度。如果它是合乎逻辑的,你可以直接用它索引:

c = zeros(size(a));
c(a)=b;

如果不是,请参阅Divakar的回答。

答案 1 :(得分:1)

一种方式是这个 -

c = a;
c(find(a==1)) = b;