Search code examples
matlabderivative

Plotting Derivative of data in matlab


I am pretty new to Matlab and i have some Current Vs times stored under a structure in a matlab file. What i am trying to plot is current vs time along with the first derivative of it. (di/dt). I used the diff function but the plot seems to be really wierd. I know it simple but can anyone explain it.

THanks in advance.


Solution

  • Assume you have a structure S,

    S.t is the time vector and S.I is the current vector in each time in S.t. (both should be in the same length N).

    Now, if you want to approximate the derivative:

    dt = diff(S.t); % dt is the time intervals length, dt is N-1 length. 
    dI = diff(S.I);  
    derivative = dI./dt; %derivative is memberwise division of dI by dt 
    plot(t(1:end-1),derivative); % when you plot both vector should be in the same length:
                                 % t(1:end-1) is the same as t except the last coordinate
    

    I think this should work