MATLAB求解积分,出现输入函数必须返回 'double' 或 'single' 值。找到 'sym'。报错

问题遇到的现象和发生背景

需要用matlab求出积分:

img

问题相关代码,请勿粘贴截图
clear all;
syms s;
syms v;
f = @(v) exp(-s.*v.^(-2));
y = integral(f,0,1);
fun = @(s) (1-exp(-s))/(s.*(sqrt(s)+y-1)+sqrt(s));
z = integral(fun,0+sqrt(eps),+inf);
运行结果及报错内容

img

我的解答思路和尝试过的方法

int函数和integral函数都有尝试,格式经过多次调整,但是仍然不知道问题出在了哪里。

我想要达到的结果

计算出这个积分的值,谢谢各位!

y没有定义为syms

您好,请问您最后如何解决的呢,我也遇到了类似的问题

clear all;
syms s;
syms v;
f=@(s,v)(1-exp(-s))./(s.*(sqrt(s)+exp(-s.*v.^(-2))-1)+sqrt(s));
z=integral2(f,0,inf,0,1);
觉得integral好像是数值积分函数,你在第一步对v积分的时候s是syms,所以报错。

请问楼主是怎么解决的呢?

这个问题有解决了的吗,麻烦大佬给指点一下

第5行代码求解定积分少了一个自变量,应在函数后面加上它的对应变量,