Sie sind auf Seite 1von 50

Matlab

ndice Analtico

1. Matlab bsico ........................................................................................ 2


1.1 Introduo ......................................................................................... 2
1.2 Operaes matriciais ......................................................................... 8
1.3 Operaes em Array........................................................................ 10
1.4 Manipulao matricial e vetorial .................................................... 13
1.5 Anlise de dados ............................................................................. 18
1.6 Funes matriciais........................................................................... 20
1.7 Polinmios e processamento de sinais............................................ 21
1.8 Funes de funes ......................................................................... 24
1.9 Grficos ........................................................................................... 28
1.10 Controles de fluxo .......................................................................... 38
1.11 Arquivos M ..................................................................................... 40
1.12 Arquivos de disco ........................................................................... 47
1.13 O depurador do Matlab ................................................................... 49
1. Matlab bsico

Matlab um ambiente de computao tcnica de visualizao e


processamento numrico de alto desempenho. Ele integra anlise numrica,
clculo matricial, processamento de sinais, vrios aplicativos e grficos em um
ambiente amigvel onde problemas e solues so expressos como eles so
representados matematicamente sem a necessidade da programao tradicional.

O nome Matlab acrnimo de laboratrio de matrizes. Ele foi


originalmente escrito para permitir acesso fcil aos programas de clculo
matricial desenvolvidos pelos projetos LINSPACK e EISPACK, que juntos
representavam o estado da arte em programas de clculo matricial.

Matlab tambm contempla uma famlia de aplicativos especficos


chamados toolboxes na forma de colees de funes Matlab (M-files),
estendendo o ambiente Matlab na soluo de problemas particulares. Entre
outros, temos os seguintes toolboxes: Processamento de Sinais; Controle
Robusto; Identificao de Sistemas; Redes Neurais; Otimizao e etc.

Provavelmente a caracterstica mais importante do Matlab sua


ampliabilidade. Isto permite que qualquer um possa criar uma toolbox.
Aplicativos matemticos complexos so facilmente desenvolvidos em poucas
linhas no ambiente Matlab sem a necessidade de programao de uma nica
linha de cdigo C ou outro cdigo de baixo nvel.

1.1 Introduo

O Matlab trabalha essencialmente com um tipo de objeto: matriz


retangular numrica (real ou complexa). Em algumas situaes existe
significado especial agregado s matrizes de dimenso 1 (escalares) e matrizes
com uma s linha ou coluna (vetores). A linguagem Matlab no usa declarao
preliminar ou dimensionamento de variveis. Isso feito de forma automtica.

Matrizes podem ser adicionadas no ambiente de vrias formas, contudo a


forma mais simples para matrizes pequenas entrando com a lista dos
elementos, seguindo a seguinte conveno:

2
Tutorial do Matlab 3

Separe os elementos com espaos ou vrgulas.


Delimite os elementos com colchetes [ ].
Use ; (ponto-e-vrgula) para indicar o final da linha.

Exemplo:

A = [ 1 2 3; 4 5 6; 7 8 9 ]

Resulta:
A=
1 2 3
4 5 6
7 8 9

Elementos de uma matriz podem ser quaisquer expresses Matlab. Por exemplo:

x = [ -1.3 sqrt(3) (1+2+3)*4/5 ]

Resulta:
x=
-1.3000 1.7321 4.8000

Elementos individuais podem ser referenciados pelo seu ndice (linha,coluna).


Veja o exemplo a seguir:

x(5) = abs(x(1))

Resulta:
x=
-1.3000 1.7321 4.8000 0 1.3000

Ao atribuir um valor numrico x(5), automaticamente x(4) criado com valor


nulo. Voc pode construir matrizes maiores usando matrizes menores como seus
elementos. Por exemplo, vamos adicionar uma linha matriz A:

r = [ 10 11 12 ];
A = [ A; r ]
Tutorial do Matlab 4

Isto resulta em:

A=
1 2 3
4 5 6
7 8 9
10 11 12

Voc pode extrair sub-matrizes de uma matriz maior usando : (dois pontos).
Por exemplo:

A = A( 1:3 , : );

Remove as trs primeiras linhas e todas as colunas da matriz atual A e coloca o


resultado em A.

A=
1 2 3
4 5 6
7 8 9

Variveis e declaraes do Matlab

Declaraes no Matlab so frequentemente feitas da seguinte forma:

varivel = expresso

ou simplesmente,

expresso

Quando o nome da varivel omitido, o nome ans usado como varivel


default.
Tutorial do Matlab 5

Uma definio normalmente termina com ENTER. Se o ltimo caractere


um ponto-e-vrgula, ele suprime a apresentao no vdeo, embora faa a
atribuio da mesma forma. Isto especialmente importante nas situaes que o
resultado muito grande, tal como uma matriz de 10 linhas e 10 colunas.

Se a expresso muito grande e no cabe em uma linha, use (...) para


continuar a definio na linha seguinte. Exemplo:

s = 1 - 1/2 + 1/3 - 1/4 + 1/5 -1/6 + 1/7 ...


- 1/8 + 1/9 - 1/10 + 1/11 - 1/12;

Voc pode formar uma varivel ou nome de funo com uma letra
seguida de qualquer quantidade de letras (ou underscore). O Matlab diferencia
letras maisculas de minsculas e usa somente os primeiros 19 caracteres do
nome.

Obtendo informao da rea de trabalho (workspace)

Para listar as variveis ativas use o comando who. Para obter mais
informaes sobre as variveis como: nome, tamanho, nmero de elementos,
etc., use o comando whos.

O utilitrio de HELP

O comando help produz informaes resumidas sobre funes


especficas ou sobre tpicos do Matlab. Para listar um grupo de funes, digite
help seguido do nome do grupo de funes. Exemplo:

help matfun

Para obter auxlio sobre uma funo especfica digite help e o nome da
funo. Exemplo:
Tutorial do Matlab 6

help inv

Para localizar palavras-chaves em todos os arquivos do Matlab, use o


comando lookfor. Exemplo:

lookfor inverse

invhilb - Inverse Hilbert matrix.


ipermute - Inverse permute array dimensions.
acos - Inverse cosine, result in radians.
acosd - Inverse cosine, result in degrees.
acosh - Inverse hyperbolic cosine.ACSCH


Salvando e saindo

Para sair do Matlab digite exit. Encerrando uma seo do Matlab, apaga-
se todas as variveis da rea de trabalho (workspace). Se for necessrio, salve
suas variveis digitando save. Este comando salvar todas as variveis em um
arquivo chamado matlab.mat. Para recuperar as variveis use o comando load.
Voc tambm pode salvar somente algumas variveis e usar o nome de um
arquivo qualquer. O exemplo a seguir salva as variveis x, y e z no arquivo
temp.mat.

