subsref

Переопределите преобразованную в нижний индекс ссылку для объектов

Синтаксис

B = subsref (A, S)

Описание

B = subsref(A,S) вызван MATLAB® для синтаксиса A(i), A{i} или A.i, когда A является объектом.

MATLAB использует встроенную функцию subsref, чтобы интерпретировать индексированные ссылки на объекты. Изменить индексируемое ссылочное поведение объектов, перегрузка subsref в классе.

Входные параметры

A

Объект используется в индексации операции

S

Структура с двумя полями, type и subs. Для составных выражений индексации S является массивом структур, один для каждого уровня индексации.

  • type является вектором char или строкой, содержащей (), {} или ., указывая на тип индексации используемого.

  • subs является массивом ячеек, символьным массивом или массивом строк, содержащим фактические индексы.

Выходные аргументы

B

Результат индексируемого выражения.

Если ваша реализация метода subsref возвращает или вывод или больше чем один вывод, используйте varargout для выходного аргумента. Для получения дополнительной информации смотрите Синтаксис для subsref и subsasgn Методы.

Примеры

Смотрите, как 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, Названный в Методах.

Расширенные возможности

Представлено до R2006a

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