Выбор только определенного количества строк, удовлетворяющих условию

34

В настоящее время я начал работать с октавой для некоторого анализа данных и имею некоторые проблемы для конкретной манипуляции с матрицами.

Предположим, что у вас есть следующая матрица данных:


    A =

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

Теперь я хотел бы удалить все строки этой матрицы, которые не выполняются, например. следующее условие.


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

       1
       1
       0

И я получу матрицу этой формы, которая выбирает только эти строки:


    A_new =

        1   11   22   33
       44   13   12   33

Я знаю, что это возможно с помощью некоторых циклов. Но может быть, более чистое решение, например. используя стандартную библиотеку? Это было бы здорово:]

Некоторые аналогичные вопросы были также отправлены для R: В R выберите строки матрицы, соответствующие условиям

Теги:
matrix
octave

1 ответ

50
Лучший ответ

Try:

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

Используется логическая индексация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню