How to plot step functions in Matlab
    33 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
I have a function involving
y=o for x<o;
y=exp(-x)*cos(x) for 0<x<2pi();
y=2*exp(-x)*cos(x) for x>2pi();
please help me to plot such a type of function in xy space
0 Commenti
Risposta accettata
  VBBV
      
      
 il 31 Ott 2020
        
      Modificato: VBBV
      
      
 il 31 Ott 2020
  
      %if true
  % code
%end
x = -2*pi:0.1:3*pi;
for i = 1:length(x);
if x(i)<0;
y(i)=0;
elseif x(i)<=2*pi & x(i)>=0 ;
y(i) = exp(-x(i))*cos(x(i)*pi/180);
elseif x(i) > 2*pi ;
y(i) = 100*exp(-x(i))*cos(x(i)*pi/180);
end;
end;
plot(x,y)
axis([-2*pi 3*pi -0.2 1])
3 Commenti
  VBBV
      
      
 il 31 Ott 2020
				you can use a smaller number, say 2, but 
y(i) = 2*exp(-x(i))*cos(x(i)*pi/180);
gives a very small step height compared to 
y(i) = exp(-x(i))*cos(x(i)*pi/180)
So in the graph it is not noticeable clearly 
Thats why i used to 100 which amplifies the step height.
Remember in both cases the step nature does not vary. i,e, decreasing exponential function according to your equations  
Più risposte (1)
  Vladimir Sovkov
      
 il 31 Ott 2020
        
      Modificato: Vladimir Sovkov
      
 il 31 Ott 2020
  
      syms x;
y=piecewise(x<0,0, 0<=x<2*pi,exp(-x).*cos(x), x>=2*pi,2*exp(-x).*cos(x));
t=linspace(-pi,4*pi,1000);
plot(t,subs(y,x,t));
2 Commenti
  Vladimir Sovkov
      
 il 31 Ott 2020
				Welcome.
By the way, in the question, you did not specify what the function is equal to at the boundary points x=0 and x=2*pi; in the code I implied the right limit but you can easily alter this convention.
Vedere anche
Categorie
				Scopri di più su Annotations in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


