Post on 30-May-2018
8/9/2019 03 - Matlab
1/25
Matlab - Manual para a Disc iplina deDesenho Assistido por Computador
M E S T R A D O I N T E G R A D O E M E N G . E L E C T R O T C N I C A E D E C O M P U T A D O R E S
Departamento de Engenharia Electrotcnica2009
8/9/2019 03 - Matlab
2/25
8/9/2019 03 - Matlab
3/25
3
ndice
1 In t roduo 5 1.1 rea de Trabalho 5 1.2 Bib l io tecas do Mat lab 5 1.3 Comandos Bs icos de Mat lab 6
2 Tipos de dados em Mat lab 7 2.1 Matr izes 7 2.2 Constant es do Mat lab 9 2.3 Var ive is do Mat lab 9 2.4 Exemplos 9
3 Programao em Mat lab 11 3.1 Expresses 11 3.2 Operaes Bsica s Sobre Matr izes 11 3.3 Controlo da Sequncia do Programa 12 3.4 Funes E lementares 15 3.5 Exemplo 16
4 Ficheiros 17 4.1 O Edi tor do Mat lab 17 4.2
Guardar Var iveis em Ficheiros 18
4.3 Ler Var iveis de F icheiros 18
5 Visual izao de Dados 19 5.1 Grf icos a Duas Dimenses 19 5.2 Grf icos a Trs Dimenses 20
6 Bibl iograf ia 25
8/9/2019 03 - Matlab
4/25
8/9/2019 03 - Matlab
5/25
5
1 IntroduoDe acordo com os seus autores, o Matlab (deMATrix LABoratory ) uma linguagem de altodesempenho para computao tcnica, sendo vocacionado para aplicaes to diversas comoprogramao, desenvolvimento de algoritmos, aquisio de dados, modelizao, simulao,prototipagem, anlise de dados, e desenvolvimento de interfaces grficas, entre outras.
De facto, o Matlab uma ferramenta poderosa no mbito da Engenharia Electrotcnica, maisconcretamente na sua vertente de Desenho Assistido por Computador, englobando umambiente de desenvolvimento, vastas bibliotecas de funes matemticas, uma linguagem deprogramao de alto nvel, e extensas possibilidades a nvel grfico.
O presente manual pretende servir apenas de breve introduo a esta ferramenta, estandodisponvel na internet uma completssima bibliografia (www.mathworks.com) para quem desejeou necessite de tirar partido das inmeras possibilidades que oferece o Matlab.
Existem, principalmente a partir da sua verso 6, vrias formas de aceder a certos comandos oufunes do Matlab, seja atravs de cones, seja atravs de menus. Deixa-se contudo ao leitor atarefa de explorar este aspecto.
1.1 rea de Trabalho
A rea de trabalho parte constituinte do ambiente de desenvolvimento, assim como a linha decomandos, e contm as variveis criadas durante a sesso de Matlab. Para se visualizar todasestas variveis, deve-se introduzir na linha de comando:
>> who
Este comando mostra todas as variveis criadas pelo utilizador, pelo que no incio de uma sessono retornar nada, uma vez que nenhuma foi ainda criada. Note-se que os caracteres >>indicam o incio da linha de comando (prompt), no constituindo parte do comando em si. Poresta razo, e visando evitar equvocos, deste ponto em diante esses caracteres sero omitidos.
A janela onde se encontra a linha de comandos chamada a janela de comandos (commandwindow). O Matlab permite aceder ao historial de comandos introduzidos atravs das setas cima ebaixo. Para se ir directamente para um comando j introduzido, pode-se escrever a sua primeiraletra e ento carregar na tecla cima.
1.2 Bibliotecas do Matlab
O Matlab apresenta uma srie de comandos, operadores e funes primitivas, organizadas porcategorias, assim como rotinas especficas de diversas reas da engenharia, organizadas embibliotecas (toolboxes ). Estas categorias e bibliotecas so designadas por tpicos primrios. Ocomando
help
permite visualizar todos estes tpicos, que correspondem a directorias do Matlab.
Alguns tpicos primrios so:
general comandos gerais
8/9/2019 03 - Matlab
6/25
6
ops operadores e caracteres especiais
control biblioteca de sistemas de controlo
daq biblioteca de aquisio de dados
signal biblioteca de processamento de sinais
nnet biblioteca de redes neuronais
pde biblioteca de equaes s diferenas parciais
optim biblioteca de optimizao
stats biblioteca de estatstica
Outras bibliotecas abrangem campos to variados como aquisio e processamento de imagem,
bio-informtica, telecomunicaes, finanas, lgica difusa, matemtica simblica, identificaode sistemas e realidade virtual.
O comando
help item
fornece informao especfica acerca de item. Se este for um tpico primrio, ento visualizar--se-o os contedos do tpico, se for um comando, ento ser mostrada informao detalhadasobre este.
1.3 Comandos Bsicos de Matlab
Alguns comandos bsicos de Matlab so
clear apaga todas as variveis do espao de trabalho
clc limpa a janela de comandos
ver informao sobre a verso de Matlab utilizada
demo permite visualizar demonstraes do Matlab
O operador percentagem, %, permite inserir comentrios aps comandos do Matlab. Tudo o queesteja direita desse operador ser ignorado.
8/9/2019 03 - Matlab
7/25
7
2 Tipos de dados em Matlab2.1 Matrizes
Em Matlab os dados so armazenados essencialmente como matrizes. Desta forma, pode-se
pensar em alguns casos particulares, nomeadamente as matrizes 1x1 escalares ou asformadas s por uma linha ou uma coluna vectores. Alguns exemplos de matrizes so:
MatrizA, 2x3:
075
134A
Escalar b, ou matriz 1x1: 0,5b
Matriz linha c, 1x4: 8243c
Existem vrias formas de especificar matrizes, para que se possa, posteriormente, manipul-las.Pode-se introduzir todos os valores dos seus membros, l-las a partir de ficheiros, ou cri-lasatravs de funes, sejam estas do Matlab sejam definidas pelo utilizador.
Para introduzir explicitamente a matriz A anteriormente definida, devem-se usar parntesisrectos a delimitar os seus elementos. Estes sero separados por espaos dentro da mesmalinha, sendo estas finalizadas por ponto e vrgula. Ou seja, na linha de comando do Matlabintroduzir-se-ia:
A=[4 3 1; 5 7 0];
O ponto e vrgula no final da instruo impede que o Matlab mostre os dados introduzidos.
Caso no se coloque, seria visualizado o seguinte:
A =
4 3 1
5 7 0
2.1.1 Matrizes Elementares
O Matlab tem definidas algumas funes que criam matrizes elementares (tpico elmat,matrizes elementares e manipulao de matrizes).
Existem, por exemplo:
zeros: cria uma matriz em que todos os elementos so nulos. As possveis formas so
zeros(N): matriz NxN de zeros
zeros(N,M): matriz NxM de zeros
ones: cria uma matriz em que todos os elementos so a unidade. Admite as mesmas formasda funo zeros.
8/9/2019 03 - Matlab
8/25
8
eye: matriz identidade
eye(N): matriz identidade NxN
eye(N,M): matriz NxM, com 1 na diagonal e 0 nos outros elementos
2.1.2 Acesso a Elementos Individuais numa Matriz
Para aceder ao elemento da linha i, colunaj, basta simplesmente introduzir o comando A(i,j).Assim, com A(1,2)e A(2,3) obter-se-ia, respectivamente, 3 e 0.
Caso se queira aceder a um elemento fora das dimenses da matriz, o resultado ser umamensagem de erro. Por outro lado, se se definir um novo elemento, numa posio que exceda asdimenses da matriz, ento esta ser redimensionada, por forma a incluir esse novo elemento,sendo as novas posies preenchidas com 0. Por exemplo, fazendo A(3,5)=5, resulta em:
A =
4 3 1 0 0
5 7 0 0 0
0 0 0 0 5
2.1.3 O Operador :
O operador : (dois pontos) tem uma funo muito abrangente em Matlab. Por exemplo, ainstruo
d = 1:10
cria uma matriz d, linha, em que os seus elementos so
1 2 3 4 5 6 7 8 9 10
Para se obter um espaamento no unitrio entre elementos, por exemplo 0,1, desde 1 at 2,deve-se fazer:
d = 1:0.1:2
obtendo-se
1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00
Note-se que as casas decimais so separadas por um ponto. O operador : tambm pode serutilizado para aceder a pores de uma matriz. Se se quisesse obter a primeira linha da matriz A,aps a redefinio do ponto anterior, far-se-ia:
A(1,:)
obtendo-se
4 3 1 0 0
Para se obter a poro entre a segunda e quarta colunas, na segunda linha, o comando seria:
8/9/2019 03 - Matlab
9/25
9
A(2,2:4)
e o resultado
7 0 0
2.2 Constantes do Matlab
O Matlab fornece algumas constantes muito teis, nomeadamente:
pi : 3.14159265358979
i : unidade imaginria, 1
j : o mesmo que i
eps : preciso relativa da vrgula flutuante, isto , a distncia de 1 ao prximo decimal
realmin : menor nmero decimal definido
realmax : maior nmero decimal definido
Inf : infinito, valor que gerado aps uma diviso por zero ou numa operao queexcede realmax
NaN :Not-a-number, valor gerado quando se tenta calcular 0/0ou Inf/Inf
2.3 Variveis do Matlab
O Matlab cria automaticamente a varivel ans (de ANSwer ), que guarda o valor da ltimaexpresso calculada, quando este no tiver sido atribudo a nenhuma outra varivel.
2.4 Exemplos
Apresentam-se a seguir alguns exemplos de aplicao dos conceitos estudados.
Criao de um vect or teta c om valores entre 0 e 2*, em intervalos de /4
teta=0:pi/4:2*pi
Definio do complex o 5+j9
5+9j ou 5+9i
Criao de uma matr iz de 5x6 c om -6 em t odos os elementos
-6*ones(5,6)
8/9/2019 03 - Matlab
10/25
8/9/2019 03 - Matlab
11/25
11
3 Programao em MatlabA programao em Matlab simultaneamente simples e poderosa. Abrange diversos aspectos(Simulink, Graphical User Interfaces), mas aqui ser apenas referida a programao atravs da linhade comando.
3.1 Expresses
As expresses em Matlab podem envolver matrizes inteiras, ao invs de obrigar a trabalharapenas elemento a elemento, como acontece em muitas linguagens de programao.
3.1.1 Variveis
As variveis em Matlab no necessitam de ser explicitamente declaradas, pois, como se viuanteriormente, so geralmente do tipo matriz (de reais e/ou complexos). O seu nome forma-secom uma letra, seguida de um qualquer nmero de letras, dgitos ou travesso inferior(underscore). feita a distino entre maisculas e minsculas.
3.1.2 Nmeros
Os nmeros podem ser introduzidos como inteiros (apenas dgitos), como negativos (com umsinal de menos a preced-los), como decimais (com um ponto a separar a parte inteira da partefraccionria), como complexos (seguidos de i ou j ), ou em notao cientfica (em que aspotncias de 10 se indicam com a letra e). Assim, pode-se ter, por exemplo:
2546 -465.003 4.643 87i 343.54j 1.5e-5
3.1.3 Operadores Aritmtic os
Os operadores aritmticos, definidos com as precedncias habituais, so a soma (+), a subtraco(-), a multiplicao (*), a diviso (/), e a potenciao ().
3.2 Operaes Bsicas Sobre Matrizes
Ao contrrio de outras linguagens de programao, o Matlab permite realizar operaes sobrematrizes inteiras com comandos simples.
Transposta
A transposta da matriz A obtm-se pelo operador apstrofe. Assim, para a matriz anteriormente
definida, o comandoA'
tem como resultado
4 5 0
3 7 0
1 0 0
0 0 0
0 0 5
8/9/2019 03 - Matlab
12/25
12
Inversa
A inversa dada pela funo inv. Se H for uma matriz quadrada (note-se que no se podeminverter matrizes no quadradas) de determinante no nulo, ento
inv(H)
fornece a matriz que multiplicada esquerda ou direita por H resulta na matriz identidade.Note-se que a diviso de duas matrizes quadradas da mesma dimenso, por exemplo H/G,corresponde expresso H*inv(G).
Determinante
O determinante da matriz quadrada H dado por
det(H)
Dimenso
A dimenso da matriz A obtm-se atravs de
size(H)
A resposta ser o nmero de linhas e de colunas.
Operadores
Os operadores que podem ser aplicados a matrizes incluem, alm da adio, subtraco,multiplicao e diviso, a multiplicao elemento a elemento (.*), a diviso elemento a elemento
(./ ), e a potenciao elemento a elemento (. ). Por exemplo, a multiplicao elemento aelemento significa que o resultado de
Z=X.*Y
ser uma matriz Z, em que cada elemento Z(i,j) dado por
Z(i,j)=X(i,j)*Y(i,j)
e no pela regra habitual de multiplicao de matrizes, que equivaleria expresso
Z=X*Y
3.3 Controlo da Sequncia do Programa
O Matlab apresenta diversos comandos para controlar a sequncia dos programas, como porexemplo os ciclos forou o teste de condies if.
3.3.1 Ciclos
Os ciclos permitem repetir instrues um nmero pr-determinado de vezes, ou at que umacondio se verifique.
8/9/2019 03 - Matlab
13/25
13
Ciclo for
Este ciclo consiste em atribuir um valor inicial a uma varivel, executar instrues especificadas,e incrementar a varivel, ou de 1, por defeito, ou de um passo determinado. Isto repete-se atque seja atingido ou ultrapassado um valor final permitido. O ciclo termina com a instruoend
., e a sua sintaxe :for varivel = valor_inicial : [passo :] valor_final,
{instrues}
end
Como referido, caso o passo no seja especificado, ter, por defeito, valor unitrio.
Por exemplo, para preencher um vector p de dez elementos com uma sequncia de potncias de2 (no esquecer que a posio genrica i do vector p se acede atravs de p(i) ), poder-se-ia
fazer:for i = 1 : 10,
p(i) = 2^(i-1);
end
O vector p seria assim constitudo por:
1 2 4 8 16 32 64 128 256 512
Para construir um vector de 100 elementos representando dois perodos de uma sinuside, ter-se-ia, por exemplo:
wt = 0 : 4*pi/99 : 4*pi % cria um vector de 100 pontos
% equidistantes, de 0 a 4*pi
for i = 1 : 100,
s(i) = sin(wt(i)); % a funo sin devolve o seno do argumento
end
Note-se que este exemplo pretende ser apenas meramente ilustrativo do funcionamento do ciclofor, j que o vector s poderia ter sido criado, de forma mais compacta, atravs de:
s = sin(wt)
O vector s est representado na Figura 3-1.
Comandos Relacionados
Outros comandos relacionados com ciclos, que se deixa a cargo do leitor a tarefa de descortinaro seu funcionamento, so os comandos while, continue, e break.
8/9/2019 03 - Matlab
14/25
14
0 2 4 6 8 10 121
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Figura 3-1: Sinal sinusoidal
3.3.2 Testes Lgicos
Os testes lgicos consistem na avaliao do valor ou estado de expresses, e na execuo deinstrues conforme esse valor ou estado.
Teste if
O teste if avalia uma expresso e executa um grupo de instrues se essa for verdadeira. Asinstrues a executar se a expresso tiver valor lgico falso podem opcionalmente ser definidasatravs do comando else. O comando end termina o teste, cuja sintaxe :
if expresso
{instrues_se_expresso_verdadeira}
else
{instrues_se_expresso_falsa}
end
Por exemplo, para o vector s anteriormente definido, se se quisesse definir a sinuside s nossemi-ciclos positivos, e nos negativos for-la a zero (sinuside simplesmente rectificada), a suadefinio passaria a ser, por exemplo:
for i=1:100,
a=sin(wt(i)); % variavel auxiliar
if a>0 % testa se o valor calculado e positivo
s(i)=a;
else % caso em que o valor e menor ou igual a 0
s(i)=0;
end
end
8/9/2019 03 - Matlab
15/25
15
0 2 4 6 8 10 121
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Figura 3-2: Sinuside simplesmente rectificada
A sinuside simplesmente rectificada est representado na Figura 3-2.Comandos Relacionados
switch
3.4 Funes Element ares
O Matlab tem definidas vrias funes elementares no tpico elfun (de ELementary FUNctions),de que a seguir se referem alguns exemplos.
Funes Trigonomtr ic as
sin(X) seno, em radianos, dos elementos da matrizX
cos(X) coseno, em radianos, dos elementos da matriz X
tan(X) tangente, em radianos, dos elementos da matriz X
Exponenciais e Logaritm os
exp(X) exponencial dos elementos da matriz X; se X for uma matriz decomplexos, X=A+jB, ento retorna exp(A)*(COS(B)+i*SIN(B))
log(X) logaritmo natural dos elementos da matriz X
log10(X) logaritmo de base 10 dos elementos da matriz X
sqrt(X) raiz quadrada dos elementos da matriz X
Outras Funes
abs(X) valor absoluto dos elementos da matriz X;se X for uma matriz decomplexos, ento retorna a magnitude ou mdulo dos elementosde X
angle(X) fase, em radianos, dos elementos da matriz de complexos X
8/9/2019 03 - Matlab
16/25
16
real(X) parte real dos elementos da matriz de complexos X
imag(X) parte imaginria dos elementos da matriz de complexos X
3.5 Exemplo
Sero agora apresentados um conjunto de instrues que permitem criar as funes
t
t
t
ety
ety
tety
3
2
1 cos
Estas funes, como ter oportunidade de verificar noutras disciplinas do curso, estointimamente ligadas com a resposta de circuitos elctricos com uma resistncia, uma bobina eum condensador (circuitos RLC).
t=0:0.1/999:0.1 % cria vector de tempo, com 1000 elementos
tau=0.02; w=2*pi*50; % variveis auxiliares tau e w
for i=1:1000,
y1(i)=exp(-t(i)/tau)*cos(w*t(i));
y2(i)=exp(-t(i)/tau);
y3(i)=-exp(-t(i)/tau);
end
As funes obtidas esto representadas na Figura 3-3.
Figura 3-3: Funes representando a resposta de um circuito RLC
2
3
1
8/9/2019 03 - Matlab
17/25
17
4 Ficheiros A utilizao e gesto de ficheiros em Matlab apresenta aspectos muito importantes. Aprogramao atravs da linha de comandos pode-se tornar exasperante, pois um simples enganonum carcter pode tornar inteis os comandos anteriormente introduzidos, se se estiver, por
exemplo, a meio de um ciclo. Este problema ultrapassado se os comandos forem gravadosnum ficheiro, e este corrido a partir do Matlab. Por outro lado, os valores de determinadas variveis de interesse, ou de todo o espao de trabalho, podem ser guardadas e utilizadasposteriormente.
4.1 O Editor do Matlab
O editor do Matlab permite no s a criao de ficheiros com cdigo de programao, mastambm correr os programas e fazer a sua depurao (debug).
Um ficheiro de Matlab criado atravs do comando edit. Este comando, por si s, abre um
editor, onde se pode escrever um programa, para posterior utilizao. O comandoedit nome
abre o ficheiro nome.m para ser editado. Para correr um programa gravado num ficheiro, bastaintroduzir na linha de comando o seu nome, neste caso:
nome
Note-se que necessrio que a directoria de trabalho coincida com aquela onde est o ficheiro(ou que esta esteja indicada napath). Na Figura 4-1 apresenta-se o editor do Matlab aberto paraum ficheiro existente.
Figura 4-1: Editor do Matlab
8/9/2019 03 - Matlab
18/25
18
4.1.1 Gesto de Directorias
Para se saber qual a directoria de trabalho, introduz-se
cd
Este comando permite ainda as seguintes possibilidades:
cd .. muda para a directoria (ou pasta, ou folder ) imediatamente acima;repare que deve sempre existir um espao entre o comando cd equalquer opo a seguir
cd direct muda para a subdirectoria direct, que se encontra dentro dadirectoria de trabalho actual
cd \ muda para a directoria raiz (root)
cd d: muda para o disco dSe a directoria incluir caracteres especiais (espaos, acentos, etc.), ento dever ser usada aseguinte forma, por exemplo para a pasta Os meus documentos:
cd(\windows\Os meus documentos)
Para listar os ficheiros da directoria de trabalho, utiliza-se o comando dir. Por exemplo, ocomando
dir *.m
lista apenas os ficheiros cuja extenso seja m.4.2 Guardar Variveis em Ficheiros
As variveis do ambiente de trabalho podem ser gravadas atravs da funo save (e lidasposteriormente com load). Existem assim as seguintes opes:
save nome grava todas as variveis para o ficheiro nome.mat
save nome X grava a varivel X no ficheiro nome.mat
save nome X Y Z grava as variveis X, Y e Z no ficheiro nome.mat
4.3 Ler Variveis de Ficheiros
Como foi referido acima, a recuperao de variveis a partir de ficheiros faz-se com a funoload:
load nome recupera todas as variveis gravadas no ficheiro nome.mat
load nome X recupera apenas a varivel X, gravada no ficheiro nome.mat
load nome X Y Z recupera as variveis X, Y e Z, gravadas no ficheiro nome.mat
8/9/2019 03 - Matlab
19/25
19
5 Visualizao de DadosUm dos pontos fortes do Matlab a facilidade de visualizao grfica de dados, tanto em duascomo em trs dimenses. Estes grficos so visualizados numa janela independente, designadafigura (figure), como a representada na Figura 5-1, correspondendo ao exemplo da Seco 3.5.Como se pode observar, existem vrios cones e menus, que permitem aceder a diversas opessobre o aspecto e escalas do grfico, ou mesmo grav-lo sob diferentes formatos.
Figura 5-1: Janela de visualizao de grficos
5.1 Grficos a Duas Dimenses
O comando que permite visualizar grficos a duas dimenses, com escalas lineares, o comando
plot. Este apresenta diferentes possibilidades:plot(X,Y) desenha o grfico cujas abcissas so os elementos do vector Xe as
ordenadas os elementos do vectorY
plot(X) desenha o grfico cujas abcissas so os elementos do vector Xe asordenadas os seus ndices
plot(X,Y,X,Z) desenha o grfico cujas abcissas so os elementos do vector Xe asordenadas os elementos do vectorYe os do vectorY
O comando plot permite ainda especificar a cor de cada curva desenhada, mas esta tarefa podeser acedida directamente a partir da janela do grfico, pelo que no ser por ora explanada.
Visualizao de Curvas no Mesmo Sistema de Eixos
Como referido, atravs de plot(X,Y,X,Z,X,) podem-se desenhar inmeros grficos tendoeixos comuns, dados pelo vector X. Note-se que todos os vectores envolvidos tmobrigatoriamente de apresentar a mesma dimenso.
Visualizao de Curvas em Diferentes Sistem as de Eixos
Para se visualizar em simultneo vrios grficos na mesma janela, utiliza-se o comando subplot.
Este divide a janela numa matriz NxM, ao mesmo tempo que acede posio em que sepretende desenhar o respectivo grfico. Voltando ao exemplo da Seco 3.5, suponha-se que se
8/9/2019 03 - Matlab
20/25
20
pretendia desenhar, separadamente, os grficos dos sinaisy1,y2 ey3, e um grfico conjunto dessesmesmos sinais. Antes de mais, a sintaxe do comando subplot :
subplot(N,M,i) divide a janela em Nlinhas e Mcolunas, e activa a i-sima posiopara desenhar o grfico; as posies contam-se da esquerda para a
direita e de cima para baixoNote-se que o comando subplot deve preceder um plot, que efectivamente desenhar osgrficos. Continuando com o exemplo, os comandos seriam:
subplot(2,2,1) % selecciona a primeira posio da matriz 2x2
plot(t,y1) % desenha a curva y1 na posio seleccionada
subplot(2,2,2) % selecciona a segunda posio
plot(t,y2)
subplot(2,2,3) % selecciona a terceira posio
plot(t,y3)
subplot(2,2,4) % selecciona a quarta posio
plot(t,y1,t,y2,t,y3)
O resultado destas instrues a janela representada na Figura 5-2.
Altera o das Propriedades dos Grficos
As propriedades dos grficos (espessura e cor das linhas, ttulo, texto, escalas, fontes e dimensodo texto, tipo de eixos, etc.) podem ser alteradas, quer atravs de comandos, querinteractivamente. S esta ltima forma ser aqui sumariamente descrita.
Para se poder alterar as propriedades do grfico, deve-se primeiro entrar em modo de edio(edit mode ). Isso feito activando o cone respectivo, representado na Figura 5-3. Aps estaoperao, basta clicar duas vezes na curva (estilo, espessura, cor) ou nos eixos (ttulo, legendados eixos, limites, tipo de grfico). Podem ainda ser inseridos texto, setas e segmentos, atravsdos cones respectivos, tambm representados na Figura 5-3.
5.2 Grficos a Trs Dimenses
O Matlab permite a visualizao de superfcies e de funes de duas variveis, f(x,y)z , ouseja, de grficos tridimensionais. Isto pode ser feito atravs das funes mesh (superfcieformada por segmentos unindo pontos adjacentes, geralmente conhecida por wire-frame surface)ou surf (superfcie formada por polgonos facetados unindo pontos adjacentes).
Se Z(i,j) for uma matriz em que cada elemento corresponde altura de uma superfcie sobreuma grelha (i,j), ento os comandos seguintes permitiro visualizar essa superfcie:
mesh(z)
surf(z)
8/9/2019 03 - Matlab
21/25
21
Figura 5-2: Comando subplot
Figura 5-3: Alterao das propriedades de uma figura
A visualizao de funes f(x,y)z implica adicionalmente a definio dos domnios, isto ,das matrizes X e Y, alm da matriz Z correspondente. Para tal, pode-se recorrer funo
[X,Y] = MESHGRID(dx,dy)
que cria as matrizes X e Y, correspondentes aos vectores domnio dx e dy, adequadas a seremutilizadas pelas funes mesh e surf. Se os domnios forem iguais, pode-se utilizar a forma maiscompacta
[X,Y] = MESHGRID(d)
A utilizao destas funes ser mais facilmente descrita atravs de um exemplo. Assim, admita-se que se pretendia visualizar a funo
22
22sin,sinc
yx
yxyxz
com domnios entre -10 e 10, tanto em x como em y. Uma forma possvel de o fazer seria:
Modo de edio
Inserir texto
Inserir setas
Inserir segmentos
8/9/2019 03 - Matlab
22/25
22
d=-10:.5:10; % definicao do dominio, isto e, um vector de -10 a
% 10, com um passo de 0.5
[X,Y]=meshgrid(d); % definicao das matrizes que serao utilizadas para
% construir a funcao z=sinc(x,y)
R=sqrt(X.^2+Y. 2)+eps; % definicao de uma matriz auxiliar. Note-se a
% potenciacao tem que ser feita elemento a
% elemento. A constante do Matlab eps foi
% adicionada apenas para evitar a multiplicacao
% por zero, no passo seguinte, e evitar uma
% mensagem de aviso.
Z=sin(R)./R; % definicao da matriz Z
Uma vez definidas as matrizes X, Y e Z, introduzir-se-iam os comandos mesh(X,Y,Z) ousurf(X,Y,Z), consoante o tipo de superfcie pretendida. O resultado destes comandos pode-seobservar nas Figura 5-4 e Figura 5-5.
Altera o das Propriedades dos Grficos
O modo de edio permite alterar inmeras propriedades da superfcie, como sejam aluminosidade, cor das faces e dos segmentos, vista, perspectiva, etc. Deixa-se ao leitor a tarefa deexplorar essas possibilidades, representando-se na Figura 5-6 um exemplo de alterao daspropriedades da superfcie anteriormente definida.
Figura 5-4: Exemplo da funo mesh
8/9/2019 03 - Matlab
23/25
23
Figura 5-5: Exemplo da funo surf
Figura 5-6: Alterao das propriedades de uma superfcie
8/9/2019 03 - Matlab
24/25
8/9/2019 03 - Matlab
25/25
6 BibliografiaAdicionalmente sumria introduo ao Matlab apresentada neste manual, encontra-se, como jreferido, uma extensa bibliografia em www.mathworks.com, no formato pdf, da qual sedestacam:
Geting Started with MATLAB, Version 6.
Using MATLAB Graphics, Version 6.