理解'函数的输出必须与输入大小相同。如果FUN是数组值整数,请将“ ArrayValued”选项设置为true

时间:2019-04-18 22:44:08

标签: matlab

我正在尝试将函数log(1+A.*exp(-t.^2))从-Inf数值集成到Inf,其中A是80x1矩阵。当我使用积分函数时,它显示出错误

  

函数的输出必须与输入大小相同。如果FUN是数组值的整数,则将“ ArrayValued”选项设置为true

yprime = integral( @(t) (log(1+ A.*exp(-t.^2))),-Inf,Inf );

我期望yprime为80x1的矩阵,但事实并非如此!

1 个答案:

答案 0 :(得分:0)

按照错误消息的提示进行操作。当Matlab告诉您为函数设置命名选项时,这意味着要提供选项名称和值作为函数的尾随参数。

>> yprime = integral( @(t) (log(1+ A.*exp(-t.^2))), -Inf, Inf, 'ArrayValued', true );
>> size(yprime)
ans =
    80     1