我有一个大小为(16 X 1(的向量X,和另一个随机生成的大小为(4 X 1(小向量y,我想在X(2(和X(3(中填充y的前两个值,在X(15(和X;X(3(=y(2(;X(15(=y(3(;X(16(=y(4((,则下一个生成的向量y将被放置在X(4(、X(5(、X((13(和X(14(中,依此类推。我如何在Matlab中使用例如for的循环来做到这一点?例如:
X = zeros(16,1)
for i = 1 : 3
y = rand(4,1)
X(i+1) = y(1);
X(i+2) = y(2);
X(end-i+1) = y(4);
X(end-1) = y(3);
......
end
现在,我不知道如何将下一个生成的向量y的值放在下一个位置,分别是X(4(、X(5(、X(end3(和X(end4(。
我不能100%确定我理解你的问题,但这有帮助吗:
X = zeros(16, 1);
for ii = 1:4
y = rand(4, 1);
X(2*ii - 1) = y(1);
X(2*ii) = y(2);
X(end - 2*ii + 1) = y(3);
X(end - 2*ii + 2) = y(4);
end
我不确定这是否真的能解决你的根本问题,因为我不清楚这种方法会比类似的方法更好,比如:
y = rand(16, 1);