fplot Warning: Function behaves unexpectedly on array inputs.

16 visualizaciones (últimos 30 días)
Hello! This SHOULD be a simple fix, and I've spent some time reading answers to similar question.... but still can't manage to find a fix. I'm trying to use fplot to plot lift as a function of length L.
% Lift load
syms q_l ka L x
q_l = ka.*sqrt(L.^2 - x.^2) % Expression for load distribution function
% Integrate expression over the length of wing to calc total load acting on
% wing due to lift
lift = int(q_l,0,L)
lift = subs(lift,ka,150)
% Plot lift as a function of wing length
fplot(@(L) lift,[10 20])
I get the following warnings (no curve is plotted):
Warning: Function behaves unexpectedly on array inputs. To improve performance, properly vectorize your function to return an output with the same size and shape as the input arguments.
Warning: Error updating FunctionLine.
The following error was reported evaluating the function in FunctionLine update: Unable to convert expression into double array.

Respuesta aceptada

Star Strider
Star Strider el 17 de Ag. de 2021
The ‘lift’ funciton is symbolic, so no function handle is necessary to plot it with fplot. (If you want to create a funciton handle from it, use the matlabFunction function.)
% Lift load
syms q_l ka L x
q_l = ka.*sqrt(L.^2 - x.^2) % Expression for load distribution function
q_l = 
% Integrate expression over the length of wing to calc total load acting on
% wing due to lift
lift = int(q_l,0,L)
lift = 
lift = subs(lift,ka,150)
lift = 
% Plot lift as a function of wing length
fplot(lift,[10 20])
.

Más respuestas (0)

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by