Назначение по подписке
a(I) = b
a(I,J) = b
a(I,:) = b
a(:,I)
= b
a(I,J,K,...) = b
a = subsasgn(a,S,b)
a(I) = b
присваивает значения b
в элементы a
задается индексным вектором I
. b
должно иметь то же количество элементов, что и I
или быть скалярным значением.
a(I,J) = b
присваивает значения b
в элементы прямоугольной подматрицы a
задается индексом векторов I
и J
. b
должно иметь LENGTH(I)
строки и LENGTH(J)
столбцы.
Двоеточие, используемое в качестве индекса, как в a(I,:) = b
или a(:,I)
= b
указывает весь столбец или строку.
Для многомерных массивов, a(I,J,K,...) = b
присваивает b
к указанным элементам a
. b
должен быть length(I)
-by- length(J)
-by- length(K)
-... или быть сдвинутым к этому размеру путем добавления или удаления синглтонных размерностей.
a = subsasgn(a,S,b)
вызывается для синтаксиса a(i)=b
, a{i}=b
, или a.i=b
когда a
является объектом. S
представляет собой массив структур со следующими полями:
type - Одно из следующего: '()'
, '{}'
, или '.'
определение типа индекса
нижние индексы - массив ячеек или вектор символов, содержащий фактические индексы
Например, синтаксис a(1:2,:) = b
вызывает a=subsasgn(a,S,b)
где S
- структура 1 на 1 с S.type='()'
и S.subs = {1:2,':'}
. Двоеточие, используемое в качестве индекса, передается как ':'
.
Можно использовать назначение с фиксированной точкой, например a(:) = b
, чтобы задать значение с одним numerictype
объект в другой numerictype
объект. Этот подписанный оператор назначения присваивает значение b
в a
при сохранении numerictype
объект a
. Подписанное назначение работает так же и для целочисленных типов данных.