Can I store indefinite integral using a function handle?

2 views (last 30 days)
Is it possible to store indefinite integral in a function handle and input values?
syms x
a=@(x)x^2;
b=@(x)int(a(x));
%E.g. when x=1 b=?
b(1)
%E.g. when x is a vector b=?
%int will always output x^n, but in order to plug in a vector it has to be changed to x.^n. Is there an automatic way to add the dot? I suppose I can use for loop and calculate b for each individual x and store it in a vector
x_1=1:0.1:10;
b(x_1)

Accepted Answer

Star Strider
Star Strider on 5 Dec 2018
See if this does what you want:
syms x
a(x) = x^2;
b(x) = int(a(x));
bfcn = matlabFunction(b)
produces:
bfcn =
function_handle with value:
@(x)x.^3./3.0
Substituting your scalar and vector:
x =
1
Out = bfcn(x)
Out =
0.3333
x =
1 3 5 7
Out = bfcn(x)
Out =
0.3333 9.0000 41.6667 114.3333
  2 Comments
Kai-Lung Chu
Kai-Lung Chu on 6 Dec 2018
It works fine like this, thanks
syms x
a = @(x)x^2;
b = @(x)int(a(x));
c = matlabFunction(b(x));
c(1)

Sign in to comment.

More Answers (0)

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!