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

Matlab中如何使用匿名函数创建以t为自变量的脉冲串

MATLAB 定义可调整自变量的脉冲串匿名函数方法

你原先的循环写法没有把t作为comb的输入参数,执行循环时会直接调用当前工作区里已赋值的t计算数值结果,最终得到的comb是数值数组而非函数句柄,自然无法后续调整自变量取值。

直接将脉冲串整体定义为以t为入参的匿名函数即可,两种常用实现方式:

  • 循环累加写法(逻辑和你原先的思路完全一致,仅保留函数句柄形式)
% 先定义单个脉冲h,示例:h = @(t) double(abs(t) < 0.5) 是脉宽1的矩形脉冲
h = @(t) 自定义的t的函数表达式;
N = 所需脉冲总个数;

% 初始化脉冲串函数,初始输出为0
comb = @(t) 0;
for n = 0:N-1
    % 每次迭代叠加一个移位n位的脉冲,始终保持comb为函数句柄
    comb = @(t) comb(t) + h(t - n);
end

定义完成后,直接传入任意自变量数组即可得到对应结果,例如执行y = comb(0:0.01:20)就能得到0到20区间、采样步长0.01的脉冲串数值,不需要重复定义函数。

  • 向量化简写写法(代码更简洁,无循环)
comb = @(t) sum( h(t - (0:N-1).'), 1 );

该写法利用MATLAB数组广播机制,将移位序列转为列向量,一次性计算所有移位脉冲的取值后沿列方向求和,输出维度和输入的t完全一致,适合N规模不大的场景。

注意:定义comb的过程中不要提前给t赋值为固定数组,只要t是匿名函数的形参,后续可以随时传入任意取值的自变量计算结果。

内容的提问来源于stack exchange,提问作者A.B.A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:27:47