Matlab - funcion find(A)

 
Vista:

funcion find(A)

Publicado por elena (3 intervenciones) el 17/12/2007 12:45:14
Hola!!
me gustaria saber si hay alguna forma de buscar valores de una matriz, me explico, con la función find lo que me busca es la posicion del valor del elemento en la matriz y yo quiero que me dé el valor del elemento no su posicion.tambien me gustaria saber si existe otra funcion para ello.
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

RE:funcion find(A)

Publicado por Julian Cuintaco (75 intervenciones) el 17/12/2007 17:20:41
Hola Elena, con la función FIND puedes hacer lo que necesitas, ya que esta función busca valores dentro de una matriz y entrega la posición o posiciones que ocupa ese valor dentro de la matriz, de esta manera si necesitas el valor, entonces direccionas la matriz. Por ejemplo, supongamos que tenemos una matriz A y se quiere hallar los valores iguales a cero.

>> A=[1 2 0; 0 4 5; 6 0 7];
>> b=find(A==0); % b contiene la posición de los valores iguales a cero dentro de A.
>> A(b) % Con esta instrucción se visualizan los valores iguales a cero.

Otra opción sería

>> A=[1 2 0; 0 4 5; 6 0 7];
>> b=A(A==0) % Se visualizan valores iguales a cero, al realizar una operación AND

Saludos
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

RE:funcion find(A)

Publicado por eleni (3 intervenciones) el 18/12/2007 11:05:55
hola de nuevo, muxas gracias x la contestacion, me ha sido muy util pero sigo teniendo un problema, al ejecutar la instruccion me sale esto :
b=find(Hoja1>800)

b =

50
625
725
726

>> Hoja1(b)

ans =

1.0e+006 *

0.0008
2.8671
0.0008
0.0008
me encuentra bien los indices pero al sacar los valores no se porque me sale el resultado que te pongo, ya que los valores deberian ser mayores de 800.
gracias , espero tu respuesta.
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

RE:funcion find(A)

Publicado por Julian Cuintaco (75 intervenciones) el 18/12/2007 17:22:13
Hola!!

El resultado es el correcto, la notación que ves significa que cada uno de esos valores están multiplicados por 1.0e+006, es decir, 1.000.000.

Si quieres ver el resultado de una forma diferente, prueba con la instrucción FORMAT. Por ejemplo,

>> b=find(Hoja1>800);
>> format bank % Esta instrucción cambia el formato de salida de los valores.
>> Hoja1(b)

Si quires ver otro tipo de formatos de salida puedes ver la ayuda tecleando:

>> help format

ó

>> doc format

Saludos!
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