# MATLAB Plot vertical line

I have a system of equations, about 3 equations, that I need to plot that are dependent on 2 variables, R and z. But one of the equations is R={constant value}. Here's the code:

R = 0:.1:500;
z = 5./R;
z2 = 40./R;
z3 = 20
plot(R, z, R, z2, R, y3)


...I don't really know how to get z3 to show up as a vertical line. Any ideas?

-
y3 is not defined – Jonas Stein Feb 19 '15 at 22:54

z3 not showing up is because it has different size with R. In plot command two vectors must share the same length.

A simple solution is:

R = 0.1:.1:500;
z = 5./R;
z2 = 40./R;
z3 = 20;
plot(R, z, R, z2)
hold on;
plot([z3 z3], [min([z(:);z2(:)]) max([z(:);z2(:)])]);


Notice here 0 is excluded for otherwise max will give an Inf.

-

There is an excellent answer over on http://stackoverflow.com/a/8108766/1194420 repeated below for convenience. (Please go there an up vote the original answer) ---

There exist an undocumented function graph2d.constantline:

plot(-2:5, (-2:5).^2-1)
%# vertical line
hx = graph2d.constantline(0, 'LineStyle',':', 'Color',[.7 .7 .7]);
changedependvar(hx,'x');
%# horizontal line
hy = graph2d.constantline(0, 'Color',[.7 .7 .7]);
changedependvar(hy,'y');

-