Você está na página 1de 7

Tutorial do MATLAB

So necessrios alguns comandos bsicos para usar o programa MATLAB. Este tutorial
resumido descreve esses comandos. Voc precisa criar vetores e matrizes, alter-los e operar
com eles. Todos eles so comandos curtos e de alto nvel, pois o MATLAB trabalha
constantemente com matrizes. Acredito que vocs vo gostar do poder que esse software
fornece ao usurio para trabalhar com lgebra linear por meio de vrias instrues resumidas:
criar E
E = eye(3)

criar u
u = E(:,1)

mudar E
E(3,1) = 5

multiplicar Eu
=E u

A palavra eye representa a matriz identidade. A submatriz u = E(:,1) seleciona a coluna 1. A


instruo E(3,1) = 5 reconfigura a entrada (3,1) para 5. O comando E u multiplica as matrizes
E e u. Todos esses comandos se repetem em nossa lista a seguir. Veja um exemplo de inverso
de uma matriz para solucionar um sistema linear:
criar A
A = ones(3)+ eye(3)

criar b
b=A(:,3)

inverter A
C = inv(A)

resolver Ax = b
x = A\b ou
x=C b

A matriz com todos os ones foi acrescentada ao eye(3) e b sua terceira coluna. A seguir, inv(A)
produz a matriz inversa (normalmente em decimais; para fraes, use format rat). O sistema
Ax = b resolvido por x = inv(A) b, que a forma mais lenta. O comando barra invertida
x = A\b usa a eliminao gaussiana se A for quadrado e nunca calcula a matriz inversa. Quando
o lado direito b se iguala terceira coluna de A, a soluo x dever ser [0 0 1]. (O transpose
symbol transforma x em um vetor coluna). A seguir, A x seleciona a terceira coluna de A, e
teremos Ax = b.
Alguns comentrios. O smbolo do comentrio %:
%

Os smbolos a e A so diferentes: o MATLAB diferencia maisculas de minsculas.

Digite help slash para uma descrio de como usar o smbolo de barra invertida. A
palavra help pode ser seguida de um smbolo do MATLAB ou do nome do comando ou
do nome do arquivo-M.

Obs.: O nome do comando est em letra maiscula na descrio fornecida pela


Ajuda, mas deve ser digitado em letra minscula ao usar o programa. E a barra
invertida A\b diferente quando A no for quadrado.
%

Para exibir todos os 16 dgitos, digite format long. O format short normal fornece 4
dgitos aps o decimal.

Um ponto e vrgula aps um comando evita a exibio do resultado.


A = ones(3); no exibir a matriz identidade 3 3.

Use o cursor seta para cima para voltar aos comandos anteriores.

Como inserir um vetor coluna ou vetor linha


tem uma linha com trs componentes (matriz 1 3)
tem trs linhas separadas por ponto e vrgula (matriz 3 1)
ou

o vetor u transposto

gera o vetor linha

= [2 3 4 5] com passos unitrios

assume passo 2 para fornecer u = [1 3 5 7]

Como inserir matriz (uma linha de cada vez)


A = [1 2 3; 4 5 6]

tem duas linhas (sempre um ponto e vrgula entre as linhas)

A = [1 2 3

tambm produz a matriz A mas mais difcil de digitar

4 5 6]
B = [1 2 3; 4 5 6]

a transposta de A. Por isso, AT A no MATLAB

Como criar matrizes especiais


produz a matriz diagonal com vetor na diagonal

diag
toeplitz

fornece a matriz diagonal-constante simtrica com

como primeira linha e primeira

coluna
toeplitz
e
ones

fornece a matriz simtrica com diagonal-constante com


como primeira linha
fornece uma matriz n x n de ums

como primeira coluna

zeros(n) fornece matriz n x n somente de zeros


eye (n) fornece matriz identidade n x n
rand(n) fornece matriz n x n com entradas aleatrias entre 0 e 1 (distribuio uniforme)
randn(n) fornece matriz n x n com entradas normalmente distribudas (mdia 0 e varincia 1)
one s(m, n)

zeros(m,n)

ones(size (A))

rand(m,n)

zeros(size (A))

fornecem matrizes m x n

eye(size A))

