Scilab Function

extraction - matrix and list entry extraction

Calling Sequence

x(i,j)
x(i)
[...]=l(i)
[...]=l(k1)...(kn)(i) or [...]=l(list(k1,...,kn,i))
l(k1)...(kn)(i,j) or l(list(k1,...,kn,list(i,j))

Parameters

Description

  • MATRIX CASE i and j, can be:
  • - real scalars or vectors or matrices with positive elements.
  • * r=x(i,j) builds the matrix r such as r(l,k)=x(int(i(l)),int(j(k))) for l from 1 to size(i,'*') and k from 1 to size(j,'*'). i (j) Maximum value must be less or equal to size(x,1) (size(x,2)).
  • * r=x(i) with x a 1x1 matrix builds the matrix r such as r(l,k)=x(int(i(l)),int(i(k))) for l from 1 to size(i,1) and k from 1 to size(i,2). Note that in this case index i is valid only if all its entries are equal to one.
  • * r=x(i) with x a row vector builds the row vector r such as r(l)=x(int(i(l))) for l from 1 to size(i,'*') i Maximum value must be less or equal to size(x,'*').
  • * r=x(i) with x a matrix with one or more columns builds the column vector r such as r(l) (l from 1 to size(i,'*')) contains the int(i(l)) entry of the column vector formed by the concatenation of the x's columns. i Maximum value must be less or equal to size(x,'*').
  • - the : symbol which stands for "all elements".
  • * r=x(i,:) builds the matrix r such as r(l,k)=x(int(i(l)),k)) for l from 1 to size(i,'*') and k from 1 to size(x,2)
  • * r=x(:,j) builds the matrix r such as r(l,k)=x(l,int(j(k))) for l from 1 to size(r,1) and k from 1 to size(j,'*').
  • * r=x(:) builds the column vector r formed by the column concatenations of x columns. It is equivalent to matrix(x,size(x,'*'),1).
  • - vector of boolean. If an index (i or j )is a vector of booleans it is interpreted as find(i) or respectively find(j)
  • - a polynomial. If an index (i or j )is a vector of polynomials or implicit polynomial vector it is interpreted as horner(i,m) or respectively horner(j,n) where m and n are associated x dimensions. 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 ki give the path to a sub-list entry of l data structure. They allow a recursive extraction without intermediate copies. The [...]=l(k1)...(kn)(i) and [...]=l(list(k1,...,kn,i)) instructions are interpreted as: lk1 = l(k1) .. = .. lkn = lkn-1(kn) [...] = lkn(i) And the l(k1)...(kn)(i,j) and l(list(k1,...,kn,list(i,j)) instructions are interpreted as: lk1 = l(k1) .. = .. lkn = lkn-1(kn) lkn(i,j) i and j, can be: When path points on more than one list component the instruction must have as many left hand side arguments as selected components. But if the extraction syntax is used within a function input calling sequence each returned list component is added to the function calling sequence.
  • Note that, l(list() is the same as l.

  • - real scalar or vector or matrix with positive elements. [r1,...rn]=l(i) extracts the i(k) elements from the list l and store them in rk variables for k from 1 to size(i,'*')
  • - the : symbol which stands for "all elements".
  • - a vector of booleans. If i is a vector of booleans it is interpreted as find(i).
  • - a polynomial. If i is a vector of polynomials or implicit polynomial vector it is interpreted as horner(i,m) where m=size(l). Even if this feature works for all polynomials, it is recommended to use polynomials in $ for readability.
  • k1,..kn may be :
  • - real positive scalar.
  • - a polynomial,interpreted as horner(ki,m) where m is the corresponding sub-list size.
  • - a character string associated with a sub-list entry name.
  • REMARKS

    Examples

    See Also