Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
insertion
partial variable assignation or modification
assignation
partial variable assignation
Calling Sequence
x(i,j)=a x(i)=a l(i)=a l(k1)...(kn)(i)=a or l(list(k1,...,kn,i))=a l(k1)...(kn)(i,j)=a or l(list(k1,...,kn,list(i,j))=a
Arguments
- x
matrix of any kind (constant, sparse, polynomial,...)
- l
list
- i,j
indices
- k1,...kn
indices with integer value
- a
new entry value
Description
- MATRIX CASE
If
xis a matrix the indicesiandj, may be:- Real scalars or vectors or matrices
In this case the values given as indices should be positive and only their integer part are taken into account.
If
ais a matrix with dimensions(size(i,'*'),size(j,'*')),x(i,j)=areturns a newxmatrix such asx(int(i(l)),int(j(k)))=a(l,k)forlfrom 1 tosize(i,'*')andkfrom 1 tosize(j,'*'), other initial entries ofxare unchanged.If
ais a scalarx(i,j)=areturns a newxmatrix such asx(int(i(l)),int(j(k)))=aforlfrom 1 tosize(i,'*')andkfrom 1 tosize(j,'*'), other initial entries ofxare unchanged.If
iorjmaximum value exceed correspondingxmatrix dimension, arrayxis previously extended to the required dimensions with zeros entries for standard matrices, 0 length character string for string matrices and false values for boolean matrices.x(i,j)=[]kills rows specified byiifjmatches all columns ofxor kills columns specified byjifimatches all rows ofx. In other casesx(i,j)=[]produce an error.x(i)=awith anavector returns a newxmatrix such asx(int(i(l)))=a(l)forlfrom 1 tosize(i,'*'), other initial entries ofxare unchanged.x(i)=awith anascalar returns a newxmatrix such asx(int(i(l)))=aforlfrom 1 tosize(i,'*'), other initial entries ofxare unchanged.If
imaximum value exceedsize(x,1),xis previously extended to the required dimension with zeros entries for standard matrices, 0 length character string for string matrices and false values for boolean matrices.- if
xis a 1x1matrix
amay be a row (respectively a column) vector with dimensionsize(i,'*'). Resultingxmatrix is a row (respectively a column) vector- if
xis a rowvector
amust be a row vector with dimensionsize(i,'*')- if
xis a columnvector
amust be a column vector with dimensionsize(i,'*')- if
xis a generalmatrix
amust be a row or column vector with dimensionsize(i,'*')andimaximum value cannot exceedsize(x,'*').
x(i)=[]kills entries specified byi.
- The : symbol
The
:symbol stands for "all elements".x(i,:)=ais interpreted asx(i,1:size(x,2))=ax(:,j)=ais interpreted asx(1:size(x,1),j)=ax(:)=areturns inxtheamatrix reshaped according toxdimensions.size(x,'*')must be equal tosize(a,'*').
- Vectors of boolean
If an index (
iorj) is a vector of booleans it is interpreted asfind(i)or respectivelyfind(j).- Polynomials
If an index (
iorj) is a vector of polynomials or implicit polynomial vector it is interpreted ashorner(i,m)or respectivelyhorner(j,n)wheremandnare associatedxdimensions. Even if this feature works for all polynomials, it is recommended to use polynomials in$for readability.
- LIST OR TLIST CASE
If they are present the
kigive the path to a sub-list entry ofldata structure. They allow a recursive insertion without intermediate copies. Thel(k1)...(kn)(i)=aandl(list(k1,...,kn,i)=a)instructions are interpreted as:lk1 = l(k1).. = ..lkn = lkn-1(kn)lkn(i) = alkn-1(kn) = lkn.. = ..l(k1) = lk1And the
l(k1)...(kn)(i,j)=aandl(list(k1,...,kn,list(i,j))=ainstructions are interpreted as:lk1 = l(k1).. = ..lkn = lkn-1(kn)lkn(i,j) = alkn-1(kn) = lkn.. = ..l(k1)= lk1imay be :a real non negative scalar (only its integer part is taken into account).
l(0)=aadds an entry on the "left" of the list.l(i)=asets theientry of the listltoa. Ifi>size(l),lis previously extended with zero length entries (undefined).l(i)=null()deletes theith list entry.a polynomial. If
iis a polynomial it is interpreted ashorner(i,m)wherem=size(l). Even if this feature works for all polynomials, it is recommended to use polynomials in$for readability.
k1,..knmay be :real positive scalar.
a polynomial, interpreted as
horner(ki,m)wheremis the corresponding sub-list size.a character string associated with a sub-list entry name.
Remarks
For soft coded matrix types such as rational functions and state space linear systems, x(i) syntax must not be used for vector entry insertion due to confusion with list entry insertion. x(1,j) or x(i,1) syntax must be used.
Examples
// MATRIX CASE 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 a(1,%pi)=1 //equivalent to a(1,3)=1 // 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] // the numerator // LIST OR TLIST CASE l=list(1,'qwerw',%s) l(1)='Changed' l(0)='Added' l(%pi)=1 //equivalent to l(3)=1 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
See Also
- find — find indices of boolean vector or matrix true elements
- horner — polynomial/rational evaluation
- parentheses — ( ) left and right parenthesis
- extraction — matrix and list entry extraction
| Report an issue | ||
| << hat | Scilab keywords | less >> |