Matlab - obtención del la posición del valor máximo en una matriz multiimensional

 
Vista:

obtención del la posición del valor máximo en una matriz multiimensional

Publicado por Eduardo (3 intervenciones) el 15/04/2014 12:55:15
Hola, mi duda es la siguiente:
tengo una matriz multidimensional donde almaceno valores que son función de 3 variables (por ejemplo la humedad en función de la hora del dia, dias del año y lugar donde me encuentro) y quiero obtener el valor maximo de todos los que tengo y saber en que posición se encuentra (para saber a que dia, hora y lugar corresponde).
para obtener el maximo he probado (siendo A mi matriz multidimensional) con:

valor_maximo=max(max(max(A)))

pero entonces no se como obtener su posición dentro de la matriz (los valores a los que corresponde).

Muchas gracias.
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

obtención del la posición del valor máximo en una matriz multiimensional

Publicado por Joaquín (50 intervenciones) el 15/04/2014 22:26:36
Buen día Eduardo, la verdad no está tan complicado

Usa la función "find"

A= tu matriz
[i j]=find(A==max(max((A))))

i y j te dirán la fila y columna de la matriz
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

obtención del la posición del valor máximo en una matriz multiimensional

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/04/2014 00:59:46
podría poner un ejemplo de la matriz multidimensional que mencionas al hacer tu pregunta, de esa manera seria mas precisa y clara tu pregunta.



Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
[email protected]
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


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

obtener el valor d euna posicion dada

Publicado por danny martinez (1 intervención) el 06/05/2017 17:09:54
hola tengo una problema, quiero extraer el valores de un vector dado la posicion de cada un pro la posicion esta da en vector, por ejemplo
tengo un vector K=[4 3 6 5 2 1 4] es mi vector de valores y tengo el vector de posiciones P=[2 4 7], quiero encontrar los valores de esas posicion osea seria respuesta L=[3 5 4] xfa si me pueden ayudary t
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
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

obtención del la posición del valor máximo en una matriz multiimensional

Publicado por Dave (1094 intervenciones) el 12/05/2014 15:19:07
Hola Eduardo;

Lo debes hacer con la función find, pero en los argumentos de salida, debes colocar tres variables, ya que tu deseas buscar la posición en el i,j y k.

Te dejo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
>> A = round(10*rand(5,5,3))
 
A(:,:,1) =
 
     1     1     1     0     5
     8     1     2     2     5
     4     9     4     6     3
     2    10     8     7     7
     4     6     0     6     2
 
 
A(:,:,2) =
 
     7     1     4     8     4
     2     9     3     6     9
     4     8     5     4     9
     6     5     5     8     6
     8     4     8     5     6
 
 
A(:,:,3) =
 
     6     8     4     9     4
     2     2     3    10     6
     3     2     9     4     3
     5     2     4     1     6
     2     2     2     3     7
 
>> [i,j,k]=find(A==4)
 
i =
 
     3
     5
     3
     3
     5
     1
     3
     1
     1
     4
     3
     1
 
 
j =
 
     1
     1
     3
     6
     7
     8
     9
    10
    13
    13
    14
    15
 
 
k =
 
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
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