how can I do this mathmatical operation?
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Young Lee
 am 22 Okt. 2018
  
    
    
    
    
    Kommentiert: Young Lee
 am 23 Okt. 2018
            I wish to do sum and subtract in column 2 of 84x7 matrices between different rows of the element on the same column and produce the answers into an array. example @Column 3, a = [ 1 3 3 3 ; 2 2 2 2 ; 3 4 4 4 ; 4 0 1 0 ; 5 5 5 5 ; 1 1 1 1 ; 7 7 7 7 ] desired outcome: => b = [ 3 7 10 ]
5 Kommentare
  Kevin Chng
      
 am 22 Okt. 2018
				
      Bearbeitet: Kevin Chng
      
 am 22 Okt. 2018
  
			I guess what you want is
for i=1:2:(length(a(:,3))-2)
     b(i)= a(i,3)-a(i+1,3)+(a(i+2,3)-a(i+1,3))
end
b(2:2:end)=[];
Why length(a(:,3)-2)? It is to avoid exceed the dimension.
Akzeptierte Antwort
  Kevin Chng
      
 am 22 Okt. 2018
        I guess what you want is
for i=1:2:(length(a(:,3))-2)
     b(i)= a(i,3)-a(i+1,3)+(a(i+2,3)-a(i+1,3))
end
b(2:2:end)=[];
Why length(a(:,3)-2)? It is to avoid exceed the dimension.
2 Kommentare
  Jan
      
      
 am 22 Okt. 2018
				Use size(a, 1) instead of length(a(:, 3)), because it is more efficient and nicer.
  Rik
      
      
 am 22 Okt. 2018
				To expand a bit on Jan's comment: using length can get you into trouble, because it is equivalent to max(size(A)). That means that you need to be sure that the dimension that is relevant for you will always be the largest. Using size with a specified dimension will avoid this problem. If you want to iterate through all elements of a vector, it is safest to use numel, which is equivalent to prod(size(A)).
Siehe auch
Kategorien
				Mehr zu Data Preprocessing 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!