Что означает эта строка Matlab?

0
Histogram(j, :) = Histogram(j, :)./sum(Histogram(j, :));

Чтобы поместить в C++, я понимаю, что Гистограмма будет многомерным массивом. Что означает "./" в этой строке?

http://www.mathworks.com/help/matlab/matlab_prog/symbol-reference.html#bsgigzp-23

Теги:

1 ответ

1
Лучший ответ

. / - это команда для элементарного разделения (. * - версия умножения). Значение по умолчанию для MATLAB - это операции с матрицами, поэтому вам нужно использовать команду. /, чтобы сказать ему, чтобы операция выполнялась как элемент, а не операция матрицы (которая в большинстве случаев будет терпеть неудачу, поскольку большую часть времени люди намереваются использовать этот элемент -Мудрый).

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

В приведенном выше примере, предполагая, что гистограмма является двумерной матрицей, элементарные и матричные операции на самом деле одинаковы, поскольку

sum(Histogram(j,:))

вернет одно скалярное значение (сумма элементов в строке j). Автор кода, который вы цитируете, вероятно, просто выполнил команду./по умолчанию, поскольку это обычная привычка программирования MATLAB.

  • 1
    верно, sum уменьшает размерность на единицу, что делает его отличным от других аргументов, и поскольку MATLAB не имеет неявного одноэлементного расширения, за исключением скаляров (октава имеет), он должен производить скаляр.
  • 1
    Чтобы добавить к этому комментарию, это утверждение также гарантирует, что гистограмма для j-й строки нормализуется и преобразуется в PDF, так что вы не рассчитываете, как часто встречается конкретное значение, а какова вероятность того, что эта конкретная встречается значение

Ещё вопросы

Сообщество Overcoder
Наверх
Меню