atribuição ou modificação parcial de variáveis
atribuição parcial de variáveis
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
matriz de qualquer tipo
lista
índices
índices com valores inteiros
novo valor de entrada
Se x é uma matriz, os índices
i e j, podem ser:
neste caso, os valores fornecidos como índices devem ser inteiros e apenas suas partes inteiras são levadas em consideração.
Se a é uma matriz com dimensões
(size(i,'*'),size(j,'*')),
x(i,j)=a retorna uma nova matriz
x tal que
x(int(i(l)),int(j(k)))=a(l,k) para
l de 1 a size(i,'*')
e k de 1 a
size(j,'*'), as outras entradas
iniciais de x não são
modificadas.
Se a é um escalar,
x(i,j)=a retorna uma nova matriz
x tal que
x(int(i(l)),int(j(k)))=a para
l de 1 a size(i,'*')
e k de 1 a
size(j,'*'), as outras entradas
iniciais de x não são
modificadas.
Se o valor máximo de i ou
j exceder a dimensão correspondente da
matriz x , o array x
é previamente estendido para as dimensões requeridas com
entradas 0 para matrizes padrões, strings de comprimento 0
para matrizes de strings e valores falsos para matrizes de
booleanos.
x(i,j)=[] cancela linhas
especificadas por i se
j corresponde a todas as colunas de
x ou cancela colunas especificadas por
j se i corresponde a
todas as linhas de x. Em outros casos
x(i,j)=[] produz um erro.
x(i)=a com a
um vetor retorna a nova matriz x tal
que x(int(i(l)))=a(l) para
l de 1 a size(i,'*')
, outras entradas iniciais de x não são
modificadas.
x(i)=a com a
um escalar retorna uma nova matriz x
tal que x(int(i(l)))=a para
l de 1 a size(i,'*')
, outras entradas iniciais de x não são
modificadas.
Se o valor máximo de i exceder
size(x,1), x é
previamente estendida para a dimensão requerida com
entradas 0 para matrizes padrões, strings de comprimento 0
para matrizes de strings e valores falsos para matrizes de
booleanos.
x é uma matriz 1x1
a pode ser um vetor linha
(respectivamente coluna) com dimensão
size(i,'*'). A matriz
x resultante é um vetor linha
(respectivamente coluna).
x é um vetor linha
a deve ser um vetor linha
de dimensão size(i,'*')
x é um vetor coluna
a deve ser um vetor coluna
de dimensão size(i,'*')
x é uma matriz geral
a deve ser um vetor linha
ou coluna de dimensão size(i,'*')
e o valor máximo de i não pode
exceder size(x,'*'),
x(i)=[] cancela entradas
especificadas por i.
O símbolo ':' significa "todos os
elementos".
x(i,:)=a é interpretado como
x(i,1:size(x,2))=a
x(:,j)=a é interpretado como
x(1:size(x,1),j)=a
x(:)=a retorna em
x a matriz a de
forma redefinida de acordo com as dimensões de x.
size(x,'*') deve ser igual a
size(a,'*')
se um índice (i ou
j ) é um vetor de booleanos, é interpretado
como find(i) ou, respectivamente,
find(j)
se um índice (i ou
j ) é um vetor de polinômios ou um vetor de
polinômios implícito, é interpretado como
horner(i,m) ou respectivamente
horner(j,n) onde m e
n são as dimensões associadas de
x. Mesmo se esse recurso funcionar para
todos os polinômios, é recomendado utilizar polinômios em
$ para legibilidade.
Se estiverem presentes, os ki fornecem
o endereço para uma entrada de sub-lista da estrutura de dados
l data structure. Eles permitem uma extração
recursiva sem cópias intermediárias. As instruções
l(k1)...(kn)(i)=a e
l(list(k1,...,kn,i)=a) são interpretadas
como:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i) =
a
lkn-1(kn) = lkn
.. = ..
l(k1) = lk1
E as instruções l(k1)...(kn)(i,j)=a e
l(list(k1,...,kn,list(i,j))=a são
interpretadas como:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i,j) =
a
lkn-1(kn) = lkn
.. = ..
l(k1)= lk1
i pode ser :
Um escalar real não-negativo.
l(0)=a adiciona uma entrada à "esquerda"
da lista, l(i)=a configura a entrada
i da lista l como
a. Se i>size(l),
l é previamente estendido com entradas de
comprimento 0 (indefinidas). l(i)=null()
suprime a i-ésima entrada da
lista.
Um polinômio. Se i é um polinômio,
é interpretado como horner(i,m) onde
m=size(l). Mesmo se este recurso
funcionar para todos os polinômios, é recomendado utilizar
polinômios em $ para legibilidade.
k1,..kn podem ser :
Escalares reais positivos.
Polinômios, interpretados como
horner(ki,m) onde m é
o tamanho da sub-lista correspondente.
Strings associados a nomes de entradas de uma sub-lista.
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 inserção de entradas em vetores devido a confusões
com inserção de entradas em listas. A sintaxe x(1,j) ou
x(i,1) deve ser usada.
Caso de matrizes :
Caso de listas ou Tlist :