МАТЛАБ: Что [Y, I] = max (AS, [], 2) ;? - PullRequest
       28

МАТЛАБ: Что [Y, I] = max (AS, [], 2) ;?

3 голосов
/ 26 октября 2009

Я только что запустил Matlab, и мне нужно закончить эту программу очень быстро, поэтому у меня нет времени, чтобы просмотреть все учебники.

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

[Y,I]=max(AS,[],2);

[] между AS и 2 - вот что меня больше всего смущает. И назначается ли максимальное значение как Y, так и I?

Ответы [ 5 ]

5 голосов
/ 26 октября 2009

Согласно справочнику ,

C = max(A,[],dim) возвращает наибольшие элементы по измерению A, указанному скаляром dim. Например, max(A,[],1) создает максимальные значения по первому измерению (строки) A.

[C,I] = max(...) находит индексы максимальных значений A и возвращает их в выходной вектор I. Если существует несколько одинаковых максимальных значений, возвращается индекс первого найденного значения.

Я думаю, [] это просто отличить себя от max(A,B).

2 голосов
/ 26 октября 2009

C = max(A,[],dim) возвращает самые большие элементы по измерению A, заданному скалярным dim. Например, max(A,[],1) создает максимальные значения по первому измерению (строки): A.

Кроме того, форма [C, I] = max(...) дает вам максимальные значения в C и их индексы (т.е. местоположения) в I.

Почему бы вам не попробовать пример, подобный этому? Введите его в MATLAB и посмотрите, что вы получите. Это должно сделать вещи намного легче увидеть.

m = [[1;6;2] [5;8;0] [9;3;5]]
max(m,[],2)
2 голосов
/ 26 октября 2009

AS - матрица.
Это вернет самые большие элементы AS в его 2-м измерении (то есть его столбцы)

1 голос
/ 26 октября 2009

Эта функция принимает AS и выдает максимальное значение по второму измерению AS. Возвращает максимальное значение «Y» и индекс его «I».

0 голосов
/ 27 октября 2009

обратите внимание на явные морщины в соглашении Matlab; Есть ряд встроенных функций, которые имеют сигнатуру, например:

xs = sum(x,dim)

, который работает «вдоль» тусклого измерения. max и min - странные исключения:

xm = max(x,dim);     %this is probably a silent semantical error!
xm = max(x,[],dim);  %this is probably what you want

Иногда мне бы хотелось, чтобы у matlab был бинарный максимум и коллапсирующий максимум вместо того, чтобы помещать их в одну функцию ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...