вставка
частичное присвоение или модификация значения переменной
присвоение
частичное присвоение значения переменной
Синтаксис
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))=ax(:,j)=aинтерпретируется какx(1:size(x,1),j)=ax(:)=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) = alkn-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) = alkn-1(kn) = lkn.. = ..l(k1)= lk1iможет быть:вещественным неотрицательным скаляром.
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 >> |