trying to calculate the central diff approximation
1 view (last 30 days)
Show older comments
isamh on 10 Feb 2020
Commented: Jim Riggs on 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
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));
%Adi_1 = (Vdi_1(2) - Vdi_1(1))./(2.*T);
%Adi_1(length(Vdi_1)) = (Vdi_1(K) - Vdi_1(K))./(2.*T);
really need help, please try to help me figure this out.
Edited: Jim Riggs on 10 Feb 2020
There is a Matlab function "diff" which will do this.
Otherwise, your subscripts must all match (2:end-1)
Adi_1 = diff(Vdi_1);
Adi_1(i) = (Vdi_1(i+1) - Vdi_1(i-1))/2/T;
More Answers (0)
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!