Matlab - Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

   
Vista:

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por Pablo (1 intervención) el 10/12/2013 19:31:16
Hola a todos, soy nuevo en esto de Matlab y no se si os parecera una pregunta tonta, desde mi ignorancia le llevo dando vueltas varios días y no soy capad de resolverlo.

tengo que encontrar las posiciones que ocupan los valores mínimos de un vector. El problema viene sobre todo cuando el mínimo se repite varias veces. Además tiene que ser mínimos sin contar el cero y para vectores cuya longitud va a cambiar dependiendo de cada caso. Ejemplo:

T=[0 0 0 0 2 2 3]

Intento conseguir que me indique que el valor más bajo está en las posiciones 5 y 6 (Ya que el cero no cuenta).

Muchas gracias de antemano!!!
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 10/12/2013 20:34:42
Ninguna pregunta es tonta, ninguna pregunta es fácil, ninguna pregunta es difícil, todo depende del conocimiento que tenga el usuario de matlab.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> T=[0 0 0 0 2 2 3], B=T(T~=0), Min=min(B), Posiciones=find(T,Min)
 
T =
 
     0     0     0     0     2     2     3
 
 
B =
 
     2     2     3
 
 
Min =
 
     2
 
 
Posiciones =
 
     5     6


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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 JOSE JEREMIAS CABALLERO

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 11/12/2013 13:20:55
1
2
3
4
5
6
7
8
9
10
>> T=[0 0 0 0 2 2 3],  Posiciones_minimos=find(T,min(T(T~=0)))
 
T =
 
     0     0     0     0     2     2     3
 
 
Posiciones_minimos =
 
     5     6
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 Dave

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 11/12/2013 03:08:02
Hola Pablo;

Te sugiero el siguiente código:

1
2
3
4
5
6
T=floor(5*rand(1,10))
AUX = T(T~=0);
pos = find(T == min(AUX));
 
disp(['Las posiciones del valor mínimo ',num2str(min(AUX)),...
    ' son [',num2str(pos),']']);

Aquí un ejemplo de ejecución:

1
2
3
4
5
T =
 
     1     1     2     1     4     0     1     0     1     2
 
Las posiciones del valor mínimo 1 son [1  2  4  7  9]

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por Pablo (1 intervención) el 12/12/2013 08:48:16
Muchísimas gracias a todos, es justo lo que buscaba.
El caso es que había estado probando cosas similares pero no conseguía hacerlo. No acabo de pillar el lenguaje.
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 Dave

Encontrar las posiciones de los valores mínimos de un vector cuando el mínimo se repite

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 12/12/2013 09:07:58
Hola Pablo;

Me da mucho gusto que hayas encontrado solución a tu problema en el Foro.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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