如何在Matlab中创建-10ms至10ms的1000采样点时间数组?
在Matlab中创建指定范围和采样点数的时间数组
嘿,我明白你的需求啦!要创建从-10ms到10ms、包含1000个采样点的时间数组,**linspace**才是你需要的函数——duration确实不适合这个场景,我来给你详细说说:
核心解决方案:使用linspace
linspace专门用于生成线性间隔的数组,完美匹配你“指定范围+指定采样点数”的需求。直接生成毫秒单位的数组非常简单:
% 生成-10ms到10ms的1000个采样点数组(单位:毫秒) t_ms = linspace(-10, 10, 1000);
如果你的后续计算需要用秒作为时间单位(Matlab很多信号处理函数默认用秒),只需要把范围转换成秒即可:
% 生成-0.01秒到0.01秒的1000个采样点数组(单位:秒) t_sec = linspace(-0.01, 0.01, 1000);
为什么duration不行?
duration函数的作用是创建时间跨度对象(比如表示“5分钟”“30秒”这类时长),它不是用来生成连续采样的数值时间轴的。你没法直接用它指定“从-10ms到10ms取1000个点”这种需求,所以用它自然达不到效果。
如果之后需要把数值数组转换成duration类型,也可以轻松实现:
t_duration = milliseconds(t_ms); % 将毫秒数组转成duration对象
内容的提问来源于stack exchange,提问作者popeye
相关产品推荐
相关产品推荐

