- Manual Scilab
- Scilab
- Scilab palavra-chave
- abort
- add_demo
- argn
- banner
- boolean
- break
- clear
- clearfun
- clearglobal
- comp
- continue
- debug
- delbpt
- dispbpt
- edit
- errcatch
- errclear
- error
- error_table
- exists
- exit
- external
- extraction
- format
- funcprot
- funptr
- getdebuginfo
- getmd5
- getmemory
- getmodules
- getos
- getscilabmode
- getshell
- getvariablesonstack
- getversion
- gstacksize
- ieee
- insertion
- intppty
- inv_coeff
- iserror
- isglobal
- lasterror
- macr2lst
- macr2tree
- matrices
- matrix
- mode
- mtlb_mode
- names
- newfun
- null
- pause
- perl
- poly
- predef
- quit
- rational
- readgateway
- resume
- sciargs
- scilab
- setbpt
- stacksize
- startup
- symbols
- testmatrix
- type
- typename
- user
- varn
- ver
- warning
- what
- where
- whereami
- who
- who_user
- whos
- with_atlas
- with_javasci
- with_macros_source
- with_module
- with_pvm
- with_texmacs
- with_tk
- TMPDIR
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
extraction
extração de entradas de matrizes e listas
Seqüência de Chamamento
x(i) x(i,j) x(i,j,k,..) [...]=l(i) [...]=l(k1)...(kn)(i) ou [...]=l(list(k1,...,kn,i)) l(k1)...(kn)(i,j) or l(list(k1,...,kn,list(i,j))
Parâmetros
- x
matriz de qualquer tipo possível
- l
variável do tipo lista
- i,j, k
índices
- k1,...kn
índices
Descrição
- CASO DE MATRIZES
i
,j
,k
,.. podem ser:- escalares reais ou vetores ou matrizes com elementos positivos.
r=x(i,j)
constrói a matrizr
tal quer(l,k)=x(int(i(l)),int(j(k)))
paral
de 1 asize(i,'*')
ek
de 1 asize(j,'*')
. O valor máximo dei
(j
) deve ser menor do que ou igual asize(x,1)
(size(x,2)
).r=x(i)
comx
uma matriz 1x1 contrói a matrizr
tal quer(l,k)=x(int(i(l)),int(i(k)))
paral
de 1 asize(i,1)
ek
para 1 asize(i,2)
.Note que, nesse caso, o índice
i
é válido apenas se todas as suas entradas são iguais a 1.r=x(i)
comx
um vetor linha constrói o vetor linhar
tal quer(l)=x(int(i(l)))
paral
de 1 asize(i,'*')
i
deve ter valor máximo menor do que ou igual asize(x,'*')
.r=x(i)
comx
uma matriz com uma ou mais colunas constrói o vetor colunar
tal quer(l)
(l
de 1 asize(i,'*')
) contém a entradaint(i(l))
do vetor coluna formado pela concatenação das colunas dex
.i
deve ter valor máximo menor do que ou igual asize(x,'*')
.
- O símbolo
':'
significa "todos os elementos".
r=x(i,:)
constrói uma matrizr
tal quer(l,k)=x(int(i(l)),k))
paral
de 1 asize(i,'*')
andk
from 1 tosize(x,2)
r=x(:,j)
constrói a matrizr
tal quer(l,k)=x(l,int(j(k)))
paral
de 1 asize(r,1)
ek
de 1 asize(j,'*')
.r=x(:)
constrói o vetor colunar
formado pelas concatenações das colunas dex
. É equivalente amatrix(x,size(x,'*'),1)
.
- vetor de booleanos
Se um índice (
i
ouj
) é um vetor de booleanos, é interpretado comofind(i)
ou respectivamentefind(j)
- um polinômio
Se um índice (
i
ouj
) é um vetor de polinômios ou um vetor de polinômios implícito, é interpretado comohorner(i,m)
ou respectivamentehorner(j,n)
ondem
en
são as dimensões associadas ax
. Mesmo se este recurso funcionar para todos os polinômios, é recomendado utilizar polinômios em$
para legibilidade.
Para matrizes com mais de duas dimensoes (ver:hypermatrices), a dimensionalidade é automaticamente reduzida quando as dimensões mais a direita são 1.
- CASO DE LISTAS OU TLISTS
Se estiverem presentes, os
ki
fornecem o endereço para uma entrada de sub-lista da estrutura de dadosl
Eles permitem uma extração recursiva sem cópias intermediárias. As instruções[...]=l(k1)...(kn)(i)
e
[...]=l(list(k1,...,kn,i))
são interpretadas como:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
[...] = lkn(i)
e as instruçõesl(k1)...(kn)(i,j)
el(list(k1,...,kn,list(i,j))
são interpretadas como:lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i,j)
i
ej
, podendo ser: quando pontos de endereço sobre mais de um componente da lista, a instrução deve ter tantos argumentos do lado esquerdo quanto os componentes selecionados. Mas se a sintaxe de extração é usada dentro da seqüência de chamamento de entrada de uma função, cada componente da lista retornado é adicionado à seqüência de chamamento da função.Note que,
l(list())
é o mesmo quel
.- i e j podem ser :
- escalares reais ou vetores ou matrizes de elementos positivos
[r1,...rn]=l(i)
extrai os elementosi(k)
da lista l e armazena-os em variáveisrk
parak
de 1 asize(i,'*')
- O símbolo
:
significa "todos os elementos".
- um vetor de booleanos
Se
i
é um vetor de booleanos, é interpretado comofind(i)
.- um polinômio
Se
i
é um vetor de polinômios ou um vetor de polinômios implícito, é interpretado comohorner(i,m)
ondem=size(l)
. Mesmo que este recurso funcione para todos os polinômios, é recomendado utilizar polinômios em$
para legibilidade.
- k1,..kn podem ser :
- escalares reais posistivos
- um polinômio
interpretado como
horner(ki,m)
ondem
é o tamanho da sub-lista correspondente.- string
associado ao nome da entrada da sub-lista .
Observações
Para tipos de matrizes "soft-coded" como funções racionais e
sistemas lineares de espaços de estados, a sintaxe x(i)
não pode ser usada para extração de elementos de vetores devido a
confusões com extração de elementos de listas. A sintaxe
x(1,j)
ou x(i,1)
deve ser
usada.
Exemplos
// CASO DE MATRIZES a=[1 2 3;4 5 6] a(1,2) a([1 1],2) a(:,1) a(:,3:-1:1) a(1) a(6) a(:) a([%t %f %f %t]) a([%t %f],[2 3]) a(1:2,$-1) a($:-1:1,2) a($) // x='teste' x([1 1;1 1;1 1]) // b=[1/%s,(%s+1)/(%s-1)] b(1,1) b(1,$) b(2) // o numerador // CASO DE LISTAS OU TLISTS l=list(1,'qwerw',%s) l(1) [a,b]=l([3 2]) l($) x=tlist(l(2:3)) //forma um tlist com os últimos dois componentes de l // dts=list(1,tlist(['x';'a';'b'],10,[2 3])); dts(2)('a') dts(2)('b')(1,2) [a,b]=dts(2)(['a','b'])
<< external | Scilab | format >> |