2011-12-30 17 views
6

En Matlab, I tienen un vector, X, que contiene N valores reales:Matlab, cómo filtrar un vector numérico por una condición?

  • 0,001
  • 0,003
  • 0,006
  • 0,009
  • 0,007
  • 0,006

Me gustaría crear un nuevo vector, Xb, que contenga todo el M valores de X que son menores que 0,005 (M < = N). ¿Cómo podría hacerlo?

He probado con:

Xb = X < 0,005

pero me da un vector de N valores 0s o 1s.

Gracias

Respuesta

14
>> Xb = X(X < 0.005) 

Xb = 

    0.0010 0.0030 
+1

¿Hay alguna forma de obtener los índices? – fersarr

+0

@fersarr Puede encontrar los índices usando 'find (X <0.005)' –

+0

¿Cómo funcionaría esto para una matriz? –

2

lo que hizo con el código Xb=X<0.005 fue la creación de una máscara. En pocas palabras, te dice qué valores son menos de 0.005, pero sin ordenar la lista. Lo que quiere es ordenar la lista por la máscara, lo que se puede hacer como ha sugerido jlrcowan.

Cuestiones relacionadas