Seleccionar solo un número específico de filas que cumplan una condición


Actualmente comencé a trabajar con octave para algunos análisis de datos y tengo algunos problemas para una manipulación de matriz específica.

Supongamos que tiene la siguiente matriz de datos:


    A =

        1   11   22   33
       44   13   12   33
        1   14   33   44

Ahora me gustaría eliminar todas las filas de esta matriz que no cumplen, por ejemplo, la siguiente condición.


    octave:6> A(:, 4) == 33
    ans =

       1
       1
       0

Y obtendré la matriz de este formulario que solo selecciona estas filas:


    A_new =

        1   11   22   33
       44   13   12   33

Sé que esto es posible con la ayuda de algunos bucles. Pero hay tal vez un limpiador solución, por ejemplo, mediante el uso de la biblioteca estándar proporcionada? Eso sería genial :]

Alguna pregunta similar también fue publicada para R: En R, seleccione filas de una matriz que cumplan una condición

Author: Community, 2011-11-13

1 answers

Intenta:

A = [
    1   11   22   33
    44  13   12   33
    1   14   33   44
];
idx = ( A(:,4)==33 );
A_new = A(idx,:)

Esto está usando indexación lógica

 54
Author: Amro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-04 13:28:29