save temp x y z

Nmeros e expresses aritmticas

O Matlab usa notao convencional com potncia de dez ou unidade


complexa como sufixo:

-4.534i
1.760217e-11

O Matlab usa 16 dgitos significativos e expresses aritmticas so


calculadas com a seguinte prioridade, de cima para baixo

^ potenciao
Tutorial do Matlab 7

\ diviso esquerda
/ diviso direita
* multiplicao
- subtrao
+ adio

Algumas funes internas retornam valores especiais. A funo pi retorna


o valor de , a funo inf retorna , etc. O Matlab dispes das funes
matemticas elementares normalmente encontradas em calculadores cientficas.
Essas funes incluem, por exemplo: abs, sqrt, log, sin. Se uma operao
resultar em infinito isso no implica erro, simplesmente aquela varivel ter o
valor infinito. O mesmo ocorre para operaes invlidas como / ou 0/0. O
resultado NaN (Not a Number).

Formato de sada

Para alterar a formatao do nmero a ser apresentado na tela, utilize o


comando format. Exemplos:

x = [ 4/3 1.2345e-6 ]

format short

1.3333 0.0000

format short e

1.3333e+00 1.2345e-06

Funes

Grande parte do poder do Matlab vem do enorme conjunto de funes.


Algumas delas so internas ao processador Matlab e outras so disponveis
como bibliotecas externas na forma de M-files. O conjunto de funes aplicadas
a uma rea especfica denominado toolbox. Cada usurio pode criar suas
prprias funes que se comportam como se fossem funes internas. As sees
adiante discutem cada uma das diferentes categorias de funes analticas do
Matlab bsico.
Tutorial do Matlab 8

possvel combinar funes de vrias formas. Exemplo:

x = sqrt( log(z) )

Algumas funes usam dois ou mais argumentos, e cada argumento pode


ser uma expresso. Exemplo:

angulo = atan2(y,3*x)

Existem funes que retornam dois ou mais valores. Nestes casos, os


valores de sada devem estar entre colchetes [ ] e separados por vrgula.
Exemplo:

[ V, D ] = eig( A )

A funo eig calcula os autovetores e os autovalores de A,


respectivamente.

1.1.1 Operaes matriciais

Transposta de uma matriz

O caractere ' (apstrofe) denota transposta de uma matriz. Se z for


complexo, z' o transposto conjugado complexo de z. Exemplo:

A = [ 1 2; 3 4 ]
A=
1 2
3 4

B = A'
B=
1 3
2 4

Adicionando e subtraindo matrizes


Tutorial do Matlab 9

Os smbolos + e - denotam adio e subtrao de matrizes. Portanto, a


operao definida se as matrizes tm a mesma dimenso. Exemplo:

C=A+B
C=
2 5
5 8

A adio e a subtrao so definidas tambm para o caso em que um dos


operandos um escalar. Exemplo:

D=C-2
D=
0 3
3 6

Multiplicao de matrizes

O smbolo * denota multiplicao de matrizes e vlido sempre que


dimenses internas das duas forem iguais. Exemplo:

E=A*B
E=
5 11
11 25

Naturalmente, um escalar (matriz de dimenso 1) pode multiplicar ou ser


multiplicado por qualquer matriz. Exemplo:

F = 2*E
F=
10 22
22 50

Diviso de matrizes

Existem dois smbolos de diviso de matrizes: / e \. Os significados so:


Tutorial do Matlab 10

X = A\B soluo do sistema A*X = B


X = B/A soluo do sistema X*A = B

Funes elementares e transcendentais

O Matlab considera expresses como exp(A) e sqrt(A) como operao


sobre cada um dos elementos de um vetor (linha ou coluna). Existem funes
para calculo de funes transcendentais de matrizes, quando essas so
quadradas. Exemplos:

expm exponencial de uma matriz


logm logaritmo de uma matriz
sqrtm raiz quadrada de uma matriz

Outras funes elementares sobre matrizes incluem:

poly polinmio caracterstico


det determinante
trace trao

1.1.2 Operaes em Array

Refere-se s operaes com array as operaes aritmticas realizadas


elemento a elemento ao invs da operao matricial algbrica usual definida
pelos smbolos * \ / ^ e '. Para indicar que a operao elemento-a-elemento usa-
se um ponto (.) antes do smbolo da operao.

Somando e subtraindo Arrays

Para a adio e subtrao, as operaes de arrays e as de matrizes so as


mesmas. Neste caso + e - podem ser usados sem o ponto.

Multiplicando e dividindo Arrays


Tutorial do Matlab 11

O smbolo .* denota multiplicao elemento-a-elemento. Se A e B tm


mesma dimenso, ento A.*B resulta em array cujos elementos so o produto
dos elementos individuais de A e de B. Exemplo:

x = [1 2 3]; y = [4 5 6];
z = x.*y
z=
4 10 18

A expresso A./B e A.\B resulta no quociente de cada elemento. Exemplo:

z = x.\y
z=
4.0000 2.5000 2.000

Usando potenciao com Arrays

O smbolo .^ denota potenciao elemento-a-elemento. Exemplo:

z = x.^y
z=
1 32 729

Operadores relacionais

Para comparar matrizes de dimenses idnticas, existem operadores


relacionais:

< menor
<= menor ou igual
> maior
>= maior ou igual
== igual
~= diferente
Tutorial do Matlab 12

O Matlab compara os pares de elementos correspondentes. O resultado


uma matriz de "uns" e "zeros", onde "um" representa "verdadeiro" e "zero"
representa "falso". Exemplo:

2 + 2 ~= 4
ans =
0

O exemplo abaixo, ilustra como encontrar os elementos da matriz A que


so divisveis por 3:

A = [8 1 6; 3 5 7; 4 9 2];
G = rem(A,3);
P = (G == 0)
P=
0 0 1
1 0 0
0 1 0

A funo rem(A,3) retorna a matriz dos restos da diviso por 3. Cada um


dos elementos de G informa se a operao relacional falsa (0) ou verdadeira
(1).

A funo find muito usada em conjunto com operadores relacionais. O


exemplo abaixo ilustra como localizar todos os elementos de Y que so maiores
que 3 e substitu-los por 10.

Y = [1 2 3 4 5 6 7 8 9];
i = find(Y > 3.0);
Y(i) = 10*ones(size(i));

Operadores lgicos

Os operadores &, |, e ~ so os operadores lgicos "e", "ou" e "no"


