exponenta event banner

завершить как индекс объекта

Определить end Индексирование для объекта

При использовании end в выражении индексации объекта, таком как A(4:end), end функция возвращает значение индекса, соответствующее последнему элементу в этом измерении.

Классы могут перегружать end функция для реализации специализированного поведения. Если класс определяет end MATLAB ® вызывает этот метод, чтобы определить, как интерпретировать выражение.

end метод имеет синтаксис вызова:

ind = end(A,k,n)

Аргументы описываются следующим образом:

  • A является объектом

  • k является индексом в выражении, использующем end синтаксис

  • n - общее число индексов в выражении

  • ind - значение индекса, используемое в выражении

Например, рассмотрим массив 3 на 5 A. Когда MATLAB встречает выражение:

A(end-1,:)

MATLAB вызывает end метод, определенный для объекта A с использованием аргументов:

ind = end(A,1,2)

Эти аргументы означают, что end оператор встречается в первом индексе, и существует два индекса. end метод class возвращает значение индекса для последнего элемента первого измерения (из которого 1 вычитается в этом случае). Исходное выражение оценивается как:

A(3-1,:)

Если класс реализует end убедитесь, что он возвращает значение, соответствующее классу.

Метод завершения

end метод для MyDataClass пример (см. Класс с измененным индексированием) работает с содержимым Data собственность. Целью этого метода является возврат значения, которое может заменить end в любом индексирующем выражении, например:

obj(4:end)
obj.Data(2,3:end)

Это end метод определяет положительное целое значение для end. Метод возвращает значение, чтобы MATLAB мог использовать его в индексном выражении.

function ind = end(obj,k,n)
   szd = size(obj.Data);
   if k < n
      ind = szd(k);
   else
      ind = prod(szd(k:end));
   end
end

Связанные темы