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

如何在MATLAB中创建1e-7到1e-5、末尾分辨率更高的对数递减间隔向量?

生成末尾高分辨率的时间向量

要创建从1e-7到1e-5且末尾(靠近1e-5)分辨率更高的时间向量,直接用logspace无法实现——它始终保持等对数间隔,反转顺序也只会改变数值排列而非间隔大小。你可以通过分段构造或自定义步长的方式达成需求,以下是几种实用方案:

方法1:分段线性组合

将向量拆分为前后两段,前半段用较大间隔快速覆盖大部分范围,后半段用小间隔细化末尾区域:

% 前半段:1e-7 到 5e-6,间隔 1e-7
part1 = 1e-7:1e-7:5e-6;
% 后半段:5e-6+1e-8 到 1e-5,间隔 1e-8(分辨率提升10倍)
part2 = (5e-6+1e-8):1e-8:1e-5;
% 合并两段得到目标向量
t = [part1, part2];

方法2:对数+线性混合

前半段用对数间隔高效跨越范围,后半段用密集线性点提升末尾分辨率:

% 前半段:对数间隔生成1e-7到5e-6的20个点
part1 = logspace(log10(1e-7), log10(5e-6), 20);
% 后半段:线性生成5e-6到1e-5的50个密集点
part2 = linspace(5e-6+1e-8, 1e-5, 50);
% 合并并去重,避免衔接点重复
t = unique([part1, part2]);

方法3:连续非线性步长

通过指数函数让步长随数值增大逐渐缩小,实现末尾分辨率平滑提升:

% 生成0到1的基础控制向量
x = linspace(0, 1, 100);
% 定义步长规则:越靠近1e-5(x越接近1),步长越小
step = 1e-7 .* exp(-5*x);
% 累积步长生成时间向量
t = 1e-7 + cumsum(step);
% 强制最后一个点精确等于1e-5
t(end) = 1e-5;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:30:53