以特定的非串行顺序连接向量

时间:2016-01-13 10:27:48

标签: matlab vector vectorization

我有向量abc;向量ab包含整数,而向量c包含二进制值作为元素:(01)。

向量a的长度为 n ,向量b的长度为 k 。向量c的长度为 n + k

我想基于向量a连接向量bc

例如。如果c=[1 0 0 1 0 . . . . ],那么我想创建向量res=[a(1) b(1) b(2) a(2) b(3) . . . ].

如果没有for循环,有没有办法这样做?

1 个答案:

答案 0 :(得分:7)

res = c; %// copy c for the result vector
res(c) = a;
res(~c) = b;

使用logical indexing!这是有效的,因为0中的c元素数量与b中的元素数量完全相等,1元素的数量等于{a元素的数量1}}。通过@Dan's comment

进行索引的逻辑运算符