MATLAB BÁSICO
Prof. Alberto Adade Filho (ITA/CTA)

Índice
Seção Anterior

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.
Retorna.
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 1’s e 0’s (indexação lógica) também é uma forma de acessar submatrizes. Supor A uma matriz mxn e L um vetor com 1’s e 0’s, 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.

Início da Página.
Próxima Seção.