How to marker a fplot(anonymous function) function on a specific point which user enters.

3 次查看(过去 30 天)
Hello, I wrote a function which needs a (t) as input and it graphs something i want to marker the point which user inputs on the graph for example if user defines t=10 I want to marker the graph on point t=10 and x(t)=10. how should I do that. here is my code
function x=calcDisplacement(t)
m=1100;
k=570;
c=430;
x0=0.05;
v0=0;
omega_d = sqrt((4*m*k)-(c^2))/(2*m);
sigma = c/(2*m);
alpha = x0/2;
beta = -((v0+x0)/(2*(omega_d)));
displacement=@(t) 2*exp(-2*(sigma).*t).*(((alpha)*cos((omega_d).*t))-(beta)*sin((omega_d).*t));
x=displacement(t);
fplot(displacement,[0 50],'color','blue')
ylim([-0.1 0.1])
legend ('Displacement of suspension')
ylabel('Displacement(m)')
xlabel('Time(s)')
title('Graph of displacement in car suspension')
hold on;
end

采纳的回答

Turlough Hughes
Turlough Hughes 2021-8-24
编辑:Turlough Hughes 2021-8-24
You can add it in at the end of your function using plot:
function x=calcDisplacement(t)
m=1100;
k=570;
c=430;
x0=0.05;
v0=0;
omega_d = sqrt((4*m*k)-(c^2))/(2*m);
sigma = c/(2*m);
alpha = x0/2;
beta = -((v0+x0)/(2*(omega_d)));
displacement=@(t) 2*exp(-2*(sigma).*t).*(((alpha)*cos((omega_d).*t))-(beta)*sin((omega_d).*t));
x=displacement(t);
fplot(displacement,[0 50],'color','blue')
ylim([-0.1 0.1])
ylabel('Displacement(m)')
xlabel('Time(s)')
title('Graph of displacement in car suspension')
hold on;
plot(t,x,'ok','LineWidth',2)
legend ('Displacement of suspension','point of interest')
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by