Creating a unit step function in Matlab

  • MATLAB
  • Thread starter skybox
  • Start date
  • #1
37
0

Main Question or Discussion Point

Hi Guys,

I am trying to create a basic unit step function in Matlab that needs to be in the range of"
-5 <= x <= 5

I need this to be done via a function and not piece together using different intervals and it needs to show the whole -5 to 5 interval. I am just beginning in Matlab and am stuck on where to start after creating the interval, which I made by using the following command:

%create the interval
x = -5 : 1 : 5

If anyone can give me guidance on how to start after this, it would be greatly appreciated. I tried using an if function with the following logic:

if x > 0, plot the graph of the unit step of magntiude 1
if x < 0, just plot 0's from the interval -5 to 0

This does not seem to work. Any help would be greatly appreciated!
 

Answers and Replies

  • #2
37
0
Figured it out.

Used the following code:

n = -5 : 1 : -5

y = (n >= 0)

stem(n,y)
 
  • #3
19
0
I think recent versions of Matlab come with the function under the name heaviside (i.e. Heaviside step function.)
 
  • #4
7
0
Just in case anyone reads the last post, it is incorrect with regards to certain versions - the function heaviside is not defined in matlab 2008b, however i can't comment on any later versions than this
 
  • #5
Hello,
Please allow me to share a solution.

Create your own m-file!
Code:
function [x]=unitstep(x)
%This is a unit step "function". The vector keeping track of time is the
%input. If time is negative then a zero is returned. If time is zero than
%0.5 is returned. If time is positive then 1 is returned.

if nargin==0 %demo the use of the function if no input is given
    x=-10:10;
end

x=x./abs(x); %this performs the same operation as the matlab "sign"
x(isnan(x))=0;

x=0.5*(x+1);
With regards to the other posts, to echo Tokipin, "heaviside" is indeed a defined function in Matlab, at least as recent as R2009a. My code performs exactly as the "heaviside", so I am being redundant if you have a recent version of Matlab. My last note: the Matlab "heaviside" function uses the same solution skybox suggests in its operation. Go skybox!
 
  • #6
hi
how to define step function for initial condition in fully implicit finite diference methode?
 
  • #7
x=[-5:0 0:5];
y=[zeros(1,6) ones(1,6)];
plot(x,y)
 
  • #8
t=input('please enter the shift you want in unit step function\n');
x=[t-5:t t:t+5];
y=[zeros(1,6) ones(1,6)];
plot(x,y)
axis([-5 5 -1 2])
grid on
:) :) :) :) :) :) :) :) :) :)
 
  • #9
Figured it out.

Used the following code:

n = -5 : 1 : -5

y = (n >= 0)

stem(n,y)
sir can u tell me what you have done??
what is y=(n>=0)
 
  • #10
jtbell
Mentor
15,584
3,561
Necropost alert!

Skybox's post is more than three years old, and he hasn't posted on PF at all in almost that long.
 

Related Threads on Creating a unit step function in Matlab

  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
1
Views
4K
Replies
1
Views
2K
Replies
4
Views
3K
Replies
1
Views
728
Replies
3
Views
25K
Replies
8
Views
13K
Replies
0
Views
6K
  • Last Post
Replies
2
Views
2K
Top