Matlab кратные минимальные значения - PullRequest
3 голосов
/ 31 января 2012

Я пишу программу на MATLAB, в которой я генерирую одномерный массив (14 элементов) .. Элементы массива могут принимать 5 различных значений ... Я хочу выяснить, каков минимум массива .. и ТАКЖЕ, если есть уникальный минимум или если существует более одного минимума ...

Какой самый эффективный способ сделать это ... для нахождения минимума я могу использовать функцию min в MATLAB ... как найти, есть ли несколько экземпляров этого минимума .. Обратите внимание, я хочу повторить этот процесс Огромное нет. раз (~ 10000) и подсчитайте, сколько раз в каждом случае происходит ..

1 Ответ

4 голосов
/ 01 февраля 2012

Для одного 1D-массива можно найти два значения следующим образом:

minValue = min(myArray);
numberOfMinValues = sum(myArray==minValue);

Если ваши 1D-массивы всегда имеют одинаковую длину (и у вас достаточно ОЗУ), вы можете объединить их водин большой массив, после которого вы применяете функции только один раз, чтобы сэкономить время:

%# assuming each 1D array is a column vector (N-by-1)
%# minValues is 1-by-M, i.e. the minimum of each of the M 1D arrays
minValues = min(myLargeArray,[],1); 
%# numberOfMinValues is, again, 1-by-M
numberOfMinValues = sum(bsxfun(@eq,myLargeArray,minValues),1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...