Переопределите преобразованную в нижний индекс ссылку для объектов
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, Названный в Методах.