Can I store indefinite integral using a function handle?

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)

 Akzeptierte Antwort

Star Strider
Star Strider am 5 Dez. 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 Kommentare

It works fine like this, thanks
syms x
a = @(x)x^2;
b = @(x)int(a(x));
c = matlabFunction(b(x));
c(1)
As always, my pleasure.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by