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

Matlab数值积分:为何常数函数需设置'ArrayValued'为true

MATLAB integral函数中'ArrayValued'参数的使用疑问解答

核心逻辑

MATLAB的integral函数默认要求被积函数对输入的数组型采样点返回同维度的数组,两个案例的差异本质就是是否满足这个默认规则:


常数函数必须设置ArrayValued=true的原因

integral执行数值积分时,会批量传入数组形式的采样点x(一次性处理多个计算点来提升效率)。但@(x)5这个函数不管输入的x是标量还是数组,始终只返回单个标量5,这就导致输出维度和输入x的维度不匹配,直接触发报错。

设置'ArrayValued',true是明确告诉integral:这个函数的输出是标量,不需要和输入x的维度对应,每个采样点对应的积分项都是这个常数。

如果不设置该参数,运行代码会直接报错:

f = @(x)5;
integral(f,0,2)

错误使用 integralCalc/finalInputChecks (line 515)
输出的大小与输入的大小不匹配。请将 'ArrayValued' 选项设置为 true。


线性函数无需设置参数的原因

@(x)x这个函数的特性是:输入什么维度的数组x,就返回相同维度的数组(比如输入[1,2,3],输出也是[1,2,3]),完全符合integral默认的输入输出维度匹配要求,所以不需要额外配置参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:31:17