Выпишите строки, в которых есть ячейка с определенным значением из большого массива в MATLAB.

Я читаю данные из большого массива (~ 50000 x 45). Я пытаюсь извлечь из него строки, у которых значение x_value (столбец 27) выше определенного значения (в данном случае 1,8).

Я могу написать массив (p1), но каждая выходная строка одинакова (последняя строка из большого массива с x> 1,8)

Может ли кто-нибудь сказать мне, как правильно записать эти данные?

Спасибо

n = length(DAT);

bin = 1.8;

x_value = DAT(:,27); 

row = sum(x_value > bin);

for s = 1:n;

    if DAT(s,27) > bin

        for r = 1:row;

        p1(r,:) = DAT(s,:);

        end
    end
end

person mallow    schedule 13.03.2013    source источник
comment
зачем суммируешь? Вы можете написать row = (x_value > bin);. Это логическое индексирование. Затем вы можете извлечь как: desiredValue=x_value(row);`   -  person Autonomous    schedule 14.03.2013


Ответы (1)


person    schedule
comment
Вы также можете использовать логическое индексирование и опустить find, т.е.: p1 = DAT(DAT(:,column) > bin, :); - person Eitan T; 14.03.2013