Plotting just x = 1 over an x and y graph
조회 수: 24 (최근 30일)
이전 댓글 표시
Howdy howdy howdy,
I have this following code which gives me two out of the three lines I need:
a = 2;
x = linspace(1,100,10);
for i=1:length(x)
y1(i) = 0*(i);
y2(i) = ((a-i).*(1+i))/i;
end
figure
plot(x,y1,x,y2)
I need to plot an additional line on the same plot. That line needs to be x = 1/(a-1) = 1.
Can someone help me?
Cheers! E
댓글 수: 0
채택된 답변
Walter Roberson
2016년 10월 13일
yl = get(gca, 'YLim');
line( [1 1], yl )
This would draw a vertical line the height of the axes. (Note: if you later make the axes taller, the line will not automatically adjust itself.)
추가 답변 (1개)
Guillaume
2016년 10월 13일
a = 2;
x = 1:linspace(1, 100, 10);
y = 1:numel(x);
plot(x, [zeros(size(x)); (a-y).*(1+y)./y; repmat(1/(a-1), 1, numel(x))]);
is probably the simplest. The loop is certainly not required.
I don't particularly see the point of the brackets in 0*(i), and even less the point of the multiplication, since y1(i) = 0 would convey exactly the same with better readability.
In your y2 expression, a and i are both scalar, so .* is the same as * and ./ is the same as /, but really you should be consistent.
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!