Creating a unit step function in Matlab

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
9 replies · 188K views
skybox
Messages
37
Reaction score
0
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!
 
Physics news on Phys.org
Figured it out.

Used the following code:

n = -5 : 1 : -5

y = (n >= 0)

stem(n,y)
 
I think recent versions of Matlab come with the function under the name heaviside (i.e. Heaviside step function.)
 
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
 
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!
 
hi
how to define step function for initial condition in fully implicit finite diference methode?
 
x=[-5:0 0:5];
y=[zeros(1,6) ones(1,6)];
plot(x,y)
 
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
:) :) :) :) :) :) :) :) :) :)
 
skybox said:
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)