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