subsref

Преобразованная в нижний индекс ссылка

Синтаксис

Описание

Перегрузка классов subsref реализовывать пользовательское поведение индексации для объектов класса. Для получения дополнительной информации см. Индексирование объектов.

пример

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

Примеры

свернуть все

В этом примере показано, как MATLAB® вызывает subsref для следующего выражения индексации.

A = magic(5);
A(1:2,:)
ans = 2×5

    17    24     1     8    15
    23     5     7    14    16

Синтаксис, A(1:2,:), результаты в вызове B = subsref(A,S) где S структура 1 на 1 где S.type is '()' и S.subs is {1:2,':'}. Символ двоеточия указывает на двоеточие, используемое в качестве индекса.

В этом примере показано, как MATLAB® вызывает subsref для индексации выражения то использование фигурные скобки.

C = {"one", 2, 'three'};
C{1:2}
ans = 
"one"
ans = 2

Синтаксис, C {1:2}, приводит к вызову [c1,c2] = subsref(C,S) где S.type '{}' и S.subs {[1 2]}.

В этом примере показано, как MATLAB® вызывает subsref для индексации выражения та запись через точку использования.

A = struct('number',10);
A.number
ans = 10

Синтаксис A.number результаты в вызове B = subsref(A,S) где S.Type '.' и S.subs 'number'.

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

свернуть все

Индексируемый объектный массив, переданный MATLAB как объектный массив, который является частью выражения индексации.

Индексация структуры, переданной MATLAB как индексация substruct для выражения индексации, которое вызвало вызов subsref. Эта структура имеет эти поля:

  • type – Вектор символов или скаляр строки, содержащий (), {}, или ., определение нижнего типа.

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

Выражения индекса могут использовать больше чем один уровень, чтобы сформировать более сложные выражения. Например, A{1}.field(3:5) имеет три уровня индексации. Для этого выражения, S массив структур 3 на 1 с этими полями:

disp(S(1))
    type: '{}'
    subs: {[1]}
disp(S(2))
    type: '.'
    subs: 'field'
disp(S(3))
    type: '()'
    subs: {[3 4 5]}

Типы данных: struct

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

свернуть все

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

Больше о

свернуть все

Понимание выражений индексации

A(I) массив, сформированный из элементов A заданный нижним векторным I. Полученный массив одного размера с I за исключением особого случая, где A и I оба векторы. В этом случае, A(I) имеет то же число элементов как I но имеет ориентацию A.

A(I,J) массив, сформированный из элементов прямоугольной субматрицы A, заданный нижними векторами I и J. Полученный массив имеет length(I) строки и length(J) столбцы. Двоеточие, используемое в качестве индекса, указывает на все элементы в этом измерении. Например, A(I,:) средние значения все столбцы тех строк заданы векторным I. Точно так же A(:,J) средние значения все строки столбцов заданы J.

A(I,J,K,...) массив, заданный индексами. Результатом является length(I)- length(J)- length(K)....

A{I} где A массив ячеек и I скалярные формы копия массива в заданной ячейке A. Если I имеет больше чем один элемент, это выражение является списком, разделенным запятыми. Можно также использовать несколько индексов, которые указывают скалярный элемент, как в A{3,4}.

A(I).field когда A массив структур и I скалярные формы копия массива в поле с именем field. Если I имеет больше чем один элемент, это выражение является списком, разделенным запятыми. Если A массив структур 1 на 1, затем индекс может быть пропущен. В этом случае, A.field совпадает с A(1).field.

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

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