重点是要用arrayfun扩展
求变限积分的积分:
fun_inner = @(r) r.^2;
fun_integral = @(x) integral(fun_inner, 0,x);
fun_overall = @(u) fun_integral(u).*u;
result = integral(fun_overall ,0,1)
会报错A 和 B 必须为浮点标量
为解决这个问题就要用arrayfun扩展
fun_inner = @(r) r.^2;
fun_integral = @(x) arrayfun(@(x) integral(fun_inner, 0,x),x);
fun_overall = @(u) fun_integral(u).*u;
result = integral(fun_overall ,0,1)
完美运行。
当被积函数不是变限积分的时候,如果比较复杂也会报错说A B浮点标量,用arrayfun也能完美解决。
这个问题我查了很久,最后特别鸣谢这个帖子给了我答案: