Matlab, удалить элементы из массива, которые меньше среднего?

Привет, у меня проблема с написанием этого с помощью Matlab. Так

Ситуация: массив содержит, например, (100, 90, 80, 4, 2, 200). Я хочу рассчитать среднее значение этих чисел и после этого сохранить только числа, равные или превышающие среднее значение.

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


person Zalaboza    schedule 09.01.2012    source источник


Ответы (2)


Лично я предпочитаю

x(x < mean(x)) = [];

так как это дает понять, что вы удаляете элементы из массива, а не создаете массив с подмножеством элементов, которые имеют одно и то же имя.

Обратите внимание, что в среднем не должно быть разницы в производительности между этим и

x = x(x >= mean(x));
person Nzbuu    schedule 09.01.2012
comment
Это преобразует матрицу в массив. Есть ли способ сохранить формат матрицы? - person Ravi Sankar Raju; 28.03.2014
comment
Вам нужно задать это как отдельный вопрос. - person Nzbuu; 15.04.2014

Скажем, ваш массив равен x, тогда вы можете сделать это следующим образом:

x = x(x >= mean(x))
person Yuushi    schedule 09.01.2012
comment
спасибо, теперь у меня есть еще одна проблема, после которой я использовал ее для построения графика по ее индексу. Есть ли способ удалить элементы, не меняя порядок? пример X(1)=100 X(2)90 X(3)80 X(5)200 и просто пропусти младшие значения - person Zalaboza; 09.01.2012
comment
х(х ›= среднее(х)) = 0; или x(x ›= среднее(x)) = NaN; - person Tobold; 09.01.2012