вставка
частичное присвоение или модификация значения переменной
присвоение
частичное присвоение значения переменной
Синтаксис
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
Аргументы
- x
матрица любого типа (constant, sparse, polynomial,...)
- l
list
- i,j
индексы
- k1,...kn
индексы с целочисленными значениями
- a
новое значение элемента
Описание
Для матриц
Если 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
. Даже если это работает для всех полиномов, рекомендуется использовать символ$
для удобочитаемости.
Случай простых списков или типизированных списков (tlist)
Если они имеются в наличии, то
ki
указывают путь до элемента подсписка структуры данныхl
. Они позволяются рекурсивную вставку без промежуточных копий. Инструкцииl(k1)...(kn)(i)=a
иl(list(k1,...,kn,i)=a)
интерпретируются следующим образом: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
Смотрите также
- выделение — выделение элемента матрицы или списка
- двоеточие — оператор "двоеточие"
- find — даёт индексы элементов с ненулевым значением или значением %T
- horner — evaluates some polynomials or rationals for given values
- круглые скобки — ( ) левая и правая круглые скобки
Report an issue | ||
<< ind2sub | Основные функции | isempty >> |