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

如何在Matlab中生成符合指定重复规律的向量?

在Matlab中创建指定重复规律的向量

没问题,我来教你怎么生成这个符合要求的向量!先把你要的结构拆解清楚:

  • 数字1到48:每个数字重复5次,紧接着跟2个0
  • 数字49:重复2次,紧接着跟2个0
  • 数字50:重复4次,后面没有0

下面给你两种实用的实现方式,按需选择:

方法一:分步拼接(直观易懂,适合新手)

这种方式每一步都清晰,容易理解和修改:

% 初始化空向量
Vector = [];

% 处理1到48的常规部分
for k = 1:48
    % 把当前数字重复5次,再加上2个0,拼接到向量末尾
    Vector = [Vector, repmat(k, 1, 5), repmat(0, 1, 2)];
end

% 处理49的特殊部分
Vector = [Vector, repmat(49, 1, 2), repmat(0, 1, 2)];

% 处理50的特殊部分
Vector = [Vector, repmat(50, 1, 4)];

方法二:无循环向量构造(高效,适合大数据量)

如果你的向量需要扩展到更大的范围,循环会拖慢速度,用repelem函数可以更高效地完成:

% 构造1-48的元素序列和对应的重复次数
elements_1_48 = reshape([1:48; zeros(1,48)], 1, []);
counts_1_48 = reshape([5*ones(1,48); 2*ones(1,48)], 1, []);
part1 = repelem(elements_1_48, counts_1_48);

% 构造49的部分
part2 = repelem([49, 0], [2, 2]);

% 构造50的部分
part3 = repelem(50, 4);

% 拼接所有部分得到最终向量
Vector = [part1, part2, part3];

小提示

你可以用length(Vector)验证总长度是否符合预期:

  • 1-48部分:每个组7个元素(5+2),共48×7=336个
  • 49部分:4个元素(2+2)
  • 50部分:4个元素
    总长度应为336+4+4=344,和你给出的示例向量长度一致。

如果之后需要调整重复规律(比如修改某个数字的重复次数),只需要对应修改代码里的数字参数就可以啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:37:36