如何用 Matlab 中另一个小向量的值填充向量 x

How to fill the vector x by values taken from another small vector in Matlab

我有一个大小为 (16 x 1) 的向量 X,以及另一个随机生成的大小为 (4 x 1) 的小向量 y,我想在 X(2) 和 X 中填充 y 的前两个值(3) 以及 X(15) 和 X(16) 中的其他两个值,(这意味着,X(2) = y(1);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(end-3) 和 X(end- 4), 分别.

我不是 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);