частичное присвоение или модификация значения переменной
частичное присвоение значения переменной
x(i,j)=a x(i)=a l(i)=a l(k1)...(kn)(i)=a или l(list(k1,...,kn,i))=a l(k1)...(kn)(i,j)=a или l(list(k1,...,kn,list(i,j))=a
матрица любого типа (constant, sparse, polynomial,...)
list
индексы
индексы с целочисленными значениями
новое значение элемента
Если x
является матрицей, то индексы i
и j
могут быть:
В этом случае значения, указанные как индексы, должны быть положительными и учитывается лишь их целая часть.
Если a
является матрицей с размерами
(size(i,'*'),size(j,'*'))
, то
x(i,j)=a
возвращает новую матрицу x
такую, как
x(int(i(l)),int(j(k)))=a(l,k)
для
l
от 1 до
size(i,'*')
и k
от
1 до size(j,'*')
, другие изначальные элементы x
остаются неизменными.
Если a
является скаляром, то
x(i,j)=a
возвращает новую матрицу x
такую, как
x(int(i(l)),int(j(k)))=a
для
l
от 1 до
size(i,'*')
и k
от
1 до size(j,'*')
, другие изначальные элементы x
остаются неизменными.
Если максимальное значение i
или j
превосходит соответствующие размеры матрицы x
, то
массив x
сначала расширяется до требуемых размеров нулевыми
элементами для стандартных матриц, символьными строками нулевой длины для строковых матриц
и значениями "ложь" для матриц логических значений.
x(i,j)=[]
удаляет строки, определённые через
i
, если j
совпадает со всеми столбцами
x
или удаляет столбцы, определённые через
j
, если i
совпадает со всеми строками
x
. В других случаях x(i,j)=[]
формирует ошибку.
x(i)=a
, где a
-- вектор, возвращает
новую матрицу x
, такую что
x(int(i(l)))=a(l)
для l
от 1 до
size(i,'*')
, другие изначальные элементы x
являются неизменными.
x(i)=a
, где a
-- скаляр, возвращает
новую матрицу x
, такую что
x(int(i(l)))=a
для l
от 1 до
size(i,'*')
, другие изначальные элементы x
являются неизменными.
Если максимальное значение i
превосходит
size(x,1)
, то x
сначала расширяется до
требуемого размера нулевыми элементами для стандартных матриц, символьными строками нулевой длины для строковых матриц
и значениями "ложь" для матриц логических значений.
x
является скаляром (1x1)
матрица a
может быть вектор-строкой (соответственно вектор-столбцом) размером
size(i,'*')
. Результирующая матрица
x
является вектором-строкой (соответственно вектор-столбцом);
x
является вектор-строкой
вектор a
должен быть вектор-строкой размером size(i,'*')
;
x
является вектор-столбцом
вектор a
должен быть вектор-столбцом размером size(i,'*')
;
x
в общем виде
матрица a
должна быть вектор-строкой или вектор-столбцом
размером size(i,'*')
и максимальное значение
i
не может превосходить
size(x,'*')
.
x(i)=[]
удаляет элементы, определённые через i
.
Символ двоеточие :
означает "все элементы".
x(i,:)=a
интерпретируется как
x(i,1:size(x,2))=a
x(:,j)=a
интерпретируется как
x(1:size(x,1),j)=a
x(:)=a
возвращает в x
матрицу a
, элементы которой переставлены в соответсвии
с размерами x
. Размер size(x,'*')
должен быть равен размеру size(a,'*')
.
Если индекс (i
или j
) задан в виде
вектора логических значений, то он интерпретируется как
find(i)
или, соответственно, find(j)
.
Если индекс (i
или j
) задан в виде
полиномов или в виде неявного вектора полиномов, то он интерпретируется как
horner(i,m)
или, соответственно,
horner(j,n)
, где m
и
n
связаны с размерами x
.
Даже если это работает для всех полиномов, рекомендуется использовать символ
$
для удобочитаемости.
If they are present
the ki
give the path to a sub-list entry of
l
data structure. They allow a recursive insertion
without intermediate copies. The l(k1)...(kn)(i)=a
and l(list(k1,...,kn,i)=a)
instructions are
interpreted as:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i) = a
lkn-1(kn) = lkn
.. = ..
l(k1) = lk1
А инструкции l(k1)...(kn)(i,j)=a
и l(list(k1,...,kn,list(i,j))=a
интерпретируется как:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i,j) = a
lkn-1(kn) = lkn
.. = ..
l(k1)= lk1
i
может быть:
вещественным неотрицательным скаляром. l(0)=a
добавляет элемент к списку "слева". l(i)=a
присваивает элементу i
списка l
значение a
. Если i>size(l)
, то
l
сначала расширяется элементами нулевой длины (неопределённые).
l(i)=null()
удаляет i
-тый элемент из списка.
полиномом. Если i
является полиномом, то он интерпретируется как
horner(i,m)
, где m=size(l)
.
Даже если это работает для всех полиномов, рекомендуется использовать символ
$
для удобочитаемости.
k1,..kn
могут быть:
вещественным положительным скаляром;
полиномом, интерпретируемым как
horner(ki,m)
, где m
является
соответствующим размером подсписка;
символьной строкой, связанной с именем элемента подсписка.
Для программно формируемых типов матриц, таких, как рациональные функции и линейные системы пространства состояний,
синтаксис x(i)
нельзя использовать для вставки элементов вектора из-за путаницы со вставкой
элемента списка. Должен использоваться синтаксис x(1,j)
или x(i,1)
.
// В СЛУЧАЕ МАТРИЦЫ a=[1 2 3;4 5 6] a(1,2)=10 a([1 1],2)=[-1;-2] a(:,1)=[8;5] a(1,3:-1:1)=[77 44 99] a(1)=%s a(6)=%s+1 a(:)=1:6 a([%t %f],1)=33 a(1:2,$-1)=[2;4] a($:-1:1,1)=[8;7] a($)=123 // x='test' x([4 5])=['4','5'] // b=[1/%s,(%s+1)/(%s-1)] b(1,1)=0 b(1,$)=b(1,$)+1 b(2)=[1 2] // числитель // в случае LIST или TLIST l=list(1,'qwerw',%s) l(1)='Changed' l(0)='Added' l(6)=['one more';'added'] // // dts=list(1,tlist(['x';'a';'b'],10,[2 3])); dts(2).a=33 dts(2)('b')(1,2)=-100 | ![]() | ![]() |