MATLAB
BÁSICO
Prof.
Alberto Adade Filho (ITA/CTA)
17. Sub-matrizes, Indexação e a Notação : |
Manipulações bastante complicadas efetuadas sobre matrizes podem ser realizadas, de forma compacta, utilizando-se a notação : , como se verá na seqüência.
i. Gerar vetores |
x = 1: 5 resulta,
x =
1 2 3 4 5
y = 0 : pi/4 : pi resulta,
y =
0.0000 0.7854 1.5708 2.3562 3.1416
z = 5 : -1 : 1 resulta,
z =
5 4 3 2 1
Os comandos,
x = (0.0 : 0.1 : 2.0);
y = exp(-x) .* sin(x);
[x y]
geram a tabela,
ans =
0 0
0.1000 0.0903
0.2000 0.1627
0.3000 0.2189
![]()
1.9000 0.1415
2.0000 0.1231
Obs. As funções linspace e logspace também podem ser usadas para gerar vetores. |
ii. Acessar Submatrizes |
Matrizes podem ser extraídas de outras maiores.
Ex. Seja A uma matriz 10x10:
A = A(1:3, :) redefine a matriz A como sendo a matriz formada pelas três primeiras linhas e todas as colunas da matriz A atual.
A(1:4,2) submatriz 4x1 formada pelos quatro primeiros elementos da 2ª coluna de A.
A(1:5,7:10) submatriz 5x4 formada pelos elementos das cinco primeiras linhas e quatro últimas colunas.
A(:,5) quinta coluna de A
Como se viu nos exemplos acima, o caractere : sozinho como índice indica uma linha inteira ou uma coluna inteira.
Ex:
b = A(:) empilha as colunas de A formando o vetor coluna b.
Vetores podem ser usados como índices.
Exs.
A(:,[3 5 10]) = B(:,1:3) substitui a 3ª, 5ª e 10ª colunas de A pelas três primeiras colunas de B;
A(:,10:-1:1) reverte as colunas de A;
A([3,5]) vetor-linha formado com o terceiro e quinto elementos de A, numerados por coluna;
A([3;5]) vetor-coluna formado com o terceiro e quinto elementos de A, numerados por coluna ( = A([3,5]) );
A(:,[2,4]) = A(:,[2,4]) * [1 2; 3 4] substitui a 2ª e 4ª colunas de A pelo
produto (à direita) da submatriz formada por essas duas colunas pela matriz
[1 2; 3 4];
A(:,[2 4]) = [] elimina as colunas 2 e 4 da matriz A.
A indexação com vetores cujos elementos são 1s e 0s (indexação lógica) também é uma forma de acessar submatrizes. Supor A uma matriz mxn e L um vetor com 1s e 0s, de dimensão m. Então,
A(L,:) - especifica as linhas de A cujos elementos de L não são nulos.
Ex.
A(:, [ 1 0 1 0 1 0 0 0 0 0 ] ) matriz formada pelas 1ª, 3ª e 5ª colunas de A;
x = x(x <= 3 * std(x)) remove do vetor x aqueles elementos maiores que três desvios-padrão.