Hold on function doesn't work
161 次查看(过去 30 天)
显示 更早的评论
Hello guys,
I'm at the end of my wits here.
I need to add a dashed line at a constant to a plot using the hold on function.
This is the function: V(t) = V_rest+I.*R.*(1-exp(1).^(t/theta)).
Plotting it works, but then I need to add to constant horizontal dashed line, preferably using "hold on" function. Nothing I do works.
Can any one help? (I have R2020b)
3 个评论
the cyclist
2020-10-29
It would also be helpful if you told us sample inputs that you used, instead of us needing to guess at that.
回答(3 个)
Image Analyst
2020-10-29
If you use yline() you don't need to use hold on. If you use plot(), you DO need to use hold on. Try this demo which shows you both ways to do it:
% First set up the plot.
t = linspace(0, 1, 1000);
theta = 1;
V_rest = -1;
R = 1;
I = 1;
V = V_rest+I.*R.*(1-exp(1).^(t/theta));
plot(t, V, 'b-', 'LineWidth', 2);
grid on;
title('V vs. t', 'FontSize', 18);
xlabel('t', 'FontSize', 18);
ylabel('V', 'FontSize', 18);
% Now plot is setup and we can draw the horizontal lines at a constant value.
% Option 1 : plot red dashed line at V = -2 using yline(). "hold on" is NOT needed if you use yline().
yline(-2, 'LineStyle', '--', 'Color', 'r', 'LineWidth', 2);
% Option 2 : plot magenta dashed line at V = -2.5 using plot(). In this case, "hold on" is needed.
hold on;
plot(xlim, [-2.5, -2.5], 'm--', 'LineWidth', 2);
hold off;
0 个评论
the cyclist
2020-10-29
The problem with your code is not with the hold command. The problem is the syntax to plot the line. You plotted a 1x200 vector against a scalar, which does not do what you expect.
Try this instead:
plot(t,tau*ones(size(t)),'LineWidth',2)
I increased the line width so that it would show up more prominently.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Labels and Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!