Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How to evaluate dirac function in matlab?

Asked by Atta Oveisi on 23 May 2013

I have this problem in matlab 2011a that I can not evaluate dirac function of higher order. In other words, the symbolic expression works well:

syms x;
diff(dirac(x),x)
ans =
dirac(x, 1)

However, it can not evaluate dirac(x, 1) when x is double:

>> dirac(1, 1)
??? Error using ==> dirac
Too many input arguments.

What should I do? Is there any code available ?

I can evaluate this in Maple but it is hard to believe that matlab doesn't prepared for this simple problem.

0 Comments

Atta Oveisi

Tags

Products

No products are associated with this question.

2 Answers

Answer by Iman Ansari on 23 May 2013
Edited by Iman Ansari on 23 May 2013
syms x;
y=diff(dirac(x),x)
subs(y,1)

0 Comments

Iman Ansari
Answer by Youssef KHMOU on 23 May 2013

hi

The dirac function accepts only one argument (at least for earlier versions than yours) however, if you do not have the symbolic toolbox you can program your own function and put "1" in "0" instead of +infinity .

-First solution :

 t=-10:0.001:10;
 y=dirac(t);
 figure, plot(t,y);
 dy=diff(y)./diff(t);
 figure, plot(t(1:end-1),dy,'r')

-Second solution :

function z=Dirac(t)
N=length(t);
z=zeros(size(t));
for n=1:N
    if t(n)==0
        z(n)=1;
    end
  end

Adjust this function for later use ....

0 Comments

Youssef  KHMOU

Contact us