Matlab - suma elementos y conteo de un vector

 
Vista:

suma elementos y conteo de un vector

Publicado por Irene (6 intervenciones) el 08/04/2019 18:26:32
Hola, tengo un vector con numero positivos y negativos. Lo que necesito es hacer un conteo de las veces que se repite el signo y a su vez hacer una sumatoria de los valores, y así sucesivamente.

ej A=[-1 -1 -2 4 5 6 7 -2] como respuesta tendría que tener B= [3 4 1] C= [-4 22 -2]

he intentado de varias formas, pero no logro darme cuenta de como hacerlo correctamente.

Agradezco muchísimo si alguien puede ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

suma elementos y conteo de un vector

Publicado por Daniel (354 intervenciones) el 08/04/2019 21:49:20
Hola,

No entiendo completamente lo que se plantea.

Para identificar la posición de los positivos y negativos se puede utilizar el operador mayor que y menor que. Si se aplica sobre un vector se obtiene un vector de lógicos que se pueden sumar para obtener el total y posteriormente filtrar. Así

1
2
3
4
5
6
7
8
9
10
A = [-1 -1 -2 4 5 6 7 -2];
 
positivos = A > 0;
negativos = A < 0;
 
A(positivos)
A(negativos)
 
[sum(positivos), sum(A(positivos))]
[sum(negativos), sum(A(negativos))]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ans =
 
     4     5     6     7
 
 
ans =
 
    -1    -1    -2    -2
 
 
ans =
 
     4    22
 
 
ans =
 
     4    -6

positivos es la posición de los valores positivos y A(positivos) son los números positivos del vector. Luego se pude sumar el número de positivos para contar y los valores.

Saludos,
Daniel Rodríguez.
Analytics Lane
Matlab en Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma elementos y conteo de un vector

Publicado por Irene (6 intervenciones) el 08/04/2019 23:17:04
Muchas gracias y perdón por no haberme explicado bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

suma elementos y conteo de un vector

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 08/04/2019 21:50:34
1
2
3
4
5
6
7
8
9
10
A=[-1 -1 -2 4 5 6 7 -2];
 e=[0 find(diff(sign(A))~=0) length(A)];
 B=diff(e);
 C=zeros(1,length(e)-1);
 for k=1:numel(C)
     C(k)=sum(A(e(k)+1:e(k+1)));
 end
 clc
  disp(B)
  disp(C)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma elementos y conteo de un vector

Publicado por Irene (6 intervenciones) el 08/04/2019 23:14:05
Muchísimas gracias!! Funcionó tal cual como quería!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

suma elementos y conteo de un vector

Publicado por Daniel (354 intervenciones) el 08/04/2019 22:00:26
Hola,

El enunciado era bastante confuso, creo que lo que se busca es

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
A = [-1 -1 -2 4 5 6 7 -2];
 
B = A(1);
C = 1;
 
pos = 1;
 
for i = 2:length(A)
    if sign(A(i-1)) == sign(A(i))
        B(pos) = B(pos) + A(i);
        C(pos) = C(pos) + 1;
    else
        pos = pos + 1;
        B(pos) = A(i);
        C(pos) = 1;
    end
end

Saludos,
Daniel Rodríguez.
Analytics Lane
Matlab en Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma elementos y conteo de un vector

Publicado por Irene (6 intervenciones) el 08/04/2019 23:27:02
Perdón por no expresarme bien. Pero es exactamente esto que me pasaste lo que necesitaba. Muchísimas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar