окончание как Индекс объекта

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

Когда вы используете 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 возвращает индексное значение для последнего элемента первой размерности (из которого 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

Похожие темы

Была ли эта тема полезной?