Integration of the zero function handle ie f(x)=@(x) 0

4 views (last 30 days)
I have a function that requires the integration of many functions and sometime that function is zero but I don't really know when that will be.... Unfortunately, integral(@(x)0,0,1) returns the following error; Output of the function must be the same size as the input. If FUN is an array-valued integrand, set the 'ArrayValued' option to true. How do I get around this? Any help would be great!!
Thanks
Drew

Accepted Answer

Walter Roberson
Walter Roberson on 10 May 2016
integral(@(x) 0 * x, 0, 1)
or
integral(@(x) zeros(size(x)), 0, 1)
  3 Comments
Walter Roberson
Walter Roberson on 10 May 2016
I seem to be having difficulty getting that automatically generated. matlabFunction does seem to reduce it down to a single 0.0
Here is a test you can use:
F = matlabFunction(YourExpression);
syms zzzzzz
Fzzzzz = F(zzzzzz);
if isempty(symvar(Fzzzzz))
F = @(x) Fzzzzzz * ones(size(x));
end
This should work for constants other than 0 as well.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!