# trying to calculate the central diff approximation

1 Ansicht (letzte 30 Tage)
isamh am 10 Feb. 2020
Kommentiert: Jim Riggs am 10 Feb. 2020
i tried multiple ways but none of them worked. kind of stuck and not sure what to do. what i'm trying to do is find current value that is equal to one ahead minus one below all divided by .2
code is:
Phase_1 = DATA(DATA(:,4)==1,:);
Vroll_avg1_1 = movsum((1/5).*Phase_1(:,3),[2 2]);
Vdi_1 = movsum(1/5.*Vroll_avg1_1,[2 2]);
---> first try: Adi_1 = [Vdi_1(2:Vdi_1+1,:)-Vdi_1(1:Vdi_1-1,:)/(2*T)];
---> second try: Adi_1 = ((Vdi_1(2:end+1) - Vdi_1(1:end-1))/(2*T)); % error says index exceeds array bounds. i understand why but how((2:end+1)) would i get it to work?
---> third try: %K = length(Vdi_1);
%Q = length(Vti_1);
%for M = 2:(length(Vdi_1)-1)
% Adi_1 = ((Vdi_1 - Vdi_1)./(2.*T));
%end
really need help, please try to help me figure this out.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Jim Riggs am 10 Feb. 2020
Bearbeitet: Jim Riggs am 10 Feb. 2020
There is a Matlab function "diff" which will do this.
Otherwise, your subscripts must all match (2:end-1)
or
for i=2:numel(Vdi_1)-1
end
##### 11 Kommentare9 ältere Kommentare anzeigen9 ältere Kommentare ausblenden
isamh am 10 Feb. 2020
Bearbeitet: isamh am 10 Feb. 2020
im so sorry jim, just got it to work. forsome reason i had one of the numel as nume1 with the #1. got it to work, thanks!
Jim Riggs am 10 Feb. 2020
Very good.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Bartlett finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by