虽然我有一个非常简单的问题,但我没有在较旧的帖子中找到答案。我想做的(以相当优雅的方式)是将一个向量中的值映射/乘以另一个向量中的逻辑真元素,保持它的维度。 所以,让我们假设我有两个向量,一个像逻辑一样
a = [1,1,0,0,1,0,1,0]
和另一个整数,如
b = [3,1,7,4]
我现在想要将它们相乘以便我收到一个矢量:
c = [3,1,0,0,7,0,4,0]
很抱歉,如果我错过了这里显而易见的事情,但我在其他地方找不到答案。
答案 0 :(得分:2)
如果a
真正属于逻辑类型或恰好包含0/1,则取决于某种程度。如果它是合乎逻辑的,你可以直接用它索引:
c = zeros(size(a));
c(a)=b;
如果不是,请参阅Divakar的回答。
答案 1 :(得分:1)
一种方式是这个 -
c = a;
c(find(a==1)) = b;