You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何通过for循环将随机生成的小向量值填充到大向量指定位置

解决向量循环填充的问题

我来帮你搞定这个循环填充的需求,核心是找到每次循环里y对应X位置的规律,这样就能用for循环轻松实现了。

首先咱们先明确每次循环的填充位置规律(i从1到3):

  • y的第1个值 → X的2*i位置(i=1时是2,i=2时是4,i=3时是6)
  • y的第2个值 → X的2*i + 1位置(i=1时是3,i=2时是5,i=3时是7)
  • y的第3个值 → X的右侧倒数第2*i个位置(i=1时是15,i=2时是13,i=3时是11)
  • y的第4个值 → X的右侧倒数第2*i -1个位置(i=1时是16,i=2时是14,i=3时是12)

基于这个规律,修正后的代码如下:

X = zeros(16,1);
for i = 1 : 3
    y = rand(4,1);
    % 填充左侧的两个位置
    X(2*i) = y(1);
    X(2*i + 1) = y(2);
    % 填充右侧的两个位置
    right_pos_4 = 16 - 2*(i-1); % 先确定y(4)的位置
    X(right_pos_4) = y(4);
    X(right_pos_4 - 1) = y(3);
end

代码解释:

  • 左侧填充:用2*i和2*i+1来定位,每次循环i增加1,位置就自动往后跳2个,正好匹配你要的X(2)→X(4)→X(6),以及X(3)→X(5)→X(7)的顺序。
  • 右侧填充:先计算y(4)的位置,用16 - 2*(i-1),这样第一次循环得到16,第二次得到14,第三次得到12;y(3)的位置就是y(4)的位置减1,刚好是15、13、11,完全符合需求。

你可以在循环里加一行disp(X);来实时查看每次填充后的X,验证位置是否正确。

内容的提问来源于stack exchange,提问作者Sajjad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 11:32:30