Arrays 在matlab中用向量中的正负元素交替构造数组的最快方法?
我有一个向量,它有一些值,比如Arrays 在matlab中用向量中的正负元素交替构造数组的最快方法?,arrays,matlab,vector,Arrays,Matlab,Vector,我有一个向量,它有一些值,比如[2,3,4,5,6,7…],我想构造一个数组,重复原始向量中的值,但也在后面有原始值的负数。因此,从给定向量得到的数组将是[2,-2,3,-3,4,-4…]。在matlab中,最好的方法是什么 以下是一些方法: 连接和重塑: x = [2,3,4,5,6,7]; y = reshape([x; -x], 1, []); 预先分配y,然后填写以下值: x = [2,3,4,5,6,7]; y(numel(x)*2) = 0; % preallocate y y(
[2,3,4,5,6,7…]
,我想构造一个数组,重复原始向量中的值,但也在后面有原始值的负数。因此,从给定向量得到的数组将是[2,-2,3,-3,4,-4…]
。在matlab中,最好的方法是什么 以下是一些方法:
x = [2,3,4,5,6,7];
y = reshape([x; -x], 1, []);
y
,然后填写以下值:
x = [2,3,4,5,6,7];
y(numel(x)*2) = 0; % preallocate y
y(1:2:end) = x;
y(2:2:end) = -x;
x = [2,3,4,5,6,7];
y(2:2:2*numel(x)) = -x;
y(1:2:end) = x;
就在我之前。:)尝试了第一种方法。它给了我
[2,3,4,5,6…-2,-3,-4,-5,-6]
,但我需要[2,-2,3,-3..]
。@gnovice 10秒!:-)@acbh您是否检查了更新的答案?我最初有代码>missing@acbh:向量是行向量还是列向量?我猜您正在处理一个列向量,但是您的问题和这个答案使用行向量作为输入。