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

基于向量相邻元素生成带重复的连续数值向量(MATLAB)

在MATLAB中生成指定重复规则的向量v2

给定向量:

v = [1, 4, 7, 12, 16, 20];

需要生成向量v2,其中连续数值1到5分别重复4、3、5、4、4次,期望输出:

v2 = [1,1,1,1, 2,2,2, 3,3,3,3,3, 4,4,4,4, 5,5,5,5]

方法1:直接构造重复次数数组

利用MATLAB内置的repelem函数,该函数可将指定元素按给定次数重复:

v = [1, 4, 7, 12, 16, 20];
% 定义每个数值的重复次数
counts = [4, 3, 5, 4, 4];
% 生成目标向量
v2 = repelem(1:length(counts), counts);

方法2:从原向量v自动计算重复次数

根据示例规则,重复次数的计算逻辑为:第一个数值的重复次数是v(2)-v(1)+1,后续数值的重复次数为原向量相邻元素的差值。代码实现如下:

v = [1, 4, 7, 12, 16, 20];
% 计算相邻元素差值
diffs = diff(v);
% 构造重复次数数组
counts = [diffs(1)+1, diffs(2:end)];
% 生成目标向量
v2 = repelem(1:length(counts), counts);

验证结果

运行代码后执行disp(v2),输出结果与期望一致:

1     1     1     1     2     2     2     3     3     3     3     3     4     4     4     4     5     5     5     5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:52:47