Переопределите преобразованную в нижний индекс ссылку для объектов
B = subsref (A, S)
B = subsref(A,S) вызван MATLAB® для синтаксиса A(i), A{i} или A.i, когда A является объектом.
MATLAB использует встроенную функцию subsref, чтобы интерпретировать индексированные ссылки на объекты. Изменить индексируемое ссылочное поведение объектов, перегрузка subsref в классе.
|
Объект используется в индексации операции |
|
Структура с двумя полями,
|
|
Результат индексируемого выражения. Если ваша реализация метода |
Смотрите, как MATLAB вызывает subsref для выражения:
A(1:2,:)
A(1:2,:) синтаксиса вызывает B = subsref(A,S), где S является структурой 1 на 1 с S.type='()' и S.subs={1:2,':'}. Символ двоеточия ':' указывает на двоеточие, используемое в качестве индекса.
Смотрите, как MATLAB вызывает subsref для выражения:
A{1:2}Синтаксис A{1:2} вызывает [B1,B2] = subsref(A,S) где S.type='{}' и S.subs={[1 2]}.
Смотрите, как MATLAB вызывает subsref для выражения:
A.field
Синтаксис A.field вызывает B = subsref(A,S) где S.type='.' и S.subs='field'.
Смотрите, как MATLAB вызывает subsref для выражения:
A(1,2).name(3:5)
Простые вызовы объединяются прямым способом к более сложным выражениям индексации. В таких случаях length(S) является количеством нижних уровней. Например, A(1,2).name(3:5) вызывает subsref(A,S), где S является массивом структур 3 на 1 со следующими значениями:
S1 . введите = '()' | S2 . введите = '.' | S(3).type='()' |
S1 . нижние индексы = {1,2} | S2 . нижние индексы ='name' | S(3).subs={[3 4 5]} |
В рамках метода subsref, заданного классом, MATLAB вызывает встроенный subsref. Вызов встроенного позволяет вам использовать поведение индексации значения по умолчанию при определении специализированной индексации. Для получения дополнительной информации смотрите Встроенный subsref и subsasgn, Названный в Методах.