Académique Documents
Professionnel Documents
Culture Documents
MATLAB
Ambiente Biblioteca de
de Funes
Trabalho Matemticas
Prof. Adade
MATLAB BSICO
Lista (parcial) de Toolboxes (Mathworks, Inc.)
Signal Processing Control Systems Optimization
High-Order Spectral Analysis Robust Control NAG
Wavelet m-Analysis & Synthesis Partial Differential Equation
Data Acquisition Toolbox Nonlinear Control Design
Instrument Control (Simulink Control Design)
Filter Design Toolbox Model Predictive Control
LMI Control
System Identification Fuzzy Logic Symbolic Math
MMLE3 Identification Neural Network
Frequency Domain Identification
Statistics Communications Image Processing
Spline Finantial Mapping
Curve Fitting
Aerospace SimMechanics
Simulink, Simulink Accelerator Real Time Workshop StateFlow
+ Toolboxes de outras firmas
Prof. Adade
Prof. Adade
MATLAB BSICO
Opes de Partida e de Sada
O usurio pode criar esse arquivo com funes que ele queira executar ao trmino
da utilizao do Matlab, como salvar o espao de trabalho (vide arquivo
finishsav.m), por exemplo.
Prof. Adade
MATLAB BSICO
u Entrar no MATLAB
- comando matlab;
- via menu ou um cone.
u Sair do MATLAB
Comando quit ou exit (ou fechando-se uma janela, no ambiente
Windows).
Prof. Adade
MATLAB BSICO
Prof. Adade
MATLAB BSICO
Prof. Adade
MATLAB BSICO
Recursos do Desktop
A tela de partida do Matlab denominada Matlab Desktop (vide figura) e traz recursos
para se manusear arquivos, variveis e aplicaes.
Ao usar o browser do espao de trabalho (workspace), o editor de array acessado
clicando-se duas vezes sobre uma varivel.
A opo Layout (R2013) ou Desktop (R2011) (ou View, na verso 6) da barra de menus
do Matlab permite selecionar quais as janelas vo compor o Desktop.
Essas janelas podem ser deslocadas para fora do Desktop.
H diferentes configuraes pr-definidas para o Desktop, podendo ser selecionadas na
opo Layout (R2013) ou Desktop Layout (R2011) do menu Desktop (View).
Menus de contexto (pop-ups menus), apresentando as aes disponveis so acessados
clicando-se o boto direito do mouse sobre um item selecionado.
Prof. Adade
MATLAB BSICO
Recursos do Desktop (cont.)
Uma seleo de comandos da janela Command History pode ser copiada e colada em
outra janela do Desktop.
Uma seleo tambm pode ser executada clicando-se o boto direito e ativando a opo
Evaluate Selection do menu de contexto.
Os comandos (chamadas de funes) Matlab so "entrados" na Janela de Comandos. O
smbolo (>>) indica que o Matlab est pronto para aceitar alguma solicitao.
Aps entrar um comando, pressionar a tecla Enter ou Return para que seja executado.
Para entrar mltiplas linhas de comandos sem que sejam executados, concluir cada linha
usando Shift-Enter ou Shift-Return.
Pressionando Enter ou Return faz com que todas as linhas sejam executadas.
O comando clear ou os botes clear command e clear workspace (R2013) permitem
limpar a janela de comandos e o espao de trabalho.
Prof. Adade
MATLAB BSICO
Recursos do Desktop (cont.)
Matlab Web Browser: possvel abrir um web browser e acessar uma pgina pelo Matlab.
Menu: Desktop Web Browser (boto Community no menu da R2013)
u Matrizes tambm podem ser geradas por comandos e funes do MATLAB, editadas e
"carregadas" via um arquivo M-file e/ou "carregadas" de arquivos externos.
Prof. Adade
MATLAB BSICO
O procedimento de entrada de dados e de comandos simplificado pelo uso de funes e
de teclas especiais do editor de linhas de comandos do MATLAB:
Prof. Adade
MATLAB BSICO
Elementos das Matrizes
Nmeros reais, nmeros complexos, expresses matemticas e mesmo outras matrizes.
u Ex. 1:
x = [-1.1 sqrt(3) 4*atan(1)]
resulta
x=
-1.1000 1.7321 3.1416
x(5) = abs(x(1))
resulta
x=
-1.1000 1.7321 3.1416 0.0000 1.1000
Prof. Adade
MATLAB BSICO
u Ex. 2:
B = [A; 10 11 12]
resulta
B=
1 2 3
4 5 6
7 8 9
10 11 12
u Ex. 3:
C = [ 1 2; 3 4 ] + i * [ 4 3; 2 1]
ou
C = [ 1+4i 2+3i; 3+2i 4+i]
resulta
C=
1+4i 2+3i
3+2i 4+i
Prof. Adade
MATLAB BSICO
Obs 1. A princpio, isto , por default, i e j representam a unidade imaginria. Outra
varivel, digamos k, pode assumir essa condio simplesmente fazendo-se,
k = sqrt(-1).
Obs 3. Mesmo que i e j tenham sido alterados pelo usurio, ainda funcionam como
unidade complexa em definies de nmeros na forma a+bi.
u MATLAB tambm admite a estrutura matriz vazia, uma matriz de dimenso 0x0
definida da forma,
x=[]
Prof. Adade
MATLAB BSICO
Variveis, Nmeros e Expresses
Sintaxe para clculos no MATLAB:
varivel = expresso
ou
expresso
Ex:
180/3.1416
ans =
57.2956
u Obs. Terminar uma expresso com ; (ponto e vrgula) suprime a apresentao do
resultado, mas a expresso calculada.
u Nmeros e operadores aritmticos: notao convencional semelhante utilizada na
linguagem C.
Ex: 3 -99 .001 9.63972 1.602E-20 6.02252e23
Prof. Adade
MATLAB BSICO
u Operadores Aritmticos:
+ adio
- subtrao
* multiplicao
/ diviso direita
\ diviso esquerda
^ potenciao
Parnteses ( ) : ordem de precedncia de clculo; melhora a clareza das expresses.
u Variveis Pr-ajustadas
eps : preciso em ponto flutuante ou unidade de mquina (2-52 2,2210-16);
pi = p = 4 * atan(1)
inf = (Ex: s = 1/0 resulta s = inf e mensagem)
NaN = Not a Number (Resulta nas situaes Inf/Inf e 0/0)
realmin : menor nmero em ponto flutuante (2-1022 2.225110-308)
realmax : maior nmero em ponto flutuante, ((2 - eps) 21023 1.797710+308)
Prof. Adade
MATLAB BSICO
Exerccios.
Obs. O volume de um cilindro obtido pelo produto da sua rea da base (p r2) e a altura.
Resposta: 0.0204 m3
x3 y 2
( x - y)2
Resposta: 22.2222
Prof. Adade
MATLAB BSICO
Acompanhamento do Espao de Trabalho, Diretrios e Arquivos
O browser de espao de trabalho (Workspace browser) pode ser usado para se visualizar o
contedo do espao de trabalho, bem como deletar e redenominar variveis. (R2011)
Save Delete
Import
data
Open
selection
data
Prof. Adade
MATLAB BSICO
Para editar as variveis, utiliza-se o editor de array (Array Editor):
- clicando-se duas vezes sobre uma varivel.
- clicando-se o boto direito sobre a seleo de variveis e escolhendo a opo
Open Selection do menu de contexto que aparece.
Obs. Ao alterar um arquivo .mat este deve ser regravado para que as alteraes sejam
efetivadas de modo permanente.
O espao de trabalho (todas as variveis) pode ser gravado utilizando-se a opo Save
Wokspace As do menu File (ou boto Save Workspace na (R2013)).
Prof. Adade
MATLAB BSICO
Formato de Sada
format short : ponto fixo, quatro casas decimais
format short e : notao cientfica, quatro casas decimais (cinco dgitos)
format short g : ponto fixo ou notao cientfica, quatro casas decimais
format short eng : formato de engenharia, que tem pelo menos 5 dgitos e uma
potncia mltiplo de trs
format long: ponto fixo, quatorze casas decimais
format long e: notao cientfica, quatorze casas decimais
format long g : ponto fixo ou notao cientfica, quinze dgitos (double) ou sete
dgitos (preciso simples)
format long eng : formato de engenharia, que tem 16 dgitos significativos e uma
potncia mltipla de trs
format hex: hexadecimal
format +: + (se positivo), - (se negativo), branco (se nulo)
format rat: formato (aprox.) racional, isto , razo de inteiros
format bank: valor monetrio (dlares e centavos)
(format compact, suprime linhas em branco e format loose, que faz retornar ao formato no compactado)
Prof. Adade
MATLAB BSICO
Formato de Sada
Ex:
x = [6/7 1.1742e-5]
short: 0.8571 0.0000
short e: 8.5714e-001 1.1742e-005
short eng: 857.1429e-003 11.742e-006
long: 0.85714285714286 0.00001174200000
long e: 8.571428571428571e-001 1.174200000000000e-005
hex: 3feb6db6db6db6db 3ee89ff031112b32
+: + +
rat : 6/7 3/255493
bank: 0.86 0.00
Obs. Os clculos e valores armazenados so sempre em preciso dupla, independente
do formato de sada utilizado.
Prof. Adade
MATLAB BSICO
Ajuda
help: proporciona informao on-line sobre um tpico escolhido.
Ex:
help apresenta os diretrios no trajeto de busca (path) do MATLAB;
help diretrio mostra arquivo contents.m, a relao de funes no diretrio;
help funo mostra as linhas de comentrios que documentam a funo
Menu Help (ajuda) on-line: Matlab Help, Using the Desktop, Demos/Examples
Prof. Adade
MATLAB BSICO
Comentrios, Continuao
% : indica que o restante da linha que o contm um comentrio.
Prof. Adade
MATLAB BSICO
Exportar e Importar Dados
Funes save e load.
Prof. Adade
Os seguintes exemplos ilustram a sintaxe e opes dos comandos save e load:
save/load nome-de-arquivo % salva/restaura o espao de trabalho em/a partir de
% arquivo .mat
save nome-de-arquivo X, Y, Z -ascii % salva variveis X, Y e Z em arquivo ASCII
load nome-de-arquivo -ascii % carrega arquivo como ASCII
save nome-de-arquivo W append % acrescenta dados a um arquivo .mat existente
Para denominar a varivel com nome diferente daquele do arquivo, usar a construo:
TAB = load ('b:dados.txt'), por exemplo.
Prof. Adade
MATLAB BSICO
Operaes com Matrizes
Transposta '
Exs: A=[1 2 3; 4 5 6; 7 8 9]
B = A'
B=
1 4 7
2 5 8
3 6 9
x = [-2 0 1 ]'
x=
-2
0
1
Para matrizes complexas esta operao retorna a transposta da conjugada; para se obter a
transposta no conjugada de uma matriz A complexa, usar A.' ou conj(A').
Prof. Adade
MATLAB BSICO
Adio + e Subtrao -
Ex:
C=A+B
C=
2 6 10
6 10 14
10 14 18
Operandos devem ter a mesma dimenso, exceto quando um deles for um escalar, neste
caso, o escalar somado (ou subtrado) de todos os elementos do outro operando.
Ex:
y=x-1
y=
-3
-1
0
Prof. Adade
MATLAB BSICO
Multiplicao *
Ex:
C=A*B
C=
14 32 50
32 77 122
50 122 194
Diviso / e \
X = A \ B = inv(A) * B
X = B / A = B * inv(A)
Se A no for quadrada:
A*X=B ou X*A=B no sentido de mnimos quadrados.
Prof. Adade
MATLAB BSICO
Potenciao ^
Seja A uma matriz quadrada e p um escalar. Ento,
Prof. Adade
MATLAB BSICO
Operaes Elemento a Elemento
Soma + e subtrao - operam de forma convencional, elemento a
elemento de um vetor ou matriz.
.* : multiplicao
./ e .\ : diviso
.^ : potenciao
Exs:
x=[1 2 3] , y=[4 5 6]
z = x .* y
z=
4 10 18
Prof. Adade
MATLAB BSICO
Exs.
z = x .\ y % elemento de x divide elemento correspondente de y
z=
4.0000 2.5000 2.0000
z = x .^ y
z=
1 32 729
z = 2 .^ [x y]
z=
2 4 8 16 32 64
Prof. Adade
MATLAB BSICO
Operaes Relacionais
< menor do que
<= menor do que ou igual a
> maior do que
>= maior do que ou igual a
== igual
~= no igual a
A comparao feita entre pares de elementos correspondentes e o resultado uma
matriz de uns e zeros, representando verdadeiro (1) e falso (0) na comparao.
Exs:
2 + 2 ~= 4
ans = 0
a = [ 1 2 3] , b = [ 1 4 6 ]
z = a >= b
z= 1 0 0
Prof. Adade
MATLAB BSICO
Exs. x = [1.3 1.9 2.8 5.0 3.2 2.2 2.7 1.5 1.1 3.0]
Y = x(x<3) % indexao lgica (indexa os elementos de x menores do que 3)
Y=
1.3000 1.9000 2.8000 2.2000 2.7000 1.5000 1.1000
Prof. Adade
MATLAB BSICO
Operaes Lgicas
(operam elemento a elemento):
& : AND
| : OR
~ : NOT
Os operadores lgicos retornam um (1) quando verdadeiro (True) e zero (0) quando
falso (False). Elementos no nulos so considerados verdadeiros pelos operadores
lgicos.
Exs:
~A : retorna 0s onde A for no nula e 1s onde A for nula.
a=[1 2 3] , b=[0 3 4]
a&b
ans = 0 1 1
Prof. Adade
MATLAB BSICO
Funes Matemticas do MATLAB
i. Elemento a Elemento
Certas funes operam essencialmente sobre escalares mas operam sobre cada
elemento quando aplicados a uma matriz. Mais comuns:
abs valor absoluto ou magnitude do complexo
sqrt raiz quadrada
real parte real
imag parte imaginria
conj complexo conjugado
gcd maior divisor comum
lcm mnimo mltiplo comum
rem calcula o resto de uma diviso
round arredonda para o inteiro mais prximo
fix arredonda para menor (em direo a zero)
floor arredonda em direo a -
ceil arredonda para maior (em direo a + )
rat aproximao racional
Prof. Adade
MATLAB BSICO
sin , sinh seno, seno hiperblico
cos , cosh coseno, coseno hiperblico
tan , tanh tangente, tangente hiperblica
asin , asinh arco seno, arco seno hiperblico
acos , acosh arco coseno, arco coseno hiperblico
atan2 arco tangente nos quatro quadrantes
exp exponencial (base e)
log logartmo natural
log10 logartmo base 10
Prof. Adade
MATLAB BSICO
Exemplos.
A=[1 2 3; 4 5 6]
B = fix(pi*A)
B=3 6 9
12 15 18
C = cos(pi*B)
C = -1 1 -1
1 -1 1
Prof. Adade
MATLAB BSICO
Exemplo. x = 1; y = [1 -1 0]; z = [y; 0 1 1; -1 0 1];
>> exp(x)
ans =
2.7183
>> exp(y)
ans =
2.7183 0.3679 1.0000
>> exp(z)
ans =
2.7183 0.3679 1.0000
1.0000 2.7183 2.7183
0.3679 1.0000 2.7183
Prof. Adade
MATLAB BSICO
ii. Vetores
(se o argumento for uma matriz elas atuam a cada coluna, produzindo um vetor
linha como resultado; algumas dessas funes admitem definir, como segundo
argumento, a dimenso em que feito o clculo da funo, p. ex. mean(X,2)
calcula a mdia da matriz X por linha, resultando um vetor coluna).
Prof. Adade
MATLAB BSICO
Ex.
Prof. Adade
MATLAB BSICO
Exemplo. Uma turma de 8 alunos obteve as seguintes notas em trabalhos e provas,
conforme representado na matriz abaixo, onde cada coluna refere-se a um aluno e as
linhas s respectivas notas.
Notas = [ 7 8 5 7 9 9 10 5
7.5 8.5 7 7 9 10 9 4
8 8.5 7 7 8.5 9 9 7
7 8 6 7 8.5 9 8.5 6]
(1) Determinar a mdia de cada aluno (mdia aritmtica das avaliaes):
media = mean(Notas)
media =
7.3750 8.2500 6.2500 7.0000 8.7500 9.2500 9.1250 5.5000
(2) Qual a maior nota obtida pelo aluno nas avaliaes?
maior_nota = max(Notas)
maior_nota =
8.0000 8.5000 7.0000 7.0000 9.0000 10.0000 10.0000 7.0000
Prof. Adade
MATLAB BSICO
Funes lgicas e relacionais mais comuns so:
any any(x) retorna 1 se quaisquer dos elementos do vetor x for no nulo e 0 caso
contrrio.
find (b>2)
ans =
2 3
finite(a)
ans =
1 1 1
Prof. Adade
MATLAB BSICO
Funes Matemticas do Matlab
Funes para tratar conjuntos interpretam vetores como conjuntos, permitindo que
sejam realizadas operaes como unio e interseo:
intersect - conjunto interseo de dois vetores;
ismember - detecta membros de um conjunto;
setdiff - retorna o conjunto diferena de dois vetores;
setxor - conjunto XOR (OR exclusivo) de dois vetores;
union - conjunto unio de dois vetores;
unique - retorna os elementos nicos de um vetor.
Exs.
a=[1 2 3 ]; b=[1 4 6];
intersect(a,b) union(a,b)
ans = ans =
1 1 2 3 4 6
Prof. Adade
MATLAB BSICO
iii. Funes de Matrizes
Algumas das mais teis esto relacionadas a seguir.
inv inversa
det determinante
size retorna as dimenses da matriz
norm norma (norma-1, norma-2, norma-F, norma-)
rank determina o posto
cond determina o nmero de condio da matriz
eig calcula autovalores e autovetores
svd calcula decomposio em valores singulares
poly retorna os coeficientes do polinmio caracterstico
qr fatorao QR
rref forma escalonada em linha (row echelon) reduzida
expm exponencial de matriz
sqrtm raiz quadrada de matriz
Prof. Adade
MATLAB BSICO
Algumas funes pedem mltiplos argumentos de entrada, por exemplo,
teta = atan2 (v,u)
Outras retornam dois ou mais valores de sada, por exemplo,
[V,D] = eig(A)
D: diagonal com os autovalores de A; e
V: matriz de autovetores normalizados, correspondentes aos autovalores de A.
Ex. A=[1 2 3; 4 5 6; 7 8 0]
[V,D] = eig(A)
V = 1.0000 0.4238 -0.3142
-0.8810 1.0000 -0.4418
0.1246 0.9046 1.0000
D = -0.3884 0.0000 0.0000
0.0000 12.1229 0.0000
0.0000 0.0000 -5.7345
Prof. Adade
MATLAB BSICO
[y,k] = max(X)
que retorna o valor mximo y encontrado no vetor X e o ndice k do elemento
correspondente.
Prof. Adade
MATLAB BSICO
MATLAB Bsico possui um conjunto bem extenso de funes
nas categorias: matemtica elementar, construo de matrizes,
clculo matricial, anlise de dados, decomposies e
fatoraes de matrizes, polinomiais, processamento de sinais.
Prof. Adade
MATLAB BSICO
Funes para Construo de Matrizes
eye: eye(k), eye(size(A)) retornam uma matriz identidade de dimenso
k e da mesma dimenso de A, respectivamente.
zeros: zeros(2,3), zeros(size(A)) retornam uma matriz nula de dimenso
2x3 e de mesma dimenso que A, respectivamente.
ones: ones(4,2), ones(size(A)) retornam uma matriz com 1s de dimenso
4x2 e de mesma dimenso que A, respectivamente.
diag: diag(x) cria uma matriz diagonal com o vetor x na diagonal
principal; usando diag com mais um argumento de entrada coloca-
se o vetor x em outra diagonal que no a principal; diag(A) retorna
um vetor com a diagonal principal da matriz quadrada A.
Prof. Adade
MATLAB BSICO
rand: rand(4,3), rand(n) criam uma matriz de nmeros aleatrios
uniformemente distribudos no intervalo (0,1), de dimenso 4x3 e nxn,
respectivamente.
Obs 1. rand usada sem argumento retorna um escalar cujo valor alterado cada
vez que a funo referenciada.
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
Prof. Adade
MATLAB BSICO
Os comandos,
ans = 0 0
0.1000 0.0903
... ...
1.9000 0.1415
2.0000 0.1231
Obs. As funes linspace e logspace tambm podem ser usadas para gerar vetores.
logspace (X1, X2, N) gera N pontos espaados logaritmicamente entre 10X1 e 10X2.
Prof. Adade
MATLAB BSICO
ii. Acessar (indexar) Submatrizes
Matrizes podem ser acessadas/extradas de outras maiores.
Obs. A sintaxe requer que a indexao seja por um vetor de 1's e 0's lgicos.
Prof. Adade
MATLAB BSICO
Concatenao
Ex: C=[A eye(4) ; ones(size(A)) A^2 ]
assumindo que A possui 4 linhas.
cat(dim,A,B,C,...): concatena os arrays A, B , C, ... ao longo da dimenso especificada
em dim.
ans =
1 2 3 7 8 9 13 14 15
4 5 6 10 11 12 16 17 18
Prof. Adade
MATLAB BSICO
Concatenao
repmat : permite replicar e empilhar um array.
Exs:
ans(:,:,1) =
1 2 3 1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6 4 5 6
ans(:,:,2) =
1 2 3 1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6 4 5 6
Prof. Adade
MATLAB BSICO
Estruturas de Dados
Prof. Adade
MATLAB BSICO
Outras Estruturas de Dados
i. Arrays Multidimensionais
Arrays (generalizao multidimensional de matrizes) podem ser criados da seguinte
maneira:
- usando-se funes Matlab tais como zeros, ones ou randn;
- usando a funo de concatenao cat;
- usando a funo de rplica repmat; ou
- indexando um array j existente.
Ex.
A = [1 2; 3 4]; B = [5 6; 7 8];
C(:,:,1) = A; C(:,:,2) = B;
C
ans(:,:,1) = ans(:,:,2) =
1 2 5 6
3 4 7 8
Operaes aritmticas em arrays devem ser realizadas elemento-a-elemento (p. ex. usar .* para multiplicao).
Prof. Adade
MATLAB BSICO
Arrays Multidimensionais
A = [1 2; 3 4]; B = [5 6; 7 8]; C = [9 10; 11 12];
D(:,:,1) = A; D(:,:,2) = B; D(:,:,3) = C;
D
D(:,:,1) = D(1,2,2)
9 10
1 2 11 12
3 4
D(:,:,2) = 5 6
5 6 7 8
7 8
D(:,:,3) = 1 2
9 10 3 4
11 12
O primeiro ndice referencia a dimenso 1, a linha; o segundo ndice referencia a dimenso 2, a
coluna, e o terceiro ndice referencia a dimenso 3, uma pgina ou plano.
Prof. Adade
MATLAB BSICO
Arrays Multidimensionais
Obs. A funo reshape (X,M,N) pode ser usada para reformatar um array (em vetor ou matriz). X
deve ter MxN elementos.
Exs.
reshape(D,12,1) ; % cria vetor (empilha colunas) reshape(D,4,3) ; % cria matriz
ans = ans =
1 1 5 9
3 3 7 11
2 2 6 10
4 4 8 12
5
7
6
8
9
11
10
12
Prof. Adade
MATLAB BSICO
Outras Estruturas de Dados
ii. Arrays de Clulas
Clulas so unidades multidimensionais de dados dissimilares. Arrays de clulas (de
diferentes dimenses), cujos elementos so cpias de outros arrays, podem ser criadas
da seguinte maneira:
- utilizando-se o smbolo para construo de arrays de clulas { } ;
- utilizando-se comandos de atribuio; ou
- utilizando-se a funo cell.
Ex.
m = 2; X = [ -m : m ];
C = {X vander(X) norm(vander(X))}
% produz um array 1x3 de clulas, contendo um vetor com valores simtricos,
% uma matriz de Vandermonde associada e a sua norma espectral (max(svd()).
C=
[1x5 double] [5x5 double] [23.4361]
Prof. Adade
MATLAB BSICO
Para se acessar o contedo de uma das clulas, usar subscritos entre chaves:
C{2} ans = Obs.
16 -8 4 -2 1 (-2) 4
(-2)3 (-2) 2 (-2)1 (-2)0
(-1) (-1)3 (-1)2 (-1)1 (-1)0
4
1 -1 1 -1 1
( 0) 4 ( 0) 3 ( 0) 2 (0)1 ( 0) 0
0 0 0 0 1 4
(1)3 ( 0) 2 (0)1
( 0) 0
(1)
1 1 1 1 1 ( 2) 4
( 2) 3 ( 2) 2 (2)1 (2)0
16 8 4 2 1
Para acessar o contedo de todas as clulas, usar celldisp.
clula {1} clula {2} clula {3}
[16 -8 4 -2 1
[-2 -1 0 1 2] 1 -1 1 -1 1 23.4361
0 0 0 0 1
1 1 1 1 1
16 8 4 2 1]
Prof. Adade
MATLAB BSICO
Ex . Criar um array de clulas usando comandos de atribuio:
A(1,1) = {[1 2; 3 4]}; A(1,2) = {'sistemas de controle'};
A(2,1) = {[1+j;1-j]}; A(2,2) = {-3:3};
celldisp (A)
clula {1,1} clula {1,2}
1 2 sistemas de controle
3 4
clula {2,1} clula {2,2}
1.0000 + 1.0000i [-3 -2 -1 0 1 2 3]
1.0000 - 1.0000i
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Os principais tipos de grficos proporcionados so:
FORMA BSICA
Usando o browser de espao de trabalho, um grfico de uma varivel pode ser gerado
pressionando-se o boto direito sobre a varivel e escolhendo o tipo de grfico na
opo Graph Selection no menu de contexto.
0.7
0.6
0.5
eixo Y
0.4
0.3
0.2
0.1
0
1 2 3 4 5 6 7
eixo X
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Dados dois vetores de mesma dimenso, x e y, pode-se traar o grfico de y versus x atravs do
comando plot(x,y).
Ex.
t = 0 : .1 : 4*pi; 1
Grficos - Teste 02
y = sin(t); 0.8
sent
ylabel('sent'), ... 0
-0.2
grid
-0.4
-0.6
-0.8
-1
0 2 4 6 8 10 12 14
t
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Ex. Traando mltiplas curvas no mesmo grfico.
t = 0 : .1 : 3*pi; y = sin(t); 8
Grficos - Teste 03
Funes
title('Grficos - Teste 03') 2
text(2,0.8, 'SENO') 0
SENO
text(1,-1,'EXP * COSENO')
-4
-6
0 2 4 6 8 10
t
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Ttulos, Rtulos, Texto, Legenda
title('Ttulo','Propriedade1', 'Valor1', 'Propriedade2', 'Valor2')
xlabel('Rtulo do eixo-X','Propriedade1, 'Valor1')
ylabel('Rtulo do eixo-Y')
zlabel('Rtulo do eixo-Z')
gtext('Texto para anotao'); % texto posicionado na tela pelo mouse
text(x,y,'Texto para anotao'); % coloca o texto na posio especificada por x e
% y, nas unidades do ltimo grfico
legend('Texto1', 'Texto2') % coloca legenda com os textos especificados
A edio de uma figura/grfico facilitada pelos recursos proporcionados na
prpria janela grfica; alternativamente, usar o comando plottools.
Uma figura pode ser armazenada em arquivo .fig usando-se a opo save e carregada
usando-se a opo open do menu File.
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Particionamento da Tela : subplot(r,c,p)
A tela particionada em r c janelas e p a janela atual.
Ex:
clf ; % limpa a tela grfica
wt = 0 : 0.05 : 3*pi; 1
0.8 0.8
1
subplot(1,2,1), plot(wt,x,'r',wt,y,'g');
y=sen(wt-pi/4)
0.4 0.4
0.2 0.2
xlabel('wt - radianos) 0 0
xlabel('x=sen(wt)'); -0.4
-0.6
-0.4
-0.6
ylabel('y=sen(wtpi/4)') -0.8 -0.8
-1 -1
0 5 10 -1 0 1
wt - radianos x=sen(wt)
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Controle de Tela e de Escalas
shg : mostra a tela grfica;
hold on, (hold off) : mantm (ou no) o grfico atual na tela tal que
outros grficos podem ser superpostos (nos
mesmos eixos).
gcf : retorna o nmero da figura atual;
Prof. Adade
MATLAB BSICO
Para inserir caracteres especiais, usar o caractere "\"
como prefixo ou utilizar a funo texlabel.
Exemplos.
Alternativamente,
text(0.5,0.5,texlabel('lambda_12^(-1) pi*delta^(2/3)'))
Prof. Adade
MATLAB BSICO
Como incluir o valor de uma varivel em um ttulo?
Ex.
f = 70; c = (f - 32)/1.8;
title(['Temperatura ', num2str(c),' \circC'], 'Color', 'r')
% Ex. Temperatura 21.1111 C
(Obs. ttulo em vermelho).
Prof. Adade
MATLAB BSICO
Estilos de Linhas, Marcaes e Cores
O estilo da linha/smbolo utilizada na plotagem, bem como
a cor, podem ser definidos por intermdio de um argumento
para a funo plot:
plot(x,y,S)
onde S uma string (alfanumrico) de 1, 2 ou 3 caracteres,
entre apstrofos, construda a partir dos caracteres
mostrados na tabela abaixo:
Smbolo Cor Smbolo Estilo da
Linha/Marcao
y amarela pontilhada
m magenta crculo
c cyan x
r vermelha +
g verde * asterisco
b azul - linha cheia
w branca : dois pontos
k preta trao-ponto
-- linha tracejada
none nenhuma linha
s quadrado
d diamante
p pentagrama
h hexagrama
v tringulo (para
cima)
^ tringulo (para
baixo)
< tringulo (esquerda)
> tringulo (direita)
Prof. Adade
MATLAB BSICO
Ex.
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--')
Prof. Adade
MATLAB BSICO
A ordem das cores uma sequncia pr-
ajustada. Esta sequncia pode ser alterada
modificando-se a propriedade ColorOrder.
Prof. Adade
MATLAB BSICO
As escalas dos eixos so estabelecidas automaticamente.
Para alterar o pr-ajuste, usa-se o comando:
axis ([x_min,x_max,y_min,y_max])
em seguida ao comando plot.
x1=0:pi/10:4*pi; x2=0:pi/20:6*pi;
plotyy(x1,cos(x1),x2,x2.*sin(x2))
plotyy(X1,Y1,X2,Y2,FUN) utiliza a funo de plotagem FUN em vez da funo plot. FUN deve ser
o identificador (handle) para uma funo de plotagem, por exemplo, @plot, @semilogx,
@semilogy, @loglog, @stem etc., que aceite a sintaxe H = FUN(X,Y).
plotyy(X1,Y1,X2,Y2,FUN1,FUN2) utiliza FUN1(X1,Y1) para plotar os dados no eixo esquerda e
FUN2(X1,Y1) para plotar os dados no eixo direita.
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Curvas no Espao Tridimensional
plot3(x,y,z) : produz uma perspectiva (projeo bi-dimensional) da curva linear-
por partes que passa pelos pontos cujas coordenadas so os elementos de x, y e z,
vetores de mesma dimenso.
4
x 10
Ex: 4
plot3(x,y,z,'r') 1
0
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1
Prof. Adade
% Load the spectra data
load spectraData masscharge time spectra;
http://www.mathworks.com/matlabcentral/fileexchange/35262-matlab-plot-gallery-line-plot-3d/content/html/Line_Plot_3D.html
Prof. Adade
% Conjunto de registros de um sinal aleatrio.
t=0:0.05:2;
for k=1:10,
Y(1:length(t),k) = randn(length(t),1); end
k=1; plot3(t,k*ones(length(t)),Y(:,k)), hold
for k=2:10,plot3(t,k*ones(length(t)),Y(:,k))
end
Para obter a visualizao acima, foram utilizados recursos de rotate 3d e edio direta na tela grfica.
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Curvas de Nveis e Preparao de Grades de Dados
Para se produzir um grfico de superfcie (ou de nveis) de vetores x, y e z (z =
f(x,y)), z deve ser mapeado para uma grade retangular x-y (dados igualmente
espaados).
griddata : interpola os dados permitindo gerar dados igualmente espaados para fins de
plotagem.
Ex. Sejam x, y, z (z funo de x e y) vetores de dados espaados de forma irregular:
x=-2:0.05:2; y=4*rand(1, length(x))-2; % y entre -2 e 2; z=x .* exp(-x.^2- y.^2);
xmin=min(x); ymin=min(y); xmax=max(x); ymax=max(y);
xi=xmin:0.01*(xmax-xmin):xmax; yi=ymin:0.01*(ymax-ymin):ymax;
zi = griddata (x,y,z,xi',yi); % preenche a grade definida por xi e yi interpolando
% valores originais de x,y,z.
contour (xi,yi,zi);
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Curvas de Nveis e Preparao de Grades de Dados
A funo contour permite traar grfico de curvas de nveis para uma superfcie.
Ex. Traar curvas de nveis para a funo z = x e
- x2- y 2
.
colormap winter 2
[X,Y] = meshgrid(x,y); 1
contour (x,y,Z) 0
-0. 5
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Supor que se queira plotar z = f(x,y), onde x e y definem o domnio de f.
Procede-se como segue:
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Ex. Plotar um grfico de superfcie do valor absoluto da funo,
G (s + j w ) = 1
(s - w + s + 1 ) + j ( 2 s w + w )
2 2
para -3 s 3 e -3 w 3.
w = linspace(-3,3,50); 8
s = linspace(-3,3,50); 2
[W,S] = meshgrid(w,s);
re = S .^2 - W .^2 + S + 1; 0
4
2 4
im = 2 * S .* W + W; 0 2
0
den = re + j * im; g = 1 ./ abs(den); -2
-4 -4
-2
mesh(s,w,g)
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
n = 30; a = 1; r = 0.5;
teta = pi * (0 : 2 : 2 * n) / n;
fi = 2 * pi * (0 : 2 : n)' / n;
x = (a + r * cos(fi)) * cos(teta);
y = (a + r * cos(fi)) * sin(teta);
z = r * sin(fi) * ones(size(teta)); 1
0.5
surf(x,y,z)
0
q = (a + r)/sqrt(2); -0.5
axis([-q,q,-q,q,-q,q]) -1
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
A cor em que as malhas em mesh e surf so traadas pode ser definida (ou alterada)
utilizando-se a propriedade EdgeColor. Por exemplo,
figure 0.5
q = (a + r)/sqrt(2); -0.5
-1
axis([-q,q,-q,q,-q,q]) 1
0.5 1
0 0.5
0
-0.5
-0.5
Tambm possvel iluminar um -1 -1
camlight left
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Nesses tipos de grficos utilizada a palheta (mapa) de cores vigente.
Prof. Adade
MATLAB BSICO
O comando help graph3d lista, entre outros, os mapas de cores e suas caractersticas.
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Impresso de Grficos
print
print nome-do-arquivo - salva o grfico corrente no arquivo especificado;
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Impresso de Grficos
Pode-se salvar figuras em vrios formatos, p. ex.:
print -dbitmap nome-do arquivo % formato Windows Bitmaps (*.bmp)
print -dmeta nome-do-arquivo % formato Windows Metafile (*.wmf)
print -dhpgl nome-do-arquivo % formato HP Graphic Language (*.hgl)
print -deps nome-do-arquivo % formato Encapsulated Postscript (*.eps)
A opo Copy Figure do menu Edit na janela da figura tambm pode
ser usada para se transferir uma figura do MATLAB para outra
aplicao Windows.
A opo Save as (Export na verso 6) do menu File na janela de
figura permite gravar uma figura em diferentes formatos.
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Grficos log-log
% Create a set of values for the damping factor
zeta = [0.01 .02 0.05 0.1 .2 .5 1 ];
http://www.mathworks.com/matlabcentral/fileexchange/35265-matlab-plot-gallery-log-log-plot/content/html/Loglog_Plot.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Grficos tipo "pizza"
Ex. Representar a distribuio dos conceitos dos alunos na 1 prova de MP-702 (2002).
distribuicao_por_conceito = [4 5 15 5 9 1];
conceitos = {'D', 'I', 'R', 'B', 'MB', 'L'};
pie(distribuicao_por_conceito, conceitos) pie3(distribuicao_por_conceito, conceitos)
M P -702 (2002) - Dis t ribui o dos conc eitos obtidos na 1 a prova
L
D
a
M P -702 (2002) - Dis t ribui o dos conc eitos obtidos na 1 prova
MB
MB
I L
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Histogramas
% Load nucleotide data
load nucleotideData ncount;
% Add a legend
legend('A', 'C', 'G', 'T');
http://www.mathworks.com/matlabcentral/fileexchange/35275-matlab-plot-gallery-histogram-plot/content/html/Histogram_Plot.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Grficos de barras (3D)
% Load monthly temperature data
load MonthlyTemps temperatures months years;
http://www.mathworks.com/matlabcentral/fileexchange/35274-matlab-plot-gallery-bar-graph-3d/content/html/Bar_Plot_3D.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Area plot
% Load population data
load PopulationAge years population groups;
% Add a legend
legend(groups, 'Location', 'NorthWest');
http://www.mathworks.com/matlabcentral/fileexchange/35280-matlab-plot-gallery-area-plot/content/html/Area_Plot.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Graph plot
% Create the connectivity graph of the Buckminster Fuller geodesic dome
[B, V] = bucky;
H = sparse(60, 60);
k = 31:60;
H(k, k) = B(k, k);
http://www.mathworks.com/matlabcentral/fileexchange/35292-matlab-plot-gallery-graph-plot/content/html/Graph_Plot.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Omitir partes de uma curva num grfico
Partes de uma curva em um grfico podem ser omitidas por meio do uso de NaN como
valores de coordenadas.
Ex. Plotar a funo f(t) = sen(t), Ilus trac ao de c om o om itir partes de um a c urva em um grafic o
0.8
0.6
t = 0:pi/100:4*pi; 0.4
f = sin(t); 0.2
sin(t)
0
t1 = t; -0.2
-0.6
plot(t1,f); -0.8
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Omitir parte de uma superfcie num grfico 3D
Outro uso de NaN est em fazer omitir parte de uma superfcie ("fazer um buraco")
tornando visveis superfcies internas.
Ex. Plotar duas esferas, uma dentro da outra, ilustrando essa situao no grfico.
Prof. Adade
hold
z2 = Z;
c2 = 2*ones(size(z2));
c2(:,1:4) = 3 * ones(size(c2(:,1:4)));
s2 = surface(1.5*X, 1.5*Y, 1.5*z2, c2); % cria a esfera interior
colormap([0 1 0; .5 0 0; 1 0 0]);
grid
set(gca,'box', 'on')
-1
-2
2
1 2
0 1
0
-1
-1
-2 -2
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Variando a cor de uma linha num grfico
possvel criar uma linha que assume cores especificadas por uma expresso matemtica,
ou que muda em funo da coordenada-y. A tcnica consiste em usar um objeto grfico
tipo superfcie (surface) e criar uma linha virtual (perspectivas).
Uma aplicao desse recurso usar a cor como uma quarta dimenso. Por exemplo, ao
plotar a trajetria de um corpo, a cor da curva pode ser usada para representar a sua
velocidade ou a acelerao.
Ex. Criar uma linha virtual em que a cor uma funo dos valores da coordenada-y.
% definir as coordenadas da linha virtual
x = 0:pi/100:5*pi; y = sin(x); z = 0*x;
% definir os valores da cor de cada coordenada da linha
c = y;
% gerar o grafico
Prof. Adade
figure
surface([x;x], [y;y], [z;z], [c;c], ...
'facecolor', 'none', ...
'edgecolor', 'flat', ...
'linewidth', 3); % cria o grafico a partir da superficie definida
set(gca, 'box', 'on', 'xtick', [0:pi:5*pi], ...
'XTickLabel', '0 |p |2p |3p |4p |5p', 'FontName', 'Symbol');
axis([0 5*pi -1.1 1.1])
0 .8
0 .6
0 .4
0 .2
- 0 .2
- 0 .4
- 0 .6
- 0 .8
-1
0 p 2p 3p 4p 5p
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Criando uma imagem
Arranjos 2-D podem ser apresentados como imagens, onde os elementos da matriz
determinam brilho ou cor.
Ex.
load durer.mat % carrega as matrizes X (imagem) e map (colormap)
% e o array de caracteres caption
image (X)
colormap(map)
title(caption)
Quando X for uma matriz MN, os seus elementos so usados como ndices no
COLORMAP atual para determinar a cor.
Prof. Adade
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Misturando superfcies e imagens (mapeamento de textura)
A propriedade FaceColor do objeto grfico tipo surface possui as seguintes escolhas:
Prof. Adade
[x,y,z] = sphere(30);
figure('Colormap', map);
view(60,5); % estabelece o ponto de visada
surface_handle = surface(x, y, z);
set(surface_handle, ...
'FaceColor', 'texturemap', ...
'CData', flipud(X));
set(gca, 'box', 'on')
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Como colocar um grfico dentro de outro grfico.
% Create data
t = linspace(0,2*pi);
t(1) = eps;
y = sin(t);
% Main plot
plot(t, y);
xlabel('t'); ylabel('sin(t)');
set(handaxes1, 'box', 'off');
Prof. Adade
% Add another set of axes
handaxes3 = axes('position', [0.25 0.25 0.2 0.2]);
plot(t, y.^3);
set(handaxes3, 'box','off');
xlabel('t'); ylabel('(sin(t))^3');
http://www.mathworks.com/matlabcentral/fileexchange/35245-matlab-plot-gallery-plot-in-plot/content/html/Plot_in_Plot.html
Prof. Adade
MATLAB BSICO
Traando Grficos no Matlab
Como criar animao e GIFs animados.
This is an example of how to create animations and animated GIFs in MATLAB. In this example, we will animate the motion of a double-pendulum.
We solve the ordinary differential equation using ode45.
Read about the getframe and imwrite functions in the MATLAB documentation.
function dy = double_pendulum(t, y, m, L)
% System of ODEs for a double pendulum (mass m and link length L)
%
% See http://en.wikipedia.org/wiki/Double_pendulum for the differential
% equations
g = 9.81;
theta1 = y(1); % angle 1
theta2 = y(2); % angle 2
p1 = y(3); % momentum
p2 = y(4); % momentum
% The derivatives
dy(1) = 6/(m*L^2) * (2*p1-3*cos(theta1-theta2)*p2) / ...
(16-9*cos(theta1-theta2)^2);
dy(3) = -1/2*m*L^2*(dy(1)*dy(2)*sin(theta1-theta2)+3*g/L*sin(theta1));
dy(4) = -1/2*m*L^2*(-dy(1)*dy(2)*sin(theta1-theta2)+g/L*sin(theta2));
dy = dy(:);
Prof. Adade
% Parameters and initial conditions
% mass, link length, initial angles, simulation time
m = 1;
L = 1;
theta1 = 3*pi/4;
theta2 = 3*pi/8;
t = linspace(0, 10, 200);
subplot(2,1,2);
hh2 = plot([0, x(1,1);x(1,1), x(1,2)], [0, y(1,1);y(1,1), y(1,2)], ...
'.-', 'MarkerSize', 20, 'LineWidth', 2);
axis equal
axis([-2*L 2*L -2*L 2*L]);
ht = title(sprintf('Time: %0.2f sec', T(1)));
Prof. Adade
% Loop through by changing XData and YData
for id = 1:length(T)
% Update graphics data. This is more efficient than recreating plots.
set(hh1(1), 'XData', T(id) , 'YData', ang(id, 1));
set(hh1(2), 'XData', T(id) , 'YData', ang(id, 2));
set(hh2(1), 'XData', [0, x(id, 1)] , 'YData', [0, y(id, 1)]);
set(hh2(2), 'XData', x(id, :) , 'YData', y(id, :));
set(ht, 'String', sprintf('Time: %0.2f sec', T(id)));
% Create a colormap for the first frame. For the rest of the frames,
% use the same colormap
if id == 1
[mov(:,:,1,id), map] = rgb2ind(f.cdata, 256, 'nodither');
else
mov(:,:,1,id) = rgb2ind(f.cdata, map, 'nodither');
end
end
Prof. Adade
http://www.mathworks.com/matlabcentral/fileexchange/35251-matlab-plot-gallery-animation/content/html/Animation.html
Prof. Adade
MATLAB BSICO
Criando um Filme/Animao.
(1) Continuamente apagar e redesenhar os objetos na tela, fazendo alteraes incrementais
em cada retraado; ou
(2) Salvar um nmero de quadros distintos e ento apresent-los como um filme.
Ex. Chaturvedi, D.K. - Modeling and Simulation of Systems Using Matlab and Simulink.
CRC Press, 2010, p. 643-644. "Ilustrao do Movimento Browniano"
n=300; s = 0.02; nframes = 50;
x = rand(n,1) - 0.5; y = rand(n,1) - 0.5;
h = plot(x,y,'.'); % gera pontos aleatoriamente posicionados no plano (x,y)
set(h,'MarkerSize',18);
axis([-1 1 -1 1]), axis square
grid off
for k=1:nframes
x = x + s*randn(n,1); y = y + s*randn(n,1); % efetua movimento aleatrio de cada ponto
set(h, 'XData', x, 'YData', y)
M(k) = getframe; % captura em M o novo frame
end
movie(M,30) % apresenta a sequencia de 30 frames guardados em M
Prof. Adade
MATLAB BSICO
Programao em MATLAB
Prof. Adade
MATLAB BSICO
Fluxo de Programao
i. malhas for
Ex: m= ; n= ;
for j = 1: m
for k = 1: n
A(j,k) = 1 / (j+k-1);
end
end
produz a matriz de Hilbert mxn.
x = randn(200,1);
k = 1; m = 0; valor = 0; ref = 1.5;
while x(k) < ref
k = k+1;
if k > length(x), break, end
end
if (k <= length(x)), m=k, valor = x(k), end
m= 6
valor = 1.6342
Prof. Adade
MATLAB BSICO
Fluxo de Programao
iii. Condicionais e Ramificaes
Forma geral:
if relao
comandos
elseif relao
comandos
else
comandos
end
Os comandos so executados somente se a relao for verdadeira.
Prof. Adade
MATLAB BSICO
Fluxo de Programao
switch : permite programar a execuo condicionada de comandos quando h muitas opes a
considerar. Faz comutar entre vrios casos com base em uma expresso.
As palavras reservadas case e otherwise delineiam os grupos de comandos.
switch expresso
case expresso_do_caso
comandos
case {expresso1_do_caso, expresso2_do_caso,... }
comandos
...
otherwise,
comandos
end
No exemplo, so executados os comandos do primeiro caso em que expresso (que deve ser um escalar
ou uma string) casar com a expresso_do_caso. Quando a expresso do caso for um array de
clulas, como o segundo caso acima, os comandos so executados se expresso "casar" com quaisquer
dos elementos do array. Se nenhuma das expresses_dos_casos "casar" com a expresso de switch,
so executados os comandos do caso otherwise (se existir).
Prof. Adade
Ex.
h = 3.5;
switch h
case 2.0, f= 2*h
case {1.0, 3.0, 4.0, 5.0}, f = sqrt(h)
otherwise
f = h^2
end
f=
12.2500
Prof. Adade
MATLAB BSICO
Fluxo de Programao
O comando continue passa o controle para a prxima iterao da malha for ou while
na qual aparece, ignorando quaisquer comandos restantes no corpo da malha. Para
laos aninhados, o controle passado para a prxima iterao contem continue.
Um lao (for, while, if, switch) s executado aps a finalizao de sua sintaxe
(comando end).
Prof. Adade
MATLAB BSICO
Fluxo de Programao
try ... catch
Altera o controle de fluxo se um erro for detectado durante a execuo.
try,
comando.
...,
comando,
catch,
comando,
...,
comando,
end
Os comandos entre try e catch so executados at ocorrer um erro. Na ocorrncia de erro, os comandos entre
catch e end ento so executados. (Sem try ... catch a execuo seria terminada na ocorrncia de erro).
Se ocorrer um erro entre catch e end a execuo terminada a menos que outra sequncia try ... catch tenha
sido estabelecida.
Prof. Adade
M-files
Consistem de uma sequncia de comandos Matlab, possivelmente incluindo
referncia a outros m-files.
Automatizar uma sequncia longa de comandos (script)
Incluir novas funes ao Matlab (function)
1. Script
function y = mean(x)
% MEAN Valor mdio. Para vetores, mean(x) retorna o valor mdio.
% Para matrizes, mean(x) um vetor linha contendo o valor
% mdio de cada coluna.
[m,n] = size(x);
if m == 1,
m = n; % trata vetor linha isolado arquivo
end
y = sum(x)/m;
mean.m
Prof. Adade
MATLAB BSICO
Procedimentos para criar/alterar um m-file
Procedimento bsico: editar ou reeditar um arquivo, que deve ser gravado com
extenso .m, utilizando-se um editor de arquivos tipo texto.
Usar o editor/depurador de arquivos de texto (Matlab Editor/Debugger) que vem
Prof. Adade
MATLAB BSICO
Procedimentos para criar/alterar um m-file
h( x , x ) = 100 ( x - x ) + (1 - x )
1 2 2
2
1
2
1
2
function y = banana(x1,x2)
y = 100 .* (x2 - x1.^2) .^2 + (ones(size(x1)) - x1) .^2;
Prof. Adade
Esta funo pode ento ser visualizada, por exemplo, pelo uso dos comandos:
x1 = 0 : .01 : 2 ; x2 = 0 : .01 : 4;
[X1,X2] = meshgrid(x1,x2);
z = BANANA(X1,X2);
v = logspace(-2,0,5);
contour(x1,x2,z,v) % o vetor v controla quais
% nveis so plotados, no caso, so plotadas 5
% curvas de nveis de z entre 0.01 e 1.0.
xlabel('x1'), ylabel('x2')
title('Curvas de nvel da funo banana de Rosenbrock')
2 2 2
Funo de Ros enbroc k , z = 100 (x - x ) + (1 - x )
2 1 1
log(1+z)
4
x1 = 0 : .1 : 2 ; x2 = 0 : .1 : 4;
[X1,X2] = meshgrid(x1,x2); 2
z = banana(X1,X2); 0
4
3 2
mesh(x1,x2,logz)
0.5 x
1
0 0
Prof. Adade
MATLAB BSICO
Procedimentos para criar/alterar um m-file
O acesso a m-files e seus diretrios pode ser feito tambm utilizando o browser de
diretrio atual (Current Directory Browser), ativado no Desktop.
Por meio desse browser pode-se visualizar, criar, renomear e alterar diretrios, abrir,
substituir e executar contedo de arquivos.
Prof. Adade
MATLAB BSICO
M-files de funo podem conter cdigo de mais de uma funo. A primeira, que
evocada com o nome do M-file, chamada de funo primria. As outras so
subfunes, s visveis para a funo primria ou para subfunes no mesmo arquivo.
Elas so visveis somente por funes no diretrio antecessor. Isto til quando se quer
criar uma verso prpria de uma funo enquanto retendo a original em outro diretrio.
Matlab procura primeiro as funes particulares antes dos M-files de funes padres.
Prof. Adade
MATLAB BSICO
P-codes
Arquivo em P-code (parsed code): verso pr-processada de uma function ou script.
Finalidade: ganhar tempo na sua utilizao pelo Matlab ou ainda no revelar algoritmos
utilizados na preparao do m-file.
Prof. Adade
MATLAB BSICO
Trajeto de Busca do MATLAB
O trajeto ("path") de busca de funes pelo MATLAB est na varivel matlabpath.
Ao teclar-se o comando pathdef esse caminho mostrado na tela.
Durante uma sesso, para se incluir algum diretrio no trajeto de busca do MATLAB
pode-se proceder da seguinte maneira:
Prof. Adade
MATLAB BSICO
Variveis Globais
Todas as variveis no MATLAB so armazenadas em um espao-de-trabalho-base (cujo contedo
mostrado pelo comando whos).
M-files do tipo funes tm seus prprios espaos-de-trabalho; as variveis definidas no espao de
trabalho de uma funo so removidas da memria automaticamente, quando retorna-se da
funo.
Um M-file do tipo script armazena as suas variveis no espao de trabalho do qual foi chamada;
H um terceiro tipo de espao de trabalho, denominado global, onde as variveis globais so
armazenadas (seu contedo pode ser visualizado pelo comando whos global). As variveis de um
outro espao de trabalho podem ser declaradas globais atravs do comando,
global nome-da-varivel
Obs. A varivel deve estar declarada como global em todas as funes em que
compartilhada, inclusive no espao de trabalho base.
Os espaos de trabalho base e de funes podem ser acessados na depurao de m-files usando-se o
campo Stack no Workspace browser e por meio do Editor/Debugger .
Prof. Adade
MATLAB BSICO
Variveis Persistentes
Uma varivel local a uma funo pode ser declarada persistente, tal que seu valor retido
na memria e no se altera entre chamadas sucessivas da funo.
persistent nome-da-varivel
Elas diferem das variveis globais na medida em que s so reconhecidas nas funes
em que so declaradas.
Prof. Adade
MATLAB BSICO
Strings
Uma sequncia de dados alfanumricos (texto) define uma string e fornecida entre
apstrofos.
Ex.
s = 'Sistemas'
s=
Sistemas
O texto armazenado em um vetor, um caractere por elemento.
Ex. size(s)
ans =
1 8
Os caracteres so armazenados como valores ASCII e as funes abs e double determinam
esses valores:
double(s)
ans =
83 105 115 116 101 109 97 115
Prof. Adade
MATLAB BSICO
Strings
Ex. Eliminar de um texto as tags (caracteres que estejam entre < e > inclusive). Por exemplo,
Texto = 'A <b>computao</b> pode ser definida como a busca de uma soluo para um problema a partir de entradas
(<i>inputs</i>) e tem seus resultados (<i>outputs</i>) depois de trabalhada atravs de um algoritmo. com isto que lida a
<i>teoria da computao</i>, subcampo da cincia da computao e da matemtica.'
Obs. O programa acima no vai funcionar corretamente se o texto contiver o caractere < isoladamente, isto , ele no definir uma
tag.
Prof. Adade
MATLAB BSICO
A concatenao de texto feita como no seguinte exemplo:
MATLAB tem disponvel algumas funes aplicadas a variveis do tipo string. Por exemplo,
Prof. Adade
MATLAB BSICO
Todo comando da forma,
nome_da_funo argumento
pode ser escrito na forma,
nome_da_funo ('argumento')
na qual o modificador argumento fornecido como um argumento de tipo string da funo.
Isso pode ser explorado convenientemente quando se precisa compor um argumento a partir de
vrias partes.
Ex. Deseja-se processar dados experimentais que foram armazenados em 8 arquivos,
denominados Teste1.dat, Teste2.dat, ..., Teste8.dat. Esses dados poderiam ser carregados utilizando-
se os seguintes comandos,
for m = 1:8
dados = ['Teste' int2str(m) '.dat']
% a funo int2str converte um inteiro em string
load(dados)
M % comandos para processar os dados do m-simo arquivo
end
Prof. Adade
MATLAB BSICO
Comando eval
O comando eval (s), onde s uma string, permite que uma string seja executada como uma
expresso ou comando Matlab.
ans =
for m = 1:8
dados = ['load Teste' int2str(m) '.dat']
eval(dados)
M % comandos para processar os dados do m-simo % arquivo
end
Prof. Adade
MATLAB BSICO
Comando eval
O uso do comando eval permite o clculo, repetidas vezes, de uma funo ou frmula
matemtica sem ser necessria a sua redigitao durante uma sesso Matlab.
Exemplo. Calcular a funo polinomial f(x) = x5 2 x4 + x3 3 x2 + 5 x 1 em vrios
pontos.
x = 3; eval(f)
ans = 95
x = -7; eval(f)
ans = -22135
Prof. Adade
MATLAB BSICO
Entrada de Dados pelo Teclado
A funo input permite que o usurio fornea dados interativamente, pelo teclado.
Ex.
mostra a mensagem na tela e h uma pausa no programa enquanto o usurio digita o dado
de entrada; ao pressionar a tecla enter o dado atribudo a n e a execuo tem
prosseguimento.
Prof. Adade
MATLAB BSICO
Mostrar na Tela uma Mensagem
A funo fprintf imprime na tela uma string definida como argumento no comando.
Prof. Adade
MATLAB BSICO
Operaes em Arquivos (I/O)
fread, fscanf, fgets, fgetl, dlmread, textread, csvread, imread : usadas para ler
fwrite, dlmwrite, imwrite : usadas para escrever dados
Leitura e gravao em variados formatos, em um arquivo identificado, portanto,
propiciando recursos adicionais (alm dos comandos save e load) para importar e exportar
dados. Estas funes permitem especificar o formato de leitura ou gravao.
Exs.
idr = fopen('dados.dat','r');% abre o arquivo de dados para leitura edefine um identificador p/ele
F = fread(idr); % l todo o arquivo de dados binrios colocando-os na matriz F
status = fclose(idr); % fecha o arquivo associado ao identificador idr
idw = fopen('magic5.bin','wb'); % abre arquivo binrio para gravao
fwrite(idw,magic(5),'integer*4'); % grava um arquivo binrio contendo os 25 elementos da
% matriz gerada por magic(5), armazenados como inteiros
% de 4-bytes.
Prof. Adade
MATLAB BSICO
Som no MATLAB
sound sound(y) converte um vetor y de valores em som. O vetor auto-escalonado de modo
que mximo e mnimo valores em y correspondam mxima e mnima amplitude
permitidas pelo hardware de som do computador. O som produzido na taxa de
amostragem pr-ajustada; sound(y,Fs) reproduz o som numa freqncia de
amostragem de Fs Hz.
wavread Permite carregar para o ambiente Matlab um arquivo de som;
[y,Fs,Bits] =wavread(wavefile) carrega um arquivo em formato .wav retornando os
dados amostrados na varivel y (amplitudes no intervalo [-1,1]), a taxa de
amostragem, em Hertz, na varivel Fs e o nmero de bits por amostra usado para
codificar os dados no arquivo .wav, na varivel Bits.
wavwrite Grava um arquivo .wav;
wavwrite(y,Fs,Nbits, wavefile):
y Os dados amostrados a serem gravados
Fs Taxa na qual os dados foram amostrados
Nbits Fora gravar um formato de arquivo de Nbits (<=16)
wavefile Uma string com o nome do arquivo .wav a ser criado
Prof. Adade
soundsc Escalona um vetor e produz som; soundsc (Y,...) o mesmo que sound(Y,...)
exceto que os dados so escalonados tal que o som produzido to alto quanto
possvel sem clipping; soundsc (Y,...,SLIM) onde SLIM = [SLOW SHIGH]
ajusta o escalonamento tal que os valores em Y entre SLOW e SHIGH so mapeados
no intervalo sonoro total (o valor pr-ajustado SLIM = [MIN(Y) MAX(Y)]
Funes que permitem tocar ou gravar som atravs de dispositivos de audio do computador tipo-PC
so wavplay e wavrecord.
Ex. Carregar o arquivo train.mat, reproduzir o som (apito de uma locomotiva) e plotar o grfico
correspondente:
load train
sound(y,Fs)
t=(0:length(y)-1)/Fs;
plot(t,y)
Prof. Adade
MATLAB BSICO
Uso de subrotinas/programas em C ou FORTRAN
recurso MEX-file do MATLAB (que conecta dinamicamente, em tempo de execuo, o
interpretador MATLAB subrotina C ou FORTRAN) permite carregar e executar uma
subrotina em C ou FORTRAN de dentro de um programa MATLAB.
Tambm possvel chamar uma funo MATLAB de dentro de uma subrotina C ou
FORTRAN.
Prof. Adade
MATLAB BSICO
Representao de Funes Matemticas
Uma classe de funes do MATLAB trabalha no com matrizes numricas, mas com funes
matemticas. Funes matemticas so representadas por M-files (arquivos com extenso .m) ou
como objetos inline (na linha de comando). Por exemplo, a funo,
1 1
y( x) = + -6
( x - 0,3) + 0,01 ( x - 0,9) + 0,04
2 2
40
x = -1 : .01 : 2 ; 20
plot(x, humps(x),'r') 0
-20
-1 -0.5 0 0.5 1 1.5 2
Prof. Adade
MATLAB BSICO
Representao e Plotagem de Funes Matemticas
Alternativamente, a funo "humps" poderia ser representada na linha de comando criando-se um
objeto inline a partir de uma string:
y = inline('1 ./ ((x - 0.3) .^2 + 0.01) + 1 ./ ((x - 0.9) .^2 + 0.04) 6');
Calculando-se y em x = 2, por exemplo,
y(2.0)
ans =
-4.8552
Funes de mais de uma varivel podem ser criadas com inline especificando-se os nomes dos
argumentos de entrada juntamente com a string definindo a expresso.
A funo fplot proporciona uma maneira eficiente para se plotar um grfico de uma funo
matemtica. Por exemplo, o comando fplot('humps', [-1,2]) produz o grfico da funo dada acima
no domnio x indicado.
Prof. Adade
A funo matemtica pode ser definida por uma expresso simblica, evitando-se, com isso, a
criao de um M-file. No exemplo dado,
fplot('1 ./ ((x - 0.3) .^2 + 0.01) + 1 ./ ((x - 0.9) .^2 + 0.04) - 6', [-1,2])
Outra funo que pode ser usada para plotagem de funes matemticas ezplot (e tambm
ezmesh, ezsurf, ezcontour, ezpolar etc.)
ezplot(f, [xmin,xmax,ymin,ymax])
Prof. Adade
% Cria uma srie de curves para a funo f(x,y) = y^2 - x^2 + c
figure;
ezplot('y^2 - x^2 + 4', [-3 3], [-3 3]); hold on;
ezplot('y^2 - x^2 + 2', [-3 3], [-3 3]);
ezplot('y^2 - x^2', [-3 3], [-3 3]);
ezplot('y^2 - x^2 - 2', [-3 3], [-3 3]);
ezplot('y^2 - x^2 - 4', [-3 3], [-3 3]);
% Acrescenta ttulo
title('y^2 - x^2 - c = 0 para c = [-4, 4]');
Prof. Adade
MATLAB BSICO
Representao e Plotagem de Funes Matemticas
O comando ezplot(x,y, [tmin,tmax]) plota a curva planar definida parametricamente,
x = x(t) e y = y(t) no domnio tmin < t < tmax. Por exemplo,
ezplot('t*cos(t)','t*sin(t)',[0,4*pi])
Prof. Adade
MATLAB BSICO
Representao e Plotagem de Funes Matemticas
% Create the plot using the functions
% x = sin(pi*u)*sin(pi*u)*cos(v) ; y = sin(pi*u)*sin(pi*u)*sin(v) ; z = u
% with - 1 < u < 1 and 0 < v < 2*pi
figure;
ezsurf('sin(pi*u)*sin(pi*u)*cos(v)', ...
'sin(pi*u)*sin(pi*u)*sin(v)', ...
'u', [-1 1 0 2*pi]);
http://www.mathworks.com/matlabcentral/fileexchange/35307-matlab-plot-gallery-function-surface-plot/content/html/Function_Surface_Plot.html
Prof. Adade
MATLAB BSICO
Equaes No Lineares e Otimizao
Prof. Adade
MATLAB BSICO
Equaes No Lineares e Otimizao
Ex. Localizar o mnimo da funo humps(x) na regio [0.5 , 1]:
xm = fminbnd ('humps', 0.5, 1)
xm =
0.6370
O valor da funo no mnimo ,
y = humps(xm)
y=
11.2528
fplot(@humps,[0 2]);
grid; hold on
plot(xm, humps(xm), 'ro')
hold off
Prof. Adade
MATLAB BSICO
Equaes No Lineares e Otimizao
Ex. Localizar o zero de humps(x) que est prximo a 1:
xz1 = fzero('humps', 1)
xz1 = 1.2995
fplot('humps', [0 2]);
grid
hold on
plot(xz1,0, 'ro')
hold off
Prof. Adade
MATLAB BSICO
Equaes No Lineares e Otimizao
Resolver o Sistema de Equaes:
Passo 2 : definir o clculo de f1, f2 e f3
2
sen x + y + log(z) = 7 em um m-file (xyzf.m, p.ex.)
3 x + 2y z-3 = -1
x+y+z=5 function q = xyzf(p)
x = p(1); y = p(2); z = p(3);
Passo 1: definir um sistema equivalente, q = zeros(3,1); % pr-alocao
q(1) = sin(x) + y^2 + log(z) - 7;
f1(x,y,z) = 0 q(2) = 3*x + 2^y - z^3 + 1;
f2(x,y,z) = 0 q(3) = x + y + z - 5;
f3(x,y,z) = 0
hold on 80
hold off 40
20
q = quad(@humps, 0, 1) 0
-20
-1 -0.5 0 0.5 1 1.5 2
q=
29.8583
Prof. Adade
MATLAB BSICO
Soluo de Equaes Diferenciais
Funes MATLAB para resolver equaes diferenciais ordinrias so:
Prof. Adade
MATLAB BSICO
Soluo de Equaes Diferenciais
Problemas classificados como stiff apresentam dinmicas em escalas de tempo muito
distintas (muito grandes e muito pequenas comparadas ao intervalo de integrao).
Ex. A equao diferencial,
&y&(t ) + 100 y& (t ) + 0,9999 y (t ) = 0 , y(0) = 1 , y& (0) = 0
Exerccio. Verificar que o solver ode15s fornece soluo rapidamente, enquanto que
ode45 no.
Prof. Adade
MATLAB BSICO
Soluo de Equaes Diferenciais
A sintaxe bsica de chamada para todas essas funes :
[t,y] = solver(nome da funo, faixa, x0)
t - o vetor de instantes de tempo;
y - array soluo; cada linha em y corresponde soluo em um instante de tempo
retornado na linha correspondente de t;
solver - uma das funes que solucionam equaes diferenciais, listadas acima;
nome da funo - a funo que calcula dy/dt;
faixa - um vetor especificando o intervalo de soluo, p. ex. [t0 tf], onde t0 especifica o
instante inicial e tf o instante final da soluo; e
x0 - vetor de condies iniciais.
Prof. Adade
MATLAB BSICO
Soluo de Equaes Diferenciais
Matlab possui vrios outros recursos para soluo de equaes diferenciais, por exemplo, para
resolver problemas de valor de contorno (boundary value problems) e alguns tipos de equaes
diferenciais parciais. Recomenda-se olhar o tutorial disponibilizado no Matlab sobre o assunto,
acessado por meio do comando odedemo.
Prof. Adade
MATLAB BSICO
Soluo de Equaes Diferenciais
Ex. 1. Equao de Van der Pol
d y + (y -1) d y + y = 0
2
2
2
dt dt
Na forma de espao de estados, definindo x2 = y e x1 = dy/dt, tem-se,
d
x = x (1 - x
1 1
2
2 )-x 2
dt
d
x =x
2 1
dt
Criar um M-file, denominado vderpol.m, representando essas equaes diferenciais:
function xdot = vderpol (t,x) function xdot = vderpol (t,x)
xdot = [ 1 -(1 + x(1)*x(2)) ; 1 0 ] * x; xdot = zeros(2,1);
xdot(1) = x(1) .* (1 - x(2) .^2) x(2);
Alternativamente, xdot(2) = x(1)
Prof. Adade
Alternativamente, usando o Editor de Equaes Diferenciais (DEE):
>> dee
Prof. Adade
Simular a equao diferencial no intervalo 0 t 20 :
t0 = 0 ; tf = 20;
x0 = [0 0.25]' ; % condies iniciais
[t,x] = ode23('vderpol', [t0 tf],x0);
plot(t,x(:,1), 'r-', t,x(:,2),'b-.')
xlabel('t'), title('Soluo da equao de Van der Pol')
legend('dy/dt', 'y')
-1
-2
dy /dt
y
-3
0 2 4 6 8 10 12 14 16 18 20
t
Prof. Adade
MATLAB BSICO
Polinmios e Ajustes de Curvas
Polinmios so representados no Matlab por vetores-linha de coeficientes em potncias
descendentes. Algumas funes do MATLAB aplicadas a polinmios so:
polyval : calcula o valor do polinmio para um dado valor de sua varivel;
poly : poly(A) acha o polinmio caracterstico da matriz A (coeficientes em potncia
descendente); poly(r) retorna os coeficientes do polinmio que tem como razes os
valores no vetor r;
roots : roots(P) acha as razes do polinmio cujos coeficientes esto definidos no vetor P;
conv : conv(P,Q) faz o produto dos polinmios cujos coeficientes esto definidos nos
vetores P e Q;
deconv : [Q,R] = deconv(B,A), A e B vetores de coeficientes, efetua a diviso de polinmios
B por A. Resultado: polinmio quociente Q e polinmio resto R.
polyder: computa a derivada de um polinmio; computa, tambm, a derivada de produto e
quociente de dois polinmios.
polyfit : ajuste polinomial de dados: acha os coeficientes de um polinmio que ajusta um
conjunto de dados no sentido de mnimos quadrados.
Prof. Adade
MATLAB BSICO
Polinmios e Ajustes de Curvas
Exs:
A = [ 1 2 3; 4 5 6 ; 7 8 0 ]
P = poly(A)
P=
1 -6 -72 -27
polyval(P,2)
ans =
-187.0000
r = roots(P)
r=
12.1229
-5.7345
-0.3884
p2 = poly(r)
p2 =
1 -6 -72 -27
1400
1200
1000
800
600
400
200
-200
-5 0 5
Prof. Adade
Ex. Uma das maneiras mais usuais para se ajustar uma curva no MATLAB usar a funo
polyfit, que ajusta um polinmio aos dados especificados.
x=1:10;
y=exp(x); % gera dados exponenciais a serem ajustados
c=polyfit(x,y,9); % determina os coeficientes de um polinmio de ajuste de grau 9
yfit = polyval(c,x); % calcula o polinmio definido por c nos valores de x
plot (x,y,'bo',x,yfit,'r-')
4
x 10
2.5
1.5
0.5
0
1 2 3 4 5 6 7 8 9 10
Prof. Adade
MATLAB BSICO
Interpolao
Matlab proporciona vrios recursos para a interpolao, processo de estimar valores
que se situam entre pontos de dados conhecidos. Algumas das funes para esse fim so:
interp1: yi = interp1(x, y, xi, mtodo) efetua interpolao unidimensional, usando
tcnicas polinomiais; x e y so vetores de pontos de dados e respectivos valores
da funo y(x); xi o vetor de pontos a serem interpolados e mtodo um
alfanumrico (string) especificando o mtodo de interpolao (linear, spline
cbica e outros). yi = interp1(x, y, xi, mtodo, 'extrap') : efetua extrapolao.
250
200
Populao (em milhes)
150
100
50
0
1750 1800 1850 1900 1950 2000 2050
A no
Prof. Adade
MATLAB BSICO
Interpolao
Ex. Considere-se Z uma funo das variveis altitude e nmero de Mach e a seguinte tabela de
dados (altitude a abcissa, nmero de Mach a ordenada e Z os valores correspondentes dessa
funo) medidos para essas variveis:
altitude = [0; 5000; 10000; 15000; 20000; 25000; 30000; 35000; 40000];
NumMach = [0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9];
Z =[122059 111997 105356 100676 97798 87118 84516 82292;
110667 102135 96157 92224 92167 84769 77963 75619;
94226 88879 83835 81251 81011 82950 72590 73395;
80997 76295 71861 70032 69872 70339 70766 71140;
69023 65228 61643 60179 60073 60678 61429 63293;
58449 55611 52911 50011 51759 52382 53227 56310;
47039 46061 45104 44166 44313 44887 45843 48369;
39593 38801 38027 37267 37365 37974 38886 40861;
29251 28695 28139 27583 27788 28046 28651 30167];
Deseja-se interpolar os dados para valores da altitude:
y = 0:100:40000; A = interp2(NumMach, altitude, Z, NumMach, y');
Prof. Adade
MATLAB BSICO
Anlise de Dados
Matlab bsico apresenta um conjunto de funes para anlise de dados, por exemplo, para
organizar os dados, funes estatsticas e de anlise incluindo regresso, ajuste de curvas,
filtragem e transformada de Fourier.
Recursos adicionais so obtidos atravs de toolboxes como o Signal Processing, System
Identification e Statistics.
As funes processam colunas de dados. Algumas das funes para essa finalidade so:
mean: calcula valor mdio.
std: calcula desvio padro.
cov: calcula varincia.
corrcoef: calcula coeficiente de correlao.
fft: efetua a transformada discreta de Fourier.
ifft: efetua a transformada discreta inversa de Fourier.
Prof. Adade
MATLAB BSICO
Anlise de Dados
Anlise orientada por coluna:
variveis
Prof. Adade
MATLAB BSICO
Anlise de Dados
Exemplo. % Carrega a matriz de dados Idata
Prof. Adade
MATLAB BSICO
Anlise de Dados
Exemplo (cont.).
% Regresso da ltima coluna (que corresponde a desemprego neste exemplo) nas colunas
anteriores:
y = Idata(:,7);
A = [ Idata(:,1:6) ones(size(y)) ];
coef = A \ y % resolve o sistema de eqs. lineares A coef = y
% proporciona o melhor ajuste no sentido de mnimos-quadrados
Prof. Adade