I am confused as to how incorporate a value from another function in a different script, into this one where the y variable is now the input. The actual problem is below. Please show me how to solve this, and why.
    2 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
- Initialize a variable x that ranges from –π to +π, with an interval of 0.01.
- . Create a square wave variable by using the equation: ?(?) = (2 ∗ ?(?)) − 1 where x is the variable created in part 1.
- Create a new figure, and plot S(x) vs x. Change the color of this line plot to red, adjust the y axis to have the limits of [-3, 3], correctly label all axes for the plot and add a title
     where H(x) is from a script where a function for heaviside step equation is shown. That H(x) = 0 when x < 0; 1 when x > 0; 0.5 when x = 0. My script for this equation is also said to be wrong. I used the following for this function script, and was told this is not the proper way to represent this. So how do I change this one, and then incorperate it into another script with the problem above? 
function [y] = HeavisideFunct(x)
     for 
         if x < 0 
             y = 0; 
             disp(y);
         elseif x > 0
             y = 1;
             disp(y);
         elseif x == 0 
             y = 0.5; 
             disp(y);
         end 
     end
end
I know a certain vector is suppose to be used, but im not sure what kind or what it means. 
1 Commento
  madhan ravi
      
      
 il 4 Dic 2018
				@Ann why do you edit it back even when your code was edited properly by another person? Format your code properly by selecting the code and pressing the code button so that its easy to read
Risposta accettata
  Stephen23
      
      
 il 4 Dic 2018
        
      Modificato: Stephen23
      
      
 il 4 Dic 2018
  
      The proper MATLAB solution would be to vectorize your code, which efficiently allows for the input to be an array of any size. For example, here as an anonymous function:
>> H = @(x) 0.5*(x==0) + (x>0);
>> H([-1,0,1])
ans =
   0.00000   0.50000   1.00000
If you really want to write it in a file:
function y = H(x)
y = 0.5*(x==0) + (x>0);
end
And here is your requested plot (I am sure you can add the title and axes labels):
>> x = -pi:0.1:pi;
>> y = 2*H(x)-1;
>> plot(x,y,'r')
>> ylim([-3,3])

0 Commenti
Più risposte (1)
  Geoff Hayes
      
      
 il 4 Dic 2018
        Ann - wouldn't your Heaviside function be simply
function [y] = heaviside(x)
if x < 0 
    y = 0; 
elseif x > 0
    y = 1;
else
    y = 0.5; 
end 
Then, in your other function (or script) you would simply call this function for each element in your x array where 
x = -pi:0.01:pi;
4 Commenti
  Geoff Hayes
      
      
 il 4 Dic 2018
				True but that wasn't a clear requirement for this assignment and since Ann had initially added a for in the code, I continued with that approach.
Vedere anche
Categorie
				Scopri di più su Labels and 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!



