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 des matrizes
i, j,
k,.. podem ser:
- escalares reais ou vetores ou matrizes com elementos positivos.
r=x(i,j)constrói a matrizrtal quer(l,k)=x(int(i(l)),int(j(k)))paralde 1 asize(i,'*')ekde 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)comxuma matriz 1x1 contrói a matrizrtal quer(l,k)=x(int(i(l)),int(i(k)))paralde 1 asize(i,1)ekpara 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)comxum vetor linha constrói o vetor linhartal quer(l)=x(int(i(l)))paralde 1 asize(i,'*')ideve ter valor máximo menor do que ou igual asize(x,'*').r=x(i)comxuma matriz com uma ou mais colunas constrói o vetor colunartal quer(l)(lde 1 asize(i,'*')) contém a entradaint(i(l))do vetor coluna formado pela concatenação das colunas dex.ideve ter valor máximo menor do que ou igual asize(x,'*').
- O símbolo
':' significa "todos os elementos".r=x(i,:)constrói uma matrizrtal quer(l,k)=x(int(i(l)),k))paralde 1 asize(i,'*')andkfrom 1 tosize(x,2)r=x(:,j)constrói a matrizrtal quer(l,k)=x(l,int(j(k)))paralde 1 asize(r,1)ekde 1 asize(j,'*').r=x(:)constrói o vetor colunarformado pelas concatenações das colunas dex. É equivalente amatrix(x,size(x,'*'),1).
- vetor de booleanos
Se um índice (
iouj) é um vetor de booleanos, é interpretado comofind(i)ou respectivamentefind(j)- um polinômio
Se um índice (
iouj) é um vetor de polinômios ou um vetor de polinômios implícito, é interpretado comohorner(i,m)ou respectivamentehorner(j,n)ondemensã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 des listas ou tlist
Se estiverem presentes, os ki fornecem o
endereço para uma entrada de sub-lista da estrutura de dados
l 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ções l(k1)...(kn)(i,j) e
l(list(k1,...,kn,list(i,j)) são
interpretadas como: lk1 = l(k1) .. = ..
lkn = lkn-1(kn) lkn(i,j)
i e j,
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 que
l.
- 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áveisrkparakde 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 tlist :
Ver Também
- insertion — atribuição ou modificação parcial de variáveis
- colon — operador dois pontos
- find — fornece os índices de elementos %T ou diferentes de zero
- horner — avaliação polinomios ou razões de polinômios
- parentheses — ( ) parênteses esquerdo e direito
| Report an issue | ||
| << bernstein | Funções Elementares | ind2sub >> |