How can I plot this Function in MATLAB?
2 views (last 30 days)
Show older comments
I need help plotting a signal f(x) in matlab. The signal is defined as:
f(x) =
{ (x+1)/2 , if -1 <= x < 1
{ 1 , if 1 <= x < 2
{ 0 , else
I cant figure out how to plot f(x) or f(x+1) Any help would be greatly appreciated.
P.S The range of x is from -4:4
0 Comments
Accepted Answer
Wouter
on 21 Mar 2013
Edited: Wouter
on 21 Mar 2013
I would make a function of it:
function y = custom_function(x)
% y = custom_function(x)
y = zeros(size(x)); %make y as big as x and fill it with zeros
first_situation = x >= -1 && x < 1;
second_situation = x >= 1 && x < 2;
y(first_situation) = (x(first_situation) + 1) / 2;
y(second_situation) = 1;
% the remainder of the values was already set to zero
end
to plot this function you would use:
x = -4:4; % set x from -4 to 4
y = custom_function(x);
plot(x,y)
or to plot x+1
x_2 = (-4:4)+1; % set x from -3 to 5
y_2 = custom_function(x_2);
plot(x_2,y_2)
2 Comments
Wouter
on 26 Mar 2013
you can also do it in a for loop:
x = -4:4 % set x
y = zeros(size(x)); % make empty y
for i = 1:length(x) % loop through x, index i
if (x(i) >= -1) && (x(i) < 1)
y(i) = (x(i) + 1) / 2; % set y at position i
elseif (x(i) >= 1) && (x(i) < 2)
y(i) = 1; % set y at position i to 1
else
y(i) = 0; % not really required; y was already 0
end
end
plot(x,y,'r-') % plot x,y as red 'r' line '-'
More Answers (0)
See Also
Categories
Find more on Annotations 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!