Matlab - buscar valor en un vector

 
Vista:

buscar valor en un vector

Publicado por Victor (9 intervenciones) el 19/10/2009 20:06:16
Hola, necesito encontrar un valor dentro de un vector de 1000 datos aprox... por ejemplo necesito encontrar el valor x=5.567 y necesito dentro del vector el valor mas cercano a este(osea x).. lo he intentado pero aun no encuentro como hacerlo... si me pueden ayudar seria de mucha utilidad.. 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:buscar valor en un vector

Publicado por cucu (38 intervenciones) el 19/10/2009 23:17:34
hola, para buscar un valor se utiliza la función find, en tu caso, (el vector se llama y) find(y==5.567).

en cuanto al valor más cercano, yo restaría el valor a todo el vector, le haría el valor absoluto , y buscaría el mínimo (evitando el cero).

algo así, y2 = abs(y-5.567*ones(1,tamano)) %suponiendo que y es un vector.
ahora como sabes las posiciones del cero lo eliminas y2(1,posicion) = [];

y el mínimo min(y2)

espero uqe te sirva. 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:buscar valor en un vector

Publicado por victor (9 intervenciones) el 20/10/2009 00:05:03
Muchas gracias, pero necesito tambien encontrar la posicion en el que esta en el vector... se puede?
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:buscar valor en un vector

Publicado por cucu (38 intervenciones) el 20/10/2009 10:15:19
claro, mira la help de find, si pones [fila, columna] = find (Y=5.5) se almacenan las posiciones, o si solo pones un valor el índice (útil si es un vector) o... mira la help hay un montón de opciones y seguro que encuentras la más adecuada.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

RE:buscar valor en un vector

Publicado por Christian (6 intervenciones) el 24/08/2016 00:27:44
Genio!! 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

RE:buscar valor en un vector

Publicado por Jorge (226 intervenciones) el 20/10/2009 04:27:36
Has pensado en la función 'find'?

IX = find(A > 100) te devolvería los índices de A con elementos mayores a 100.
Puedes definir la expresión que te convenga...

IX = find(A == 5.3)
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

buscar valor en un vector

Publicado por ale (1 intervención) el 06/06/2013 14:25:55
hola! pudiste solucionar este tema... yo ando necesitando lo mismo... encontrar el indice de un del valor mas cercano a otro.
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

buscar valor en un vector

Publicado por andr1u (1 intervención) el 31/07/2013 17:02:40
Hola si quieres buscar un valor en un vector haces:

find(valor);
y si quieres buscar la posición haces

find(vector==valor);

por ejempo si tienes un vector "y" y estas buscando un 5 en el vector y su posición, haces:

find(y==5)
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

buscar valor en un vector

Publicado por rupert (1 intervención) el 03/05/2014 02:44:09
hola: ando buscando algo parecido
tengo una matriz del estilo
x y z valor
[1 1 1 20
1 1 2 25
1 1 3 30
1 1 4 35]
y necesito a partir de la anterior, crear una matriz que al poner x=1 y = 1 z = 2 me arroje el valor 25
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

buscar valor en un vector

Publicado por natalia (1 intervención) el 14/05/2014 00:41:07
Hola! yo lo solucioné así
1º le resto el valor que ando buscando (vlon) a la matriz en la que lo estoy buscando (lon) que es de 105*90 (por eso después lo multiplico por el ones para crear una matriz con las diferencias)

A= abs(lon-vlon*ones(105,90));

Luego pillo la ubicación [x,y] dentro de la matriz del valor con la menor diferencia

[x,y]=find(A==min(min(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

buscar valor en un vector

Publicado por Miren (9 intervenciones) el 03/03/2017 10:59:24
Hola, tengo un problema parecido al vuestro, a ver si me podeis ayudar.

Tengo tres matrices, una de x, otra y y otra con valores de presion. Con la matriz de x e y obtengo lo siguiente:

untitled

la matriz x seria este (esta acortado):
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000
-3,80000000000000 -3,40000000000000 -3 -2,60000000000000 -2,20000000000000 -1,80000000000000

la matriz y seria este (esta acortado):
-3,04000000000000 -3,04000000000000 -3,04000000000000 -3,04000000000000 -3,04000000000000 -3,04000000000000
-2,54000000000000 -2,54000000000000 -2,54000000000000 -2,54000000000000 -2,54000000000000 -2,54000000000000
-2,03000000000000 -2,03000000000000 -2,03000000000000 -2,03000000000000 -2,03000000000000 -2,03000000000000
-1,53000000000000 -1,53000000000000 -1,53000000000000 -1,53000000000000 -1,53000000000000 -1,53000000000000
-1,02000000000000 -1,02000000000000 -1,02000000000000 -1,02000000000000 -1,02000000000000 -1,02000000000000
-0,510000000000000 -0,510000000000000 -0,510000000000000 -0,510000000000000 -0,510000000000000 -0,510000000000000
0 0 0 0 0 0
0,510000000000000 0,510000000000000 0,510000000000000 0,510000000000000 0,510000000000000 0,510000000000000
1,02000000000000 1,02000000000000 1,02000000000000 1,02000000000000 1,02000000000000 1,02000000000000
1,53000000000000 1,53000000000000 1,53000000000000 1,53000000000000 1,53000000000000 1,53000000000000
2,03000000000000 2,03000000000000 2,03000000000000 2,03000000000000 2,03000000000000 2,03000000000000
2,54000000000000 2,54000000000000 2,54000000000000 2,54000000000000 2,54000000000000 2,54000000000000

la matriz p seria este (esta acortado):
0 0 8,92120000000000e-12 1,50540000000000e-11 -1,67270000000000e-12 8,64240000000000e-11
0 0 0,618300000000000 0,277690000000000 0,0526720000000000 5,29740000000000e-12
0 0 1,50570000000000 1 0,734520000000000 0,651680000000000
0 0 2,00890000000000 1,37700000000000 1,09310000000000 1,01860000000000
0 0 2,28330000000000 1,54080000000000 1,27380000000000 1,19830000000000
0 3,07590000000000 1,94630000000000 1,54920000000000 1,36480000000000 1,28930000000000
0 2,85560000000000 1,95080000000000 1,50980000000000 1,37830000000000 1,30720000000000
0 2,59510000000000 1,80220000000000 1,40840000000000 1,31860000000000 1,25820000000000
0 2,28260000000000 1,56660000000000 1,26290000000000 1,18720000000000 1,13760000000000
2,42950000000000 1,47000000000000 1,19390000000000 1,01650000000000 0,951060000000000 0,911800000000000
1,43920000000000 0,914010000000000 0,666700000000000 0,557910000000000 0,500740000000000 0,468880000000000
0,225130000000000 -8,92120000000000e-12 -7,80610000000000e-11 -6,13350000000000e-12 -6,91410000000000e-11 1,84010000000000e-11

Ahora obteniendo una x mediante una funcion para cada valor de y, es decir, en cada linea de y, que valor tiene x. Una vez obtenido ese valor, me gustaria encontrar en esa linea en la matriz de y (seria en i=1 (i son las lineas), por ejemplo) encontrar en la misma linea, es decir en i=1 pero en la matriz de x, cuales son los dos valores mas cercanos. Y una vez sabiendo cuales son las posiciones de esos dos valores de x, encontrar los dos valores de p que estan en la misma posicion, pero en la matriz de p.
Nose si se ha entendido bien.
Agradeceria mucho vuestra ayuda.
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