Making Cumulative Difference Calculation
    21 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hi,
I have a parameter with a column of data like this:
RunTime:
3779024.8; 3779025.8; 3779026.8; 3779027.8; 3779028.8; 3779029.8;
I want to know how I can make another parameter which calculates the cumulative difference between the values and presents it like this:
Elapsed Time:
0; 1; 2; 3; 4; 5; 6;
Thanks,
0 Kommentare
Akzeptierte Antwort
  José-Luis
      
 am 16 Aug. 2012
        Not entirely sure if that's what you meant but here goes:
data = sort(rand(10,1));
cumDiff = [0;cumsum(diff(data))];
Cheers!
2 Kommentare
  Friedrich
    
 am 16 Aug. 2012
				
      Bearbeitet: Friedrich
    
 am 16 Aug. 2012
  
			Small note:
The perfomance of this pretty bad and it doesnt make any sense doing it like this. Simply subtract the first value from all others (assuming data is sorted ascending). This is approx. 20-30 times faster and give the exact same result.
>> data = (1:1000)';
>> tic,cumDiff = [0;cumsum(diff(data))];toc
Elapsed time is 0.000560 seconds.
>> tic,cumDiff = [0;cumsum(diff(data))];toc
Elapsed time is 0.000549 seconds.
>> tic,cumDiff = [0;cumsum(diff(data))];toc
Elapsed time is 0.000611 seconds.
>> tic,cumDiff = data-data(1);toc
Elapsed time is 0.000021 seconds.
>> tic,cumDiff = data-data(1);toc
Elapsed time is 0.000024 seconds.
>> tic,cumDiff = data-data(1);toc
Elapsed time is 0.000023 seconds.
>> tic,cumDiff = data-data(1);toc
Elapsed time is 0.000024 seconds.
  José-Luis
      
 am 17 Aug. 2012
				You are right. I guess i was blinded by the wording of the question.
Cheers!
Weitere Antworten (1)
  Azzi Abdelmalek
      
      
 am 16 Aug. 2012
        
      Bearbeitet: Azzi Abdelmalek
      
      
 am 16 Aug. 2012
  
       A=[3779024.8; 3779025.8; 3779026.8; 3779027.8; 3779028.8; 3779029.8];
 result=[0  ;cumsum(diff(A))];
 disp('elapsed time');disp(sprintf('%d;',result))
Siehe auch
Kategorien
				Mehr zu Shifting and Sorting Matrices 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!



