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

在MATLAB中创建步长递增的自定义起止非线性间隔向量

在MATLAB中创建步长逐步递增的自定义首尾向量

你需要的是首尾固定、相邻元素步长逐步递增的向量,logspace是对数比例增长,确实不符合需求,这里给你两种实用的实现方法:

方法一:手动控制步长递增规律

这种方法适合你明确知道初始步长和步长增量的场景,能精准控制每一步的步长变化,最后确保向量包含指定的终值:

start_val = 2;    % 自定义初始值
end_val = 20;     % 自定义最终值
initial_step = 1; % 初始步长
step_increment = 0.5; % 每次步长的增加量

vec = start_val;
current_step = initial_step;
next_val = start_val + current_step;

% 循环添加元素,直到下一个值接近终值
while next_val < end_val
    vec = [vec, next_val];
    current_step = current_step + step_increment;
    next_val = vec(end) + current_step;
end
% 强制把最后一个元素设为指定终值,保证首尾符合要求
vec(end+1) = end_val;

运行后vec的步长会从1开始,每次增加0.5,最后以终值20收尾。

方法二:用参数化函数生成递增步长

如果不需要精确控制每一步的步长,只需要步长整体递增,且能指定向量总点数,用多项式映射的方法更简洁:

start_val = 2;
end_val = 20;
num_points = 8; % 自定义向量的总点数(包含首尾)

% 生成0到1的线性分布点
t = linspace(0, 1, num_points);
% 用二次函数映射,实现步长从缓到快的递增
vec = start_val + (end_val - start_val) * t.^2;

这里t.^2会让向量的元素间距逐步变大(步长递增),如果想要步长递增更快,可以换成t.^3甚至更高次幂;如果需要步长递增更平缓,也可以调整成t.^1.5这类分数次幂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:41:41