MATLAB Answers

Via
0

Plot is not working

Asked by Via
on 9 Apr 2019
Latest activity Edited by Kevin Phung on 10 Apr 2019
Hi! I don't know what I'm doing wrong here. My plot doesn't show any lines nor scatter points. What is wrong with this?
Yo= 2012500;
K= 8050000;
r= 0.71;
t= 2;
Y= (K*Yo)./((K-Yo)*exp(-r*t)+Yo);
T= 0:0.5:t;
plot (T,Y)

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Kevin Phung on 10 Apr 2019
Edited by Kevin Phung on 10 Apr 2019
 Accepted Answer

Your T is a vector, and your Y is a scalar. There is no singular line because it is actually plotting all 5 points as individual line objects. check it out:
figure
Yo= 2012500;
K= 8050000;
r= 0.71;
t= 2;
Y= (K*Yo)./((K-Yo)*exp(-r*t)+Yo);
T= 0:0.5:t;
a= plot(T,Y,'ro')
The above code should plot 5 circular markers.
a will return 5 line objects.
if you ran this:
% here, both arguments are of the same size.
% All I did was repeat Y n number of times equal to the length of T
a= plot(T,repmat(Y,1,numel(T)),'r')
then a will return 1 line object, that is a line.
also, dont put a space between plot and the parentheses.
let me know if this clears your question

  3 Comments

Via
on 10 Apr 2019
Yes it worked. But I actually wanted to see a curve for this graph. How can I set the y-values to start from 0?
Walter Roberson
on 10 Apr 2019
Move your assignment to T to before the assignment to Y, and in Y change the reference to t to be a reference to T
Kevin Phung on 10 Apr 2019
^ You want Y to be a function of a vector, instead of just a constant (which is again, why you only got 1 point for 5 separate line objects).
Walter's comment:
figure
Yo= 2012500;
K= 8050000;
r= 0.71;
t= 2;
T= 0:0.5:t;
Y= (K*Yo)./((K-Yo).*exp(-r*.T)+Yo);
a= plot(T,Y,'r')
I suggest looking into the documentation for plot()

Sign in to comment.