MATLAB: I just want to know the reason why the integral function doesn’t work this way

functionintegralintegration

%p is a function handle so what's the problem.
Now i am working on finding response of the rectangular plate. So, after solving I get a function as an output and I gotta integrate that function between a certain interval to find a constant. So let us assume f is the function i got as an output. If i give f as an input to integral function I am geting an error saying "FUNCTION PASSED TO INTEGRAL FUNCTION MUST BE A FUNCTION HANDLE" so i created another variable p and made it a function handle now i am getting an error saying "INPUT FUNCTION MUST RETURN SINGLE OR DOUBLE VALUES. FOUND SYM". Looking for someone's help. Any way to solve this issue?
syms x;
f= x^2;
p = @(x) f;
q = integral(p,0,1)

Best Answer

You have to convert the symbolic function to a function-handle that returns a scalar double. You can do this for your example problem:
F = matlabFunction(f);
q = integral(F,0,1);
The first step converts the symbolic expression into a matlab-function-handle.
HTH