fornecem matrizes com o mesmo formato de A

Como alterar entradas em uma dada matriz A


A(3,2) = 7
redefine a entrada (3,2) para igualar a 7
A(3, :) =
redefine a terceira linha para igualar
A(:,2) =
redefine a segunda coluna para igualar a
O smbolo dois pontos : significa todos (todas as colunas ou todas as linhas)
A([2 3], :) = A([3 2], :)
permuta as filas 2 e 3 de A

Como criar submatrizes de uma matriz A de m x n


A(i, j)
A(i,: )
A(:, j)
A(2 : 4,3 : 7)
A([2 4],:)
A(;)
triu(A)
tril(A)

retorna a entrada (i, j) da matriz A (escalar = matriz 1 x 1)


retorna a linha i de A (como vetor linha)
retorna a coluna j de A (como vetor coluna)
retorna as linhas de 2 a 4 e as colunas de 3 a 7 (como matriz 3 x 5)
retorna linhas 2 e 4 e todas as colunas (como matriz 2 x n )
retorna uma coluna longa formada pelas colunas de A ( matriz mn x 1)
define todas as entradas abaixo da diagonal principal como- zero (triangular superior)
define todas as entradas acima da diagonal principal como zero (triangular inferior)

Inverso e multiplicao matricial


fornece a matriz produto AB (se A pode multiplicar B)
A B
fornece o produto entrada por entrada (se dimenso(A) = dimenso (B)
A. B
inv(A)
fornece A-1 se A for quadrada e puder for inversvel
pinv(A)
fornece a pseudo-inversade A
A\B
fornece inv(A) B se inv(A) existir: backlash a diviso esquerda
x = A\b
fornece a soluo para Ax = b se inv(A) existir
Veja help slash quando A for uma matriz retangular!

Nmeros e matrizes associadas a A


det(A) odeterminante (se A for uma matriz quadrada)
rank(A) o posto (nmero de pivs = dimenso do espao da linha e do espao da coluna)
size(A) o par de nmeros [m n]
trace(A) o trao = soma das entradas diagonais = soma dos autovalores
null(A) a matriz cujas colunas n - r so uma base ortogonal para o espao nulo de A
orth(A) a matriz cujas colunas r so uma base ortogonal para o espao de coluna de A

Exemplos
E = eye(4);E(2,1) = -3 cria uma matriz elementar de eliminao 4 x 4
E A subtrai 3 vezes a linha 1 de A da linha 2.
B = [A b] cria a matriz aumentada com b como coluna extra
E = eye(3); P = E([2 1 3],:) cria uma matriz de permutao
Observe que triu(A) + tril(A) diag(diag(A)) se iguala a A

Arquivos-M construdos para fatoraes de matriz (todos so


importantes!)
[L, U, P] = lu(A) fornece trs matrizes com PA = LU
e eig (A) um vetor que contm os autovalores de A
[S,E] = eig (A) fornece uma matriz diagonal E de autovalores e uma matriz S de autovetores
com AS = SE.

Se A no for diagonalizvel (poucos autovetores) ento S no ser

inversvel.
[Q, R] = qr(A) fornece uma matriz Q ortogonal m x n e uma R triangular m x n com A = QR

Criando arquivos-M
Os arquivos-m so arquivos de texto terminando com a extenso .m, os quais o MATLAB usa
para funes e roteiros. Um roteiro uma seqncia de comandos que podem ser executados
com freqncia e podem ser colocados em um arquivo-m de modo que os comandos no
precisem ser digitados novamente. Os demos do MATLAB so exemplos desses roteiros. Um
exemplo o demo chamado house. A maioria das funes do MATLAB , na verdade,
constituda de arquivos-m que podem ser visualizados escrevendo-se type xxx onde xxx o
nome da funo.

Para escrever seus prprios roteiros ou funes, voc precisa criar um novo arquivo de texto
com qualquer nome de sua preferncia, desde que termine com .m, para permitir que o
MATLAB reconhea o arquivo. Arquivos de texto podem ser criados, editados e salvos com
qualquer editor de texto como emacs, EZ ou vi. Um arquivo de texto , simplesmente, uma lista
de comandos MATLAB. Quando se digita o nome do arquivo no prompt do MATLAB, o
contedo do arquivo ser executado. Para que um arquivo-m seja uma funo, preciso iniciar
com a palavra function seguida pelas variveis de sada entre colchetes, o nome da funo e as
variveis de entrada.

Exemplos
function [C] = mult(A)
r = rank(A);
C = A A;
Salve os comandos acima em um arquivo de texto nomeado como mult.m . Essa funo toma
uma matriz A e retorna o produto matricial C. A varivel r no devolvida por que no foi
includa como uma varivel de sada. Os comandos so seguidos por ; de modo que no sero
impressos na janela do MATLAB toda vez que forem executados. Isso til quando se trata de
grandes matrizes. Eis um outro exemplo:
function [V, D, r] = properties (A)
% Esta funo encontra rank, eigenvalues e eigenvectors de A
[m,n] =size(A);
se m = = n
[V,D] =eig(A);
r=rank(A);
else
disp (Error: A matriz deve ser quadrada);
end
Aqui a funo toma a matriz A como entrada e retorna duas matrizes e o posto (rank) como
resultado. O % usado como comentrio. A funo verifica se a matriz de entrada quadrada e
a seguir encontra o posto, os autovalores e os autovetores de uma matriz A. Digitando-se
properties(A) o retorno ser somente o primeiro resultado, V, a matriz de autovetores. Para obter
os trs resultados, voc precisar digitar [V, D, r}=properties(A).

Mantendo um dirio de seu trabalho


O comando diary (file) instrui o MATLAB a registrar tudo o que feito na janela do
MATLAB e a salvar os resultados no arquivo denominado file. Ao digitar diary on ou diary
off voc alterna o registro. Arquivos de dirios antigos podem ser visualizados por meio de um
editor de texto, ou impresso usando-se lpr em Unix. No MATLAB, eles podem ser visualizados
com o comando type file.

Salvando suas variveis e matrizes


O comando diary salva os comandos que voc digitou, assim como o resultado do MATLAB,
mas no salva o contedo de suas variveis e matrizes. Essas variveis podem ser listadas pelo
comando whos que tambm lista os tamanhos das matrizes. O comando save xxx salvar as
matrizes e todas as variveis listadas pelo comando whos no arquivo chamado xxx. O
MATLAB rotula esses arquivos com a extenso .mat em vez de .m, que so roteiros ou funes.
Os arquivos xxx.mat podem ser lidos pelo MATLAB mais tarde digitando-se load xxx.

Grficos
O comando mais simples plot (x, y) que utiliza dois vetores x e y do mesmo comprimento. Os
pontos ( xi , yi ) sero impressos e conectados por linhas slidas.
Se no houver vetor x o MATLAB assumir que x(i)=i. Ento plot (y) tem espaamento
igual no eixo-x: os pontos so (i, y(i)).
O tipo e a cor da linha entre os pontos podero ser alterados por um terceiro argumento. O
default sem argumento uma linha slida negra -. Use help plot para muitas opes, entre as
quais indicamos algumas:
MATLAB 5: plot (x, y,r + :) imprime em r = vermelho com + para pontos e linha pontilhada
MATLAB 4: plot (x, y,- -) uma linha em traos e plot (x, y,.) uma linha pontilhada
Voc pode omitir as linhas e imprimir somente pontos discretos de vrias maneiras:
plot (x, y, o) fornece crculos. Outras opes so + ou x ou
Para dois grficos nos mesmos eixos use plot (x, y, X, Y). Substitua plot por loglog ou
semilogy ou semilogx para alterar um ou ambos os eixos para a escala de logaritmos.

O comando axis ([a b c d]) colocar o grfico em uma escala que se ajuste ao retngulo a x
b, c y d. Para dar nome ao grfico ou rotular o eixo-x ou o eixo-y coloque o nome desejado
entre aspas, como nesses exemplos:
title (altura do satlite)

xlabel (tempo em segundos)

ylabel (altura em metros)

O comando hold mantm o grfico atual quando voc imprimir um novo grfico. Ao
repetir hold, voc limpar a tela. Para imprimir, ou salvar a janela de grfico em um arquivo,
veja help print ou use
print -Pprintername print d filename

Você também pode gostar