嘿,我想要添加两个向量,以下情况应该发生
Vec1 = [1 3 5 7 9]
Vec2 = [2 4 6 8]
Vec = Vec1 + Vec2 = [1 2 3 4 5 6 7 8 9]
因此,Vec2的第i个数应该介于vec1的第i个和第i + 1个索引之间
我尝试使用for循环并使用偶数和奇数索引来执行此操作。但它没有用。
此外,手动执行此操作不是一种选择。我使用的真实载体非常大。
有人有小费吗?或者知道怎么做?
谢谢你们!
答案 0 :(得分:2)
我们称这种连接不是添加。您希望将vec1
分配给新向量中的所有奇数位置,并将vec2
分配给所有偶数位置。我们可以这样做。
% We can pre-allocate the output
new = zeros(1, numel(vec1) + numel(vec2));
% Assign vec1 to all of the odd locations (all other slots remain 0)
new(1:2:(numel(vec1)*2)) = vec1;
% Assign vec2 to all of the even locations
new(2:2:(numel(vec2)*2)) = vec2;
% 1 2 3 4 5 6 7 8 9
如果vec1
和vec2
大小相同,我们可以使用cat
后跟reshape
。
new = reshape(cat(1, vec1, vec2), 1, [])
答案 1 :(得分:0)
你可以这样做:
Vec1 = [1 3 5 7 9]
Vec2 = [2 4 6 8]
vec = [vec1 vec2]
sort(vec)
结果将是连接和排序的两个向量:
[1 2 3 4 5 6 7 8 9]