respectivamente. As funes any e all so muito utilizadas em conjunto com
operadores lgicos. A funo any(x) retorna "1" se qualquer elemento de x for
no nulo e retorna "0" caso contrrio. A funo all(x) retorna "1" somente se
Tutorial do Matlab 13

todos os elementos de x so no nulos. Essas funes so particularmente teis


na declarao de um comando if.

if all(A < 0.5)


faa alguma coisa
end

Funes matemticas

Um conjunto de funes matemticas elementares so aplicveis


elemento-a-elemento. Exemplo:

A = [ -1 2 -3; 4 -5 6];
B = abs(A)
B=
1 2 3
4 5 6

1.1.3 Manipulao matricial e vetorial

A capacidade de indexao do Matlab permite manipulao de linhas e


colunas, elementos individuais e submatrizes de matrizes. Os vetores so o
ponto central da indexao e eles so gerados com o uso de : (dois pontos).

Gerando vetores

A declarao abaixo ilustra a criao de um vetor usando (:) dois pontos:

x = 1:5
x=
1 2 3 4 5

Voc pode tambm criar o vetor com incrementos diferentes da unidade.


No exemplo a seguir o passo de /4.
Tutorial do Matlab 14

y = 0 : pi/4 : pi
y=
0.0000 0.7854 1.5708 2.3562 3.1416

z = 6: -1 : 1
z=
6 5 4 3 2 1

A uso de (:) permite a criao rpida de tabelas como ilustrado a seguir:

x = (0 : 0.2 : 3)';
y = exp(-x) .* sin(x);
[x y]
ans =
0 0
0.2000 0.1627
0.4000 0.2610
0.6000 0.3099
0.8000 0.3223
1.0000 0.3096
1.2000 0.2807
1.4000 0.2430
1.6000 0.2018
1.8000 0.1610
2.0000 0.1231
2.2000 0.0896
2.4000 0.0613
2.6000 0.0383
2.8000 0.0204
3.0000 0.0070

Existem outras funes para a gerao de vetores tal como logspace que
gera um vetor espaado logaritmicamente:

w = logspace(-1,1,5)
w=
0.1000 0.3162 1.0000 3.1623 10.0000

Indexando
Tutorial do Matlab 15

Elementos individuais de matrizes podem ser referenciados inserindo


seus ndices de linha e coluna entre parnteses. Se uma expresso for usada
como ndice, o ndice aproximado para o inteiro mais prximo.

A = [1 2 3; 4 5 6; 7 8 9];
A(3,3) = A(1,3) + A(3,1)
A=
1 2 3
4 5 6
7 8 10

Usando (:) dois pontos, podemos indexar todas as linhas ou colunas ou


uma parte:

A(:,1)
A=
1
4
7

A(2:3,1:2)
A=
4 5
7 8

O exemplo a seguir mostra como fazer referncia explcita a algumas


linhas ou colunas. Colocam-se os nmeros das linhas e colunas dentro de
colchetes:

A( [1 3], [1 3] )
A=
1 3
7 10

Um outro uso para os dois pontos (:) no empilhamento das colunas de


uma matriz qualquer. No caso de vetores, obteremos sempre o vetor coluna:

A = [1 2; 3 4; 5 6];
B = A(:)
B=
Tutorial do Matlab 16

1
2
3
4
5
6

Usando vetores de 0 e 1 na indexao

Voc pode usar vetores de "uns", usualmente criados a partir de


operadores relacionais no referenciamento de submatrizes. Suponha que A
uma matriz de dimenso m-por-n e L um vetor linha de "zeros" e "uns" de
dimenso m. Ento,

A(L,:)

especifica as linhas de A cujos elementos de L so no nulos. Ou seja, os uns de


L apontam para as linhas de A. O exemplo a seguir mostra como extrair de X as
linhas cuja terceira coluna maior ou igual a 100.

L = X(:,3) > 100;


Y = X(L,:);

Matrizes vazias

A declarao,

X=[]

atribui a matriz de dimenso zero-por-zero X, sendo possvel usar a varivel X


em clculos. Criar a matriz X vazia diferente do que apagar a varivel X com o
comando clear X. Com o uso de matrizes vazias possvel remover linhas e
colunas de uma matriz, como mostra o exemplo a seguir que apaga as colunas 2
e 4 da matriz A:

A( :, [2 4] ) = [ ]
Tutorial do Matlab 17

Matrizes especiais

Existe uma coleo de funes que geram matrizes que so normalmente


encontradas nos problemas de lgebra linear e processamento de sinais.
Exemplos:

compan gera a matriz a partir do polinmio caracterstico


diag matriz diagonal
pascal constri o tringulo de Pascal
zeros matriz de "zeros"
ones matriz de "uns"
eye matriz identidade
logspace vetores espaados logaritmicamente
linspace vetores espaados linearmente
rand elementos randmicos uniformemente distribudos
randn elementos randmicos normalmente distribudos
etc ...

Construindo matrizes a partir de matrizes

possvel formar matrizes maiores a partir de matrizes menores,


envolvendo as matrizes menores entre colchetes. Por exemplo, se A uma
matriz quadrada,

