How to compute integral when one of the limits is a vector
10 views (last 30 days)
Show older comments
Maurilio Matracia
on 21 Sep 2020
Commented: Ameer Hamza
on 21 Sep 2020
Hello everyone,
I am trying to use the function integral to evaluate a function handle in a vector, such as:
FunctionToEvaluate = @(x) integral(@(z) z.^2+1, 0, x, 'ArrayValued',1)
EvaluatedFunction = FunctionToEvaluate([1 2 3])
but I am getting an error saying:
Error using integral (line 85)
A and B must be floating-point scalars.
Is there any way to avoid this error and evaluate the function in a vector?
Thank you in advance for your help!
0 Comments
Accepted Answer
Ameer Hamza
on 21 Sep 2020
Edited: Ameer Hamza
on 21 Sep 2020
If you want to use all the points in x as the limits one after the other, then following is the way to do that
FunctionToEvaluate = @(x) arrayfun(@(x_) integral(@(z) z.^2+1, 0, x_) , x);
EvaluatedFunction = FunctionToEvaluate([1 2 3])
Result
>> EvaluatedFunction
EvaluatedFunction =
1.3333 4.6667 12.0000
2 Comments
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!