How to plot a function with different values

39 次查看(过去 30 天)
(M)/1+.5*exp(-k*M*t)*(M-2)
this is the funtuion I want to plot with diffrent M values M= [1,3,5]
clear all
M= 1;
k=0.1;
t=[0:24];
SS= (M)/1+.5*exp(-k*M*t)*(M-2);
plot(SS,'r-');
xlabel('Time IN [SEC]');
ylabel('S');
title('S vs Time')
legend('M1');
I only managed to plot it once with M1
how can I plot it it with 3 lines in one plot command ?
  1 个评论
Rik
Rik 2019-11-24
Have you read the documentation for plot? It contains examples of how you van plot multiple lines at the same time. Your label is also incorrect: you aren't actually plotting against time, you're plotting against the element index.

请先登录,再进行评论。

采纳的回答

TADA
TADA 2019-11-24
编辑:TADA 2019-11-24
You can make M a column vector, then calculate S as a matrix
then if you plot it against t which is a row vector plot should treat each row of S as a separate series
M= [1;3;5];
k=0.1;
t=[0:24];
SS= (M)/1+.5*exp(-k*M*t).*(M-2);
plot(t, SS, '-');
legend(strcat('M', num2str(M)));
another approach would be to plot in a loop and use hold on:
for M = [1,3,5]
SS = (M)/1+.5*exp(-k*M*t)*(M-2);
plot(t, SS, '-', 'DisplayName', ['M' num2str(M)]);
hold on;
end
hold off;
legend show;

更多回答(2 个)

Pavel Osipov
Pavel Osipov 2019-11-24
Is exp(-k*M*t)*(M-2) matrix multiplication? Or exp(-k*M*t)*(M-2) element by element?
If element by element:
clear all
M = [1;3;5];%3x1 double
k=0.1;
t=0:24;%1x25 double
Wrk=M.*t;%3x25 double
Wrk1=exp(-k*Wrk);%3x25 double
Wrk2=M+0.5*Wrk1;%3x25 double
M2=M-2;%3x1 double
MM2=repmat(M2,1,length(t));%3x25 double
SS= Wrk2.*MM2;%[%%3x25 double]x[%3x25 double] element by element
figure('color','w')
plot(t,SS(1,:),'r-',t,SS(2,:),'g-',t,SS(3,:),'b-');
grid on;
xlabel('Time IN [SEC]');
ylabel('S');
title('S vs Time')
legend('M1','M2','M1');Wrk.JPG
  1 个评论
Raz Omar
Raz Omar 2019-11-24
编辑:Raz Omar 2019-11-24
Thnkas for the answer , I think it's not element by element as you said , you have used codes outside of my course , thanks for the new info

请先登录,再进行评论。


Pavel Osipov
Pavel Osipov 2019-11-24
If M2xWrk2 is matrix mult:
%MyAnswer1.m
%If M2xWrk2 is matrix mult
clear all
M = [1;3;5];%3x1 double
k=0.1;
t=0:24;%1x25 double
Wrk=M.*t;%3x25 double
Wrk1=exp(-k*Wrk);%3x25 double
Wrk2=M+0.5*Wrk1;%3x25 double
M2=M-2;%3x1 double
%If M2xWrk2 is matrix mult
MM2=M2';%3x25 double
% --------------------------------------------------------------------------------------------------------
%[%%1x3 * 3x25 ] double matrix product => "String x Column and Sum"
SS= MM2*Wrk2;
% --------------------------------------------------------------------------------------------------------
figure('color','w')
plot(t,SS,'b-','linewidth',2);
grid on;
xlabel('Time IN [SEC]');
ylabel('S');
title('S vs Time')
legend('M1');
Wrk1.JPG

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by