У меня есть массив значений 10 x 10, A
. Мне нужно медиана, M
, всех этих значений. Я могу найти медианы вдоль строк или вдоль столбцов легко:Медиана БОЛЬШОГО многомерного массива (не только одного измерения) в MATLAB
M = median(A,1) %or
M = median(A,2)
Однако M = median(A)
также возвращает медианы вдоль строк.
Как найти единственную медианную из ВСЕХ значений? Я знаю, что могу преобразовать массив в один очень длинный вектор, но это кажется неприятным и неэффективным. Есть ли более простое решение? Я хотел бы иметь возможность сделать это для многомерных массивов.
Спасибо!
Преобразование матрицы в один вектор является одной из самых быстрых ** операций, которые вы можете выполнять в MATLAB. Помните, что память в MATLAB организована в основном порядке столбца, и поэтому на самом деле использование индексов доступа с несколькими измерениями для получения правильной ячейки памяти является синтаксическим сахаром для многомерного доступа к элементу с одним индексом. Предложение Луиса ниже, чтобы развернуть матрицу в длинный вектор и выполнить медианную ... вы не можете получить ее быстрее. – rayryeng
Отлично! Я переоценил трудоемкость преобразования. Благодаря! – Takver
Примите ответ от Луиса, чтобы сообщество узнало, что вам больше не нужна помощь. – rayryeng