acb*_*cbh 2 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, []);
Run Code Online (Sandbox Code Playgroud)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;
Run Code Online (Sandbox Code Playgroud)同时预分配和填充偶数索引值:
x = [2,3,4,5,6,7];
y(2:2:2*numel(x)) = -x;
y(1:2:end) = x;
Run Code Online (Sandbox Code Playgroud)