C = [ A A'; ones(size(A)) A.^2 ]

cria a matriz C com o dobro do tamanho de A. Note que na construo de


matrizes usando matrizes, as dimenses das matrizes menores devem ser
compatveis ou ento aparecer uma mensagem de erro.

Manipulando matrizes

Vrias funes esto disponveis para a manipulao matricial como:


rot90 (rotao anti-horria de 90), tril (parte triangular superior), triu (parte
triangular inferior), reshape (alterao da dimenso), etc.
Tutorial do Matlab 18

1.1.4 Anlise de dados

Esta seo apresenta uma introduo anlise de dados usando o Matlab.


Tcnicas mais poderosas esto disponveis usando funes de lgebra linear e
funes de processamento de sinais na seo 1.1.6 (polinmios e processamento
de sinais).

Conveno

Por conveno, as diferentes variveis em um conjunto de dados so


colocadas em colunas, permitindo observao vertical dos dados atravs das
linhas. Portanto, um conjunto de dados de 50 amostras de 13 variveis
armazenado em uma matriz de dimenso 50-por-13.

O conjunto de dados armazenados na matriz count ser usado para ilustrar


o uso de algumas funes

count = [
11 57 291
43 178 1011
38 163 1095
61 420 2407
12 59 287 ]

Para esse exemplo temos 5 observaes para 3 variveis. Isso pode ser
obtido como segue:

[n,p] = size(count)
n=
5
p=
3

Um grupo de funes (abaixo) confere a capacidade de anlise de dados


bsica:
max - mximo valor
min - mnimo valor
mean - valor mdio
median - mediana
Tutorial do Matlab 19

std - desvio padro


sort - ordenao
sum - soma dos elementos
prod - produto dos elementos
cumsum - soma cumulativa dos elementos
cumprod - Produto cumulativos dos elementos
diff - Aproximao da derivada
corrcoef - Coeficientes de correlao
cov - Matriz de covarincia
var - Varincia

Para argumentos vetoriais no faz diferena se o vetor linha ou coluna.


Para arrays as funes so orientadas por colunas.

Continuando com o exemplo anterior, as declaraes abaixo

mx = max(count);
mu = mean(count);
sigma = std(count);

resultam em:
mx =
61 420 2407
mu =

1.0e+003 *

0.0330 0.1754 1.0182


sigma =

21.4126 147.9503 865.7639

Ajuste de curvas

Uma das alternativas possveis no Matlab para encontrarmos os


coeficientes de p(x) a partir de dados tabelados por meio da funo polyfit,
onde n o grau do polinmio.
Tutorial do Matlab 20

px c1x d c2x d 1 cn

A sintaxe usada a seguinte, onde x a abscissa, p o valor da funo para


cada x(i) e n o grau do polinmio.

c = polifit(x,p,n)

1.1.5 Funes matriciais

Autovalores e autovetores

Se A uma matriz n-por-n, os n nmeros que satisfazem a equao


Ax = x, so os autovalores de A. Eles so encontrados usando

eig(A)

Se o comando for usado com dois parmetros de sada, obteremos os


autovalores em D e os autovetores em X:

[X,D] = eig(A)

Norma, posto e condicionamento

As funes Matlab que calculam a norma, posto e nmero de


condicionamento de uma matriz so:

cond - nmero de condicionamento usando norma-2


norm - norma-1, norma-2, norma-F e norma-
rank - posto da matriz
rcond - estimativa do condicionamento
Tutorial do Matlab 21

1.1.6 Polinmios e processamento de sinais

O Matlab possui funes para manipulao polinomial e para o


processamento digital de sinais. Essas funes operam primordialmente com
vetores.

Representao de polinmios

O Matlab representa polinmios como vetores linha contendo os


coeficientes ordenados em ordem decrescente dos expoentes. Por exemplo, o
polinmio caracterstico de

A=
1 2 3
4 5 6
7 8 0

calculado com

p = poly(A)
p=
1 -6 -72 -27

Esta a representao Matlab do polinmio s3 6s2 72s 27. As razes dessa


equao so

r = roots(p)
r=
12.1229
-5.7345
-0.3884

Essas razes so os mesmos que os autovalores da matriz A. Voc pode


reconstruir o polinmio original com a funo poly

p2 = poly(r)
p2 =
1 -6 -72 -27
Tutorial do Matlab 22

Considere os polinmios a(s) s2 2s 3 e b(s) 4s2 5s 6 . O produto


dos polinmios a convoluo dos seus coeficientes

a = [1 2 3]; b = [4 5 6];
c = conv(a,b)
c=
4 13 28 27 18

Voc pode utilizar a convoluo inversa para dividir dois polinmios, e


no caso do exemplo, obter b novamente.

[q,r] = deconv(c,a)
q=
4 5 6
r=
0 0 0 0 0

A lista de funes de polinmios inclui:

poly - polinmio caracterstico


roots - razes de um polinmio
polyval - clculo do valor numrico do polinmio
polyvalm - clculo do polinmio de matrizes
conv - multiplicao (convoluo)
deconv - diviso (deconvoluo)
residue - expanso em fraes parciais
polyder - derivada do polinmio
polyfit - ajuste polinomial de curva

Processamento de sinais

Vetores so usados para armazenar sinais de dados amostrados, ou


sequncias, para o processamento dos sinais. Para sistemas com mltiplas
entradas, cada linha da matriz corresponde a uma amostra. O Matlab bsico
contm as funes a seguir, enquanto que o Signal Processing Toolbox contm
muitas funes adicionais.
Tutorial do Matlab 23

abs - magnitude complexa


angle - ngulo de fase
conv - convoluo
deconv - deconvoluo
fft - transformada rpida de Fourier
ifft - transformada rpida inversa de Fourier
fftshift - alterna quadrantes de matrizes
fft2 - FFT de duas dimenses
ifft2 - FFT inversa de duas dimenses
fftshift - rearranja os resultados da FFT
conv2 - convoluo de duas dimenses

Filtragem de dados

A funo,

y = filter(b,a,x)

filtra os dados do vetor x com o filtro descrito pelos vetores a e b, criando o


dado y filtrado.

x y
H(z)

A estrutura do filtro dada a seguir pela sua funo de transferncia de


tempo discreta

Y ( z ) b(1) b(2) z 1 b(nb) z ( nb1)


H ( z)
X ( z) 1 a(2) z 1 a(na) z ( na1)

A funo freqz do Signal Processing Toolbox calcula a resposta em


frequncia de filtros digitais. Alm dessa, exemplificada abaixo, esse Toolbox
contm inmeras funes para o projeto de filtros digitais.

[h,w] = freqz(b,a,n);
mag = abs(h);
fase = angle(h);
Tutorial do Matlab 24

semilogy(w,mag)
plot(w,fase)

1.1.7 Funes de funes

A classe de funes Matlab para clculo que no sobre matrizes


numricas, mais sim com funes matemticas aqui designada por funes de
funes (funfun) e incluem:

Integrao Numrica
Equaes no lineares e Otimizao
Soluo de Equaes Diferenciais
etc

Para o uso das funes de funes, usual representar as funfun atravs


de arquivos-M (M-files). Por exemplo, a funo

1 1
f (x ) 6
(x 0,3) 0,01 (x 0,9)2 0,04
2

foi codificada em um arquivo com extenso .m, por exemplo chamado humps.m,
cuja listagem mostrada a seguir:

% listagem do arquivo humps.m


function y = humps(x)
y = 1/.((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) - 6;

O grfico dessa funo obtido como segue

x = -1:.01:2;
plot(x,humps(x))
Tutorial do Matlab 25

100

80

60

40

20

-20
-1 -0.5 0 0.5 1 1.5 2

Integrao numrica

Uma funo, tal como humps, pode ser integrada numericamente pelo
processo chamado quadratura que uma funfun. Exemplo:

q = quad('humps',0,1)
q=
29.8583

O Matlab oferece duas funes para o processo de quadratura:

quad - regra de Simpson adaptativa


quad8 - regra de Newton adaptativa

Note que o primeiro argumento da funo quad uma string que contm o
nome de uma funo. Isso mostra porque essa funo chamada funo de
funo ( uma funo que opera com outras funes). Os outros dois
argumentos so os limites de integrao.

Equaes no lineares e funes de otimizao


Tutorial do Matlab 26

No Matlab bsico encontramos algumas funes para a manipulao de


equaes no lineares e para otimizaes. Exemplos:

fminsearch - mnimo de uma funo multivarivel


fzero - zero de uma funo de uma varivel

Continuando com o exemplo definido pela funo humps.m, a localizao


do mnimo da funo na regio de 0.5 a 1 calculada com fminsearch:

xm = fminsearch('humps',0.5, 1)
xm =
0.6370

e o seu valor no mnimo

y = humps(xm)
y=
11.2528

A localizao do zero da funo que est prximo de x = 0 e de x = 1 ,

xz1 = fzero('humps',0)
xz1 =
-0.1316
xz2 = fzero('humps',1)
xz2 =
1.2995

No Optimization Toolbox temos inmeras outras funes como, por


exemplo,

fgoalattain - consecuo de metas


fmincon - minimizao com restries
fminsearch - minimizao sem restries
fsolve - soluo de equaes no lineares
fzero - busca de zeros
fminimax - soluo do problema minimax
Tutorial do Matlab 27

linprog - programao linear


quadprog - programao quadrtica

Equaes diferenciais

Duas das funes disponveis para a soluo de equaes diferenciais


ordinrias so:

ode23 - mtodo Runge-Kutta de ordem baixa


ode45 - mtodo Runge-Kutta de ordem mdia

Considere a equao diferencial de segunda ordem conhecida como


equao de Van der Pol.

x (x 2 1)x x 0

Esta equao pode ser escrita como um sistema de equaes diferenciais de


primeira ordem

x1 x1 (1 x22 ) x2
x 2 x1

O primeiro passo para simular este sistema criar um arquivo que contem este
sistema de equaes diferenciais. Chamaremos este arquivo de vdpol.m

function xponto = vdpol(t,x)


xponto(1,1) = x(1).*(1-x(2).^2)-x(2);
xponto(2,1) = x(1);

Para simular a equao diferencial no intervalo 0 t 20, use a funo ode23.

t0 = 0; tf = 20;
x0 = [0 0.25]'; % condicoes iniciais
[t,x] = ode23( 'vdpol', [t0 tf], x0 );
plot(t,x)
Tutorial do Matlab 28

-1

-2

-3
0 5 10 15 20

Para aqueles que trabalham com equaes diferenciais recomenda-se


tambm o SIMULINK que uma extenso grfica do Matlab para a simulao
de equaes diferenciais.

1.1.8 Grficos

O sistema grfico do Matlab oferece uma variedade de tcnicas


sofisticadas para representar e visualizar dados. So funes grficas em 2-D e
3-D.

Grficos 2-D

O Matlab fornece uma variedade de funes para a visualizao de dados


em duas dimenses (2-D).

Funes grficas elementares

A lista abaixo sumariza as funes grficas bsicas. Elas diferem apenas


na escala dos eixos. Cada entrada pode ser um vetor ou uma matriz e as escalas
so ajustadas automaticamente para acomodar os dados de entrada.

plot - grfico de vetores ou de colunas de matrizes


loglog - escala logartmica nos dois eixos
semilogx - escala logartmica no eixo x e linear em y
semilogy - escala logartmica no eixo y e linear em x
Tutorial do Matlab 29

title - adiciona um ttulo ao grfico


xlabel - adiciona um nome ao eixo x
ylabel - adiciona um nome ao eixo y
text - mostra um texto na posio especificada
gtext - coloca o texto no grfico usando o mouse
grid - coloca linhas de grid

Criando um grfico

Se y um vetor, plot(y) produz um grfico linear dos elementos de y em


funo do indexador de y. Se voc especificar dois vetores como argumentos,
plot(x,y) produz um grfico de y versus x. Voc pode tambm especificar vrios
conjuntos de dados e definir o estilo da linha e sua cor para cada conjunto de
dados, tudo isso em um mesmo comando:

t = 0:pi/100:2*pi;
x = sin(t);
y1 = sin(t + 0.25);
y2 = sin(t + 0.5);
plot(x,y1,'r-',x,y2,'g--')
title('Defasagem')
xlabel('x=sin(t)')
ylabel('y=sin(t+)')
Tutorial do Matlab 30

Defasagem
1

0.8

0.6

0.4

0.2

y=sin(t+) 0

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.5 0 0.5 1
x=sin(t)

Estilos de linhas, marcadores e cores

Tal como se mostrou no exemplo anterior, voc pode passar um caractere


como um argumento funo plot para especificar um dos vrios estilos de
linha, smbolos e cores. Na declarao plot(X,Y,S), S uma string de 1, 2 ou 3
caracteres (delimitados por apstrofes) com as funes definidas pela tabela a
seguir. Se voc no especificar uma cor, ele usa as cores da tabela
automaticamente.
Tutorial do Matlab 31

Smbolo Cor Smbolo Linha


y amarela . ponto
m magenta o crculo
c ciano x marca x
r vermelha + marca +
g verde * marca *
b azul - slida
w branca : pontilhada
k preta -. trao-ponto
-- tracejada
s quadrado
d diamante
v tringulo (p/ baixo)
^ tringulo (p/ cima)
< tringulo (p/esquerda)
> tringulo (p/diereita)
P pentragrama
h hexagrama

Adicionando linhas em um grfico existente

Voc pode adicionar outras curvas em um grfico que j foi construdo


usando o comando hold. Quando voc seleciona hold on, o Matlab no
remove as linhas atuais, ao invs disso ele adiciona as linhas atuais ao grfico
atual.

O que ele pode fazer mudar a escala dos eixos automaticamente se os novos
dados no se acomodarem dentro da escala anterior. Exemplo:

plot(x)
hold on
plot(y1,'--')
plot(y2,'-.')
hold off
Tutorial do Matlab 32

Resulta,

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 50 100 150 200 250

Dados imaginrios e complexos

Quando os argumentos da funo plot so complexos, isto , eles tm


parte imaginria diferente de zero, a parte imaginria ignorada exceto quando
plot usado com um nico argumento. Nesta situao, o comando um
comando grfico resumido da parte real versus a parte imaginria. Portanto,
plot(z), quando z um vetor ou matriz complexa, equivalente ,
plot(real(z),imag(z)). Para ilustrar isso, o exemplo a seguir usa a distribuio dos
autovalores de uma matriz 20-por-20 randmica:

plot(eig(randn(20,20)),x)
Tutorial do Matlab 33

Distribuio de Autovalores
4

-1

-2

-3

-4
-4 -2 0 2 4 6

Exibindo grficos de matrizes

A funo plot pode ter um nico argumento, como plot(Y). Ela desenha
uma curva para cada coluna de Y. O eixo x formado pelo ndice de cada linha.
Se X e Y so matrizes, plot(X,Y) exibe o grfico das colunas de X versus colunas
de Y.

X = 0:pi/50:2*pi;
Y = sin(X); Z = cos(X); W = log(X);
A = [Y' Z' W'];
plot(A)

Resulta,
Tutorial do Matlab 34

1.5

0.5

-0.5

-1

-1.5

-2

-2.5

-3
0 20 40 60 80 100 120

Importando dados

Voc pode importar e exibir o grfico de dados gerados fora do Matlab.


Suponha voc tenha um arquivo chamado dados.dat contento valores de duas
funes e da varivel independente.
dados.dat

2.3 1.0 1.0


3.1 1.9 2.0
4.5 2.2 3.0
5.6 2.6 4.0
4.8 3.5 5.0
4.7 4.7 6.0
4.4 5.3 7.0
4.0 6.0 8.0
4.2 7.1 9.0

O comando load dados.dat produz uma matriz chamada dados, 9-por-3. A


seguir, mostra-se como renomear cada uma das variveis e como exibir o
grfico de cada funo separadamente.

load dados.dat
F1 = dados(:,1);
F2 = dados(:,2);
X = dados(:,3);
subplot(211), plot(X,F1)
Tutorial do Matlab 35

subplot(212), plot(X,F2)

Resulta,

2
0 2 4 6 8 10

0
0 2 4 6 8 10

Funes grficas especializadas em 2-D

O Matlab inclui uma variedade de funes especializadas, conforme


descrito resumidamente a seguir.

bar - grfico de barras


compass - grfico de ngulos com setas
errorbar - grfico de barras de erros
feather - grfico de ngulos
fplot - calcula e exibe o grfico de uma funo
hist - cria um histograma
polar - grfico em coordenadas polares
quiver - cria um grfico de um gradiente
rose - histograma em ngulo
stairs - grfico similar ao de barras sem linhas internas
fill - desenha um polgono e preenche o interior
Tutorial do Matlab 36

Grfico de funes matemticas

Voc pode exibir o grfico de uma funo, y f (x) . A soluo pela fora
bruta calcular a funo para algumas centenas de pontos no intervalo de
interesse. Por exemplo, a funo a seguir oscila com frequncia tendendo para
infinito quando x 0,5.

x = (0:1/2000:1)';
plot(x,cos(tan(pi*x)))

Resulta,

1 y = c o s ( t a n ( p i* x ) )

0 .8

0 .6

0 .4

0 .2

-0 .2

-0 .4

-0 .6

-0 .8

-1
0 0 .2 0 .4 0 .6 0 .8 1

No exemplo, a funo exibida no intervalo [0,1]. Neste caso, a funo


fplot mais efetiva para obtermos a representao grfica da funo, pois ela
escolhe automaticamente uma quantidade maior de pontos na faixa que
necessrio maior resoluo grfica. Para usar a funo fplot, primeiro crie um
arquivo que conter a funo a ser exibida por meio de um grfico, por
exemplo, com o nome fofx.m
Tutorial do Matlab 37

function y = fofx(x)
y = cos(tan(pi*x));

Agora basta passar o nome da funo como argumento de fplot.

fplot('fofx',[0 1], 25,20,10)

Resulta,

y = cos(tan(pi*x))
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 0.2 0.4 0.6 0.8 1

Grficos 3-D

O Matlab oferece uma variedade de funes para a visualizao de dados


em 3-D, conforme sumarizado pelas funes a seguir. Contudo, no faremos um
detalhamento, visto que o assunto muito longo e pouco interessante para os
nossos objetivos.

plot3 - desenha linhas e pontos em 3-D.


contour, contour3 - grficos de contornos
pcolor - desenha uma matriz retangular de clulas cujas cores
so determinadas pelos elementos da matriz.
Tutorial do Matlab 38

image - mostra uma matriz como uma imagem mapeando os


elementos da matriz para o mapa de cores atuais.
mesh, meshc, meshz - cria uma perspectiva em 3-D dos
elementos da matriz.
fill3 - cria um polgono 3-D e preenche com uma cor slida ou
interpola cores.
zlabel - cria um label para o eixo z.
clabel - adiciona um label ao grfico de contorno.
view - determina o ponto de visualizao atual.
viewmtx - calcula uma transformao 4x4.

1.1.9 Controles de fluxo

O Matlab possui declaraes para controle de fluxo tal como aqueles


encontrados na maioria das linguagens de computador. O controle de fluxo
torna o Matlab mais do que uma calculadora cientfica, permitindo que seja
usado como uma linguagem de programao de alto nvel completa.

FOR

O Matlab possui a sua verso prpria dos loops DO ou FOR. Com isso
possvel repetir um grupo de declaraes por um nmero predeterminado de
vezes. Por exemplo,

for i = 1:n, x(i) = 0, end

impe o valor "0" para todos os primeiros n elementos de x. Se n menor que


"1", a construo ainda permitida, mas as declaraes internas ao loop no so
executadas. Se x no existe ou tem menos elementos que x, ento espaos
adicionais so alocados automaticamente.

Voc pode criar loops dentro de loops e pode fazer as declaraes


diretamente no prompt do Matlab, embora o uso de um M-file seja
recomendado nestes casos.

for i = 1:1:m
for j = 1:1:n
A(i,j) = 1/(i+j-1);
Tutorial do Matlab 39

end
end
A

A expresso do for usualmente do tipo m : i : n, onde m o valor inicial,


n o final e i o incremento, sendo que esse pode ser negativo.

WHILE

Tal como o for, a declarao while tambm para realizar um grupo de


declaraes um certo nmero de vezes. A diferena bsica que no while, o
controle do loop feito por uma condio lgica. Para ilustrar, vamos resolver
um problema: Qual o primeiro inteiro n para o qual n! (fatorial de n) um
nmero de 100 dgitos ?

n = 1;
while prod(1:n) < 1.e100, n = n+1; end
n

A funo prod realiza os produtos dos elementos do argumento. Logo, prod(1:n)


o fatorial de n.

Declaraes IF e BREAK

Os exemplos a seguir ilustram a utilizao da declarao if. O primeiro


exemplo mostra como um clculo pode ser dividido em trs casos dependendo
do sinal e da paridade de n.

if n < 0
A = -1;
elseif rem(n,2) == 0
A=0
else
A=1
end

O segundo exemplo envolve um problema no resolvido da teoria dos nmeros:


Tutorial do Matlab 40

"Pegue um nmero inteiro. Se ele for par, divida por dois; se for impar,
multiplique ele por 3 e some 1. Repita esse processo at que o inteiro seja igual
a um. O problema saber se existe algum inteiro para o qual o processo nunca
termina".

Este programa Matlab ilustra as declaraes while e if. Tambm mostrado o


uso da funo input que interrompe a execuo para a entrada de dados e da
declarao break que permite interromper um loop.

% Problema classico "3n+1" da teoria dos nmeros

while 1
n = input('Entre com n [negativo aborta] = ');
if n <= 0, break, end

while n > 1
if rem(n,2) == 0
n = n/2
else
n = 3*n+1
end
end
end

1.1.10 Arquivos M

A maneira mais simples de se usar o Matlab no modo de comando.


Quando voc entra com uma linha de comando, ele processa e imediatamente
mostra o resultado. O Matlab tambm pode executar uma sequncia de
comandos que est armazenada em um arquivo. Estes dois modos formam um
ambiente interpretativo. Os arquivos que contm declaraes Matlab so
chamados M-files porque usam a extenso .m. Por exemplo, o arquivo
bessel.m contm declaraes Matlab para o clculo de funes Bessel.

Um M-file consiste de uma sequncia de declaraes Matlab normais,


podendo incluir referencias a outros M-files. Um M-file pode chamar ele
prprio de forma recursiva. Voc pode criar um M-file usando um editor de
texto tal como o Notepad do Windows, ou outro qualquer. Dois tipos de M-
files podem ser usadas: lotes (scripts) e funes (functions). Arquivos scripts
automatizam uma sequncia de comandos. Arquivos de funo permitem criar
Tutorial do Matlab 41

novas funes s existentes. Ambos, scripts e funes so arquivos texto tipo


ASCII.

Arquivos Scripts

O exemplo a seguir ilustra como calcular os primeiros 16 nmeros de


Fibonacci usando um arquivo script. Suponha que o nome do arquivo seja
fibno.m. Digitando fibno (sem a extenso) no prompt do Matlab, faz com os
comandos contidos no arquivo sejam executados. Note que depois da execuo
do programa as variveis f e i permanecem na rea de trabalho (workspace) do
Matlab. Verifique isso com who. Isso acontece porque os scripts operam
globalmente com dados no workspace. Os demos fornecidos junto como Matlab
so bons exemplos de como usar scripts para realizar tarefas mais complexas.
Para chamar os demos digite demo no prompt do Matlab.

% M-file (script) para calcular nmeros de Fibonacci

f = [ 1 1]; i = 1;

while f(i) + f(i+1) < 1000


f(i+2) = f(i) + f(i+1);
i = i + 1;
end

plot(f)

Arquivos de funes

Um M-file que contm a palavra function no incio da primeira linha um


arquivo de funo. Uma funo difere de um script no fato de que argumentos
podem ser passados; variveis definidas e manipuladas no arquivo so locais
funo e no operam globalmente no workspace. A funo listada seguir tem
o nome media1.m.
Tutorial do Matlab 42

function y = media1(x)
% calculo da media
% soma / m

% inico do programa
[m,n] = size(x);
if m == 1
m = n;
end
y = sum(x) / m;

Por exemplo, se z um vetor de inteiros de 1 99, sua mdia pode ser calculada
como segue:

z = 1:99;
media1(z)
ans =
50

A seguir, descreve-se alguns detalhes de mean.m:

A primeira linha declara o nome da funo, os argumentos de


entrada e os de sada. Sem esta linha, o arquivo um script ao
invs de funo;
O smbolo % indica que o resto da linha um comentrio e
deve ser ignorado;
As primeiras linhas documentam um M-file e so mostradas
quando pedimos help media1;
As variveis m, n e y so locais funo e no existem no
workspace depois que do trmino da funo. (Caso a varivel
j existisse antes da chamada media1, ela continuaria existindo
depois e inalterada);
No foi necessrio colocar os inteiros de 1 a 99 em uma
varivel chamada x. De fato, ns usamos media1 com uma
varivel chamada z. O vetor z foi passado ou copiado dentro da
funo onde ela tornou-se uma varivel local chamada x.

Voc pode criar uma funo um pouco mais complexa que media1,
chamada stat, que tambm calcula o desvio padro. Neste exemplo ilustramos o
uso de mltiplos argumentos de sada.
Tutorial do Matlab 43

function [mean,stdev] = stat(x)

[m,n] = size(x);
if m == 1
m = n;
end
mean = sum(x) / m;
stdev = sqrt(sum(x.^2)/m - mean.^2);

Uma funo que calcula o posto de uma matriz usa mltiplos argumentos
de entrada: No caso geral teramos mltiplos argumentos de entrada e de sada.

function r = rank(x,tol)
% rank (posto em Portugues) da matrix

s = svd(x);
if (nargin == 1)
tol = max(size(x)) * s(1) * eps;
end
r = sum(s > tol);

Este exemplo tambm mostra o uso da varivel permanente nargin para


encontrar o nmero de argumentos de entrada. A varivel nargout, embora no
usada neste exemplo, contm o nmero de argumentos de sada.

Criando um Help para seus arquivos pessoais

voc pode criar um help online para os seus M-files pessoais entrando o
texto em uma ou mais linhas de comentrio, comeando sempre pela segunda
linha do arquivo. Por exemplo, o arquivo da funo angle,

function p = angle(h)

% ANGLE Phase angle.


% ANGLE(H) returns the phase angles, in radians, of a
% matrix with complex elements.
%
% See also ABS, UNWRAP.

p = atan2(imag(h), real(h));

tm 5 linhas contguas de comentrio a partir da segunda linha. Quando


digitamos help angle, todo esse bloco mostrado. O mecanismo de help ignora
Tutorial do Matlab 44

linhas de comentrio que aparecem mais a frente, depois de uma declarao ou


mesmo uma linha em branco.

Informaes teis

Quando voc chama uma funo pela primeira vez, o Matlab compila a
funo e a coloca na memria. Ela estar ento disponvel para os usos
subsequentes sem a necessidade de ser compilada. Permanecer na memria at
o final da seo ou at que voc fique com pouca memria, acarretando na sua
eliminao automtica.

O comando what mostra uma listagem dos M-files no diretrio atual do


disco. O comando type lista os M-files.

De uma maneira geral, quando voc digita um nome de algo no Matlab,


por exemplo, whoopie, o interpretador do Matlab executa os seguintes passos:

1. Procura por whoopie como varivel;


2. Verifica se whoopie uma funo interna;
3. Procura um o arquivo whoopie.m no diretrio atual;
4. Procura um o arquivo whoopie.m nos diretrios especificados
pelo path do Matlab.

INPUT, KEYBOARD, PAUSE

A funo input permite obter dados do usurio. por exemplo,

n = input('Entre com o valor de n = ')

interrompe a execuo, mostra a frase na tela, espera, e ento atribui o valor ou


expresso digitada para a varivel n.

Similar input a funo keyboard. Esta funo torna o teclado do


computador um script. Quando colocada dentro de M-files, torna gil a
depurao e permite a modificao de variveis durante a execuo.
Tutorial do Matlab 45

O comando pause interrompe a execuo at que o usurio pressiona


uma tecla qualquer. pause(n) interrompe por n segundos antes de continuar.

Variveis globais

Cada funo Matlab possui suas prprias variveis locais que so


separadas daquelas de outras funes e daquelas que esto no workspace.
Contudo, se voc declarar uma varivel como global, todas as funes e o
workspace vo enxergar a mesma varivel. Para diferenciar das demais
variveis, costuma-se identificar uma varivel global declarando-a com um
nome longo e em letras maisculas, embora isso no seja uma imposio.

Suponha que voc queira estudar o comportamento dos coeficientes e


no problema do modelo predador-vtima de Latka-Volterra.

y1 y1 y2 y1
y2 y2 y2 y1

Crie o arquivo lotka.m:

function yp = lotka(t,y)
% modelo Votka-Voltera
global ALFA BETA
yp = [y(1) - ALFA*y(1)*y(2); -y(2) + BETA*y(1)*y(2)];

Interativamente, entre como as seguintes declaraes:

global ALFA BETA


ALFA = 0.01;
BETA = 0.02;
[t,y] = ode23( 'lotka', [0 10], [1; 1] );
plot(t,y)

Uma vez que ALFA e BETA so globais voc pode alter-las interativamente e
novas solues podem ser obtidas sem ter que editar nenhum arquivo e sem
passar os valores como argumentos.

Variveis alfanumricas
Tutorial do Matlab 46

Variveis do tipo texto so introduzidas no Matlab envolvendo o texto


com quotas simples (apstrofos). Por exemplo,

s = 'Ola'
s=
Ola

O texto armazenado em um vetor, um caracter por elemento. Desejando


concatenar textos, use colchetes:

s = [s, ' Pessoal']


s=
Ola Pessoal

Valores numricos so convertidos em variveis do tipo texto via


sprintf, num2str e int2str. Exemplo,

c = 23;
title(['A temperatura ',num2str(c),' graus C'])

A funo EVAL

A funo eval usada com variveis do tipo texto para implementar


recursos de macros de texto. A funo eval(t) fora que o texto contido na
varivel t seja "resolvido". O exemplo a seguir mostra como usar o comando
load para carregar 10 arquivos sequencialmente numerados: dados1.mat,
dados2.mat, ...

fname = dados;
for i = 1:10
eval( [ 'load ', fname, int2str(i) ] )
end

A funo eval especialmente til na passagem de argumentos de


funes cujo parmetro um nome de outra funo. Um exemplo tpico o
funo fplot que passa como argumento o nome da funo a ser exibida,
exemplo:
Tutorial do Matlab 47

fplot( 'sin', [0 10] )

1.1.11 Arquivos de disco

Os comandos load e save recuperam e armazenam dados do workspace


no disco.

Manipulao de arquivos de disco

Os comandos dir, type, delete e cd servem manipulao de arquivos.


Para a maioria desses comandos devemos especificar o path, wildcards e o
drive de destino como normalmente se faz no DOS.

O comando type difere do comando type usual de uma forma importante.


Se nenhuma extenso especificada, o Matlab considera a extenso .m como
default. Portanto, esse comando normalmente usado para obtermos uma rpida
listagem de um M-file na teta do computador.

O comando diary cria um dirio (log) da sua seo Matlab na forma de


um arquivo ASCII. Todos os comandos e resultados, exceto grficos, so
automaticamente acrescentados ao arquivo de dirio.

Transferncia de dados

Voc pode introduzir dados de outros programas dentro do Matlab.


Similarmente, voc pode exportar dados do Matlab para outros programas.
Tambm possvel usar o formato que o Matlab usa para armazenar dados:
MAT-files.

Importando dados

O melhor mtodo de importar dados depende de quantos dados existem,


qual o seu formato, etc. A seguir, listamos algumas opes:

Entre com os dados como uma lista explcita dos elementos. Se


o nmero de elementos for pequeno (10-15 elementos) mais
simples digitar os dados explicitamente usando colchetes.
Tutorial do Matlab 48

Crie um M-file e escreva os dados de forma explcita usando


um editor de texto.

Carregue os dados de um arquivo ASCII.

Escreva um programa em C ou FORTRAN para converter seus


dados no formato dos MAT-files e ento use o comando load.

Importe os dados do Excel.

Exportando dados do Matlab

Para exportar dados tambm existem vrias opes, das quais algumas
so listadas a seguir:

Para matrizes pequenas use o comando diary para criar uma


arquivo de dirio e ento liste as variveis neste arquivo. Voc
pode, mais tarde, usar um editor de texto para manipular os
dados.

Salve os dados em um formato ASCII usando o comando save


com a opo -ascii. Por exemplo,

A = rand(4,3);
save temp.dat A -ascii

cria um arquivo ASCII chamado temp.dat

Salve os dados como MAT-files usando o comando save e


ento escreva um programa em C ou FORTRAN para
reformatar os dados conforme necessrio para a aplicao.

Exporte os dados para o Execl.


Tutorial do Matlab 49

1.1.12 O depurador do Matlab

Embora o Matlab seja uma linguagem menos complexa que outras


linguagens de programao, ele tem sua sintaxe prpria e voc pode precisar
corrigir alguns erros. O Matlab encontra erros de sintaxe durante a fase de
compilao e esses erros, em geral, so simples de corrigir. O Matlab tambm
encontra erros na fase de execuo do programa; esses erros tendem a ser mais
difceis de solucionar por causa do workspace local s funes ser perdido
quando um erro interrompe a execuo. Quando isto ocorre, retornamos ao
workspace base do Matlab. Se voc usou ponto-e-vrgula para suprimir os
resultados intermedirios da tela, no ter como saber onde o erro ocorreu.

Para mostrar os resultados intermedirios, voc pode usar um dos


mtodos a seguir:

Remova os ponto-e-vrgula de interesse;


Use a declarao keyboard para permitir que o workspace seja
examinado no ponto da declarao;
Torne a primeira linha da funo uma linha de comentrio, de
tal forma que a funo possa ser executada como um script,
fazendo com que os resultados intermedirios sejam acessveis
no workspace base do Matlab;
Use o depurador do Matlab.

Das könnte Ihnen auch gefallen