Преобразованная в нижний индекс ссылка
Перегрузка классов subsref
, чтобы реализовать пользовательское поведение индексации для объектов класса. Для получения дополнительной информации см. Индексирование объектов.
B = subsref(A,S)
Этот пример показывает, как 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'
.
A
Индексируемый объектный массивИндексируемый объектный массив, переданный MATLAB как объектный массив, который является частью выражения индексации.
S
Индексация структурыИндексация структуры, переданной MATLAB как индексация substruct
для выражения индексации, которое вызвало вызов subsref. Эта структура имеет эти поля:
ввод
Вектор символов или скаляр строки, содержащий ()
, {}
или .
, задавая нижний тип.
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
B
Результат индексации выраженияРезультат индексации выражения.
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)
-by-length(J)-by-
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
.
Указания и ограничения по применению:
Индексом I
в A(I)
должен быть :
, скаляр или вектор.
Изогнутая индексация фигурной скобки для массивов ячеек и индексация точки для структур не поддержаны (массивы графического процессора не поддерживают массивы ячеек или структуры).
Для получения дополнительной информации смотрите функции MATLAB Выполнения на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Индексом I
в A(I)
должен быть :
, скаляр или вектор.
Изогнутая индексация фигурной скобки для массивов ячеек и индексация точки для структур не поддержаны.
Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.