ploting a specific function.
    4 views (last 30 days)
  
       Show older comments
    
    ahmet cakar
 on 12 Dec 2016
  
    
    
    
    
    Commented: ahmet cakar
 on 14 Dec 2016
            
hi, anyone knows how can I plot this function in Matlab?
thanks...
1 Comment
  Walter Roberson
      
      
 on 12 Dec 2016
				Are the vertical parts intended to be sudden jumps ("the value reached 1 and jumped to 0") or are they intended to be lines?
Do you just need to plot the values, or do you need all of the intermediate values?
Accepted Answer
  Walter Roberson
      
      
 on 12 Dec 2016
        v0 = 0; v2 = 0.2; v3 = 0.3; v7 = 0.7; v8 = 0.8; v1=1;
xr = [v0, v2*(1-eps), v2, v3*(1-eps), v3, v7*(1-eps), v7, v8*(1-eps), v8, v1];
yr = [0,           1,  0,          0,  1,          -1, 0,          0, -1,  0];
x = linspace(v0, v1, 500);
y = interp1(xr, yr, x);
plot(x, y);
1 Comment
  Walter Roberson
      
      
 on 12 Dec 2016
				Note: the assigning to variables such as v2 is there so that you can be sure that you get bitwise identical meanings of literal constants. You could also write,
xr = [0, 0.2*(1-eps), 0.2, 0.3*(1-eps), 0.3, 0.7*(1-eps), 0.7, 0.8*(1-eps), 0.8, 1];
yr = [0, 1, 0, 0, 1, -1, 0, 0, -1, 0];
x = linspace(0, 1, 500);
y = interp1(xr, yr, x);
plot(x, y);
but then you have the worry about whether the 0.2*(1-eps) as a literal constant will definitely evaluate to a different value than 0.2 as a literal constant -- because if it happens to round to the same value due to some quirk of the parser, then interp1() will complain about the values not being monotonically increasing.
More Answers (2)
  Kenny Kim
      
 on 12 Dec 2016
        t = linspace(0,1,10001);
x = nan(size(t));
for i =1:numel(t)
    if t(i) <=0.2
        x(i) = 5*t(i);
    elseif t(i) >0.2 && t(i) <= 0.3
        x(i) = 0;
    elseif t(i) > 0.3 && t(i) <= 0.7
        x(i) = 1 - 5*(t(i) - 0.3);
    elseif t(i) > 0.7 && t(i) <= 0.8
        x(i) = 0;
    else
        x(i) = -1 + 5*(t(i) - 0.8);
    end
end
plot(t,x); xlabel('Time (s)'); ylabel('x(t)'); title('Giris Isareti');

0 Comments
See Also
Categories
				Find more on Modulation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


