Question about logical calculation in matrix
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I want to sum up the numbers on the 1st column if its corresponding numbers on the 2nd column =1; and if sum up the numbers on the 1st column if its corresponding numbers on the 2nd column =2; The answer should be r1=0.5 r2=1.4 I don't know where I made mistakes. Here is the code I have so far. PLEASE HELP ME OUT。
AA=[0.2 1;0.3 1;0.5 2;0.9 2];  
for i = 1:4
       if AA(i,2)<2
          r1=zeros(1);
          r1=r1+AA(i,1);
        else
            r2=zeros(i,1);
            r2=r2+AA(i,1)
        end
    end
0 comentarios
Respuesta aceptada
  Jan
      
      
 el 26 de Sept. de 2017
        
      Editada: Jan
      
      
 el 26 de Sept. de 2017
  
      The mistake is the zeros inside the loop, which resets the counter repeatedly:
AA = [0.2 1; 0.3 1; 0.5 2; 0.9 2];  
r1 = 0;   % BEFORE the loop
r2 = 0;
for i = 1:4
  if AA(i,2)<2
    r1 = r1 + AA(i,1);
  else
    r2 = r2 + AA(i,1);
  end
end
Or smarter without a loop:
match = (A(:, 2) == 1);
r1    = sum(A(match, 1));
r1    = sum(A(~match, 1));
0 comentarios
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


