Escolar Documentos
Profissional Documentos
Cultura Documentos
Elaborao/ Redao: Leonardo Pereira Bastos Reviso: Prof. Celso Munaro Data: maro de 1997 Esta apostila foi elaborada dentro do projeto REENGE/DEL, cujo objetivo melhorar as condies de ensino do curso de Engenharia Eltrica via suporte computacional adequado.
3. 4. 5. 6. 7. 8. 9.
Elementos da Matriz Linhas de Comando e Variveis do MATLAB Obtendo Informaes do Espao de Trabalho O Comando Help Finalizando e Salvando o Espao de Trabalho Nmeros e Expresses Aritmticas Nmeros Complexos e Matrizes
10. Formatos de Sada 11. Funes 3. 4. Operaes com Matrizes Operaes com Vetores 1. 2. 3. 5. Operaes Relacionais Operaes Lgicas Funes Matemticas
6.
Introduo aos Grficos 1. 2. 3. 4. 5. 6. 7. Funes Elementares de Plotagem Criando um Grfico Estilos de Linha, Marcadores e Cor Adicionando Linhas a um Grfico Existente Dados Imaginrios e Complexos Plotando Matrizes Copiando Grficos
2. 3. 4. 1. 2. 3. 5. 1. 2. 3. 6. 1. 2. 3. 4. 5. 7. 1. 1. 2. 8. 9. 1. 2. 3. 4. 5.
Processamento de Sinais Filtro de Dados Funes de Funo Integrao Numrica Equaes No-Lineares e Funes de Otimizao Funes de Equaes Diferenciais Fluxo de Controle Loop FOR Loop WHILE Comandos IF e BREAK Arquivos-M: Scripts e Funes Arquivos Script Arquivos Funo Variveis Globais Strings de Texto A Funo eval Arquivos de Disco Importando e Exportando Dados Importando Dados Exportando Dados do MATLAB O Debugger do MATLAB Arquivos E/S Abrindo e Fechando Arquivos Leitura de Arquivos com Dados em Binrio Escrevendo em Arquivos com Dados em Binrio Escrevendo Arquivos de Texto Formatados e Strings Lendo Arquivos de Texto Formatados e Strings
1. 2. 3. 4. 5. 6. 7. 8. 3. 1. 2. 3. 4. 5. 4. 1. 2. 5. 1. 2. 3. 4. 5. 6.
Grficos de Linhas Meshgrid Grficos de Contorno Grficos de Pseudocores Grficos de Superfcies e Mesh Matrizes de Cores Superfcies Paramtricas Variaes de surf e mesh Funes Grficas de Propsito Geral Ponto de Vista Controlando os Eixos com a funo axis Tornando Visvel Linhas e Superfcies Escondidas Subgrficos Figura Mapas de Cores e Controle de Cores Mostrando Mapas de Cores Alterando os Mapas de Cores Manuseamento de Grficos Objetos Grficos Handle de Objetos Funes de Criao de Objetos Propriedades dos Objetos Especificando e Alterando as Propriedades dos Objetos Utilizando as Funes set e get 82
PARTE I
Informaes Bsicas
Esta primeira parte traz os captulos de 1 a 6, e contm as informaes necessrias para se comear a trabalhar com MATLAB. Aps esta parte o leitor deve estar apto a declarar variveis no prompt, seja do tipo vetor ou matriz, realizar operaes com estas variveis, utilizar o comando Help e plotar grficos.
alguma toolbox. Responda no. A mesma resposta deve ser dada com respeito aos compiladores. Quando a instalao terminar, insira o disco 6 e copie o diretrio control para o caminho c:/matlab/toolbox/matlab/. Desta forma, a toolbox de controle ficar disponvel no caminho c:/matlab/toolbox/matlab/control/ Existe um arquivo no diretrio principal que define os caminhos que o MATLAB segue (em quais subdiretrios o MATLAB procura os arquivos ou funes necessrias); este arquivo uma espcie de autoexec.bat do MATLAB. Este arquivo o matlabrc.m; ele pode ser modificado em qualquer editor de texto de modo a definir o caminho para o diretrio da toolbox de controle. Os caminhos so definidos na seguinte parte do arquivo matlabpath([... C:\MATLAB\toolbox\local,... ;C:\MATLAB\toolbox\matlab\control,... (linha adicionada) ;C:\MATLAB\toolbox\matlab\datafun,... ;C:\MATLAB\toolbox\matlab\elmat,... ]); onde a linha que deve ser adicionada est indicada acima.
Obs.: O MATLAB utiliza, geralmente, o Bloco de Notas do Windows para que se possa criar ou alterar arquivos .m. Por isso, quando a instalao do MATLAB terminar, deve-se fazer o seguinte: - No Windows 3.x No gerenciador de arquivos, clique uma vez sobre qualquer arquivo com extenso .m e, no menu Arquivo, escolha Associar. No item Arquivos com extenso coloque m (extenso dos arquivos que o MATLAB utiliza). No item Associar com escolha o Bloco de Notas. Clique em OK e pronto. - No Windows 95 No Explorer, clique no menu Exibir e escolha Opes. Escolha em tipos de arquivo o cone Novo tipo. Onde estiver Descrio do tipo escreva MATLAB; onde estiver escrito Extenso associada escreva m. Em seguida escolha Novo e preencha da seguinte forma: Aes: Abrir Aplicativo utilizado para executar a ao: c:\windows\notepad.exe Clique em OK at que todas as janelas sejam fechadas.
1.2 Diretrio
O diretrio MATLAB composto de vrios subdiretrios. Os dois que possuem maior importncia a nvel de conhecimento do aluno so os descritos abaixo: /bin /toolbox/matlab Diretrio em que se encontra o arquivo matlab.exe, arquivo de execuo do MATLAB. Diretrio onde esto localizados os subdiretrios de toolboxes (/matlab, /control, etc.).
>> plo
A tabela abaixo lista as teclas que podem ser usadas para edio na linha de comandos: Ctrl-P Ctrl-N Ctrl-B Ctrl-F Delete Ctrl-L Ctrl-R Ctrl-A Ctrl-E Ctrl-U Ctrl-D Ctrl-K Chama uma linha de comando anterior. Chama uma linha de comando posterior. Move o cursor um caractere esquerda. Move o cursor um caractere direita. Move o cursor esquerda, apagando um caractere. Move o cursor uma palavra esquerda. Move o cursor uma palavra direita. Move o cursor para o comeo da linha. Move o cursor para o final da linha. Cancela a linha. Apaga o caractere que est sobre o cursor. Apaga at o final da linha.
>> A = 1 2 3 4 5 6 7 8 9
MATLAB salva a matriz A para que possa ser utilizada posteriormente. Pode-se, tambm, entrar matrizes de arquivos de extenso .m. Se um arquivo com o nome de matriz.m contm as trs linhas de texto
A = [ 1 2 3 4 5 6 7 8 9 ]
ento o comando
>> matriz
atribui matriz A os dados correspondentes.
Pode-se construir grandes matrizes utilizando matrizes menores como elementos. Por exemplo, para acrescentar uma nova linha matriz A:
>> A = 1 2 3 4 5 6 7 8 9
faz com que retorne as trs primeiras linhas e todas as colunas da matriz original A para a matriz A.
varivel = expresso
ou simplesmente
expresso
Podem ser compostas expresses com operadores e outros caracteres especiais, com funes, e com nomes de variveis. A execuo da expresso produz uma matriz. A matriz mostrada na tela e assume o nome da varivel definida na linha de comando para que possa ser utilizada em uma outra situao. Se for omitido o nome da varivel e o sinal =, MATLAB cria automaticamente uma varivel com o nome ans. Por exemplo, digitando a expresso
>> who
Para uma lista de funes relacionadas a um determinado diretrio, digita-se help seguido pelo nome do mesmo. Aparece uma lista de comandos, funes e smbolos especficos do MATLAB. O comando help seguido por estes comandos ou funes fornece informaes sobre como utiliz-los em uma linha de comando. Com o comando
>> save
Este comando salva todas as variveis em um arquivo em disco chamado matlab.mat. Na prxima vez que MATLAB chamado, pode-se executar o comando load para restaurar o espao de trabalho com as variveis de matlab.mat. Podem ser utilizados os comandos save e load em arquivos com outros nomes, ou salvar somente algumas variveis. O comando save temp salva as variveis em um arquivo de nome temp.mat. O comando
-99
+ * / \ ^
0.0001 9.6397238
adio subtrao multiplicao diviso por nmero direita diviso por nmero esquerda potncia
1.60210E-20
6.02252e23
2i
-3.141159i
3e5i
Podem ser construdas expresses com os operadores de aritmtica usuais e as regras de precedncia:
>> w = r*exp(i*theta)
Quando forem entrados nmeros complexos como elementos de matriz com os colchetes, deve ser evitado qualquer espao em branco. Uma expresso como 1 + 5*i, com espaos em volta do sinal +, representa dois nmeros. Isto tambm vlido para nmeros reais; uma espao antes do exponencial, como em 1.23 e-4, causa um erro. O nome de uma funo do MATLAB tambm pode ser usada como o nome de uma varivel. Quando utilizado como uma varivel, a funo original se torna indisponvel no espao de trabalho at que a varivel seja apagada.
2.11 Funes
Grande parte do poder do MATLAB atribudo ao extensivo conjunto de funes. Algumas das funes so intrnsecas ao MATLAB. Outras funes esto disponveis na biblioteca de arquivos-M distribudos com MATLAB (a toolbox do MATLAB). Ainda existem outras que so adicionadas por usurios individuais ou grupos de usurios, para aplicaes mais especializadas. Esta uma importante caracterstica do MATLAB; todo usurio pode criar funes que atuam da mesma forma que uma funo intrnseca do MATLAB.
A operao de multiplicao definida quando o nmero de colunas da primeira matriz for igual ao nmero de linhas da segunda matriz. Dependendo das dimenses envolvidas, o resultado pode ser uma matriz, um vetor ou, at mesmo, um escalar. O produto de um escalar por uma matriz resulta em todos os elementos da matriz multiplicados pelo escalar. Se A uma matriz quadrada no-singular, ento A\B e B/A corresponde formalmente a multiplicao esquerda e direita de B pela inversa de A; ou seja, inv(A)*B e B*inv(A), mas o resultado obtido diretamente sem o clculo da inversa. Em geral X = A\B uma soluo para A*X = B X = B/A uma soluo para X*A = B A diviso esquerda, A\B, definida sempre que B tiver o mesmo nmero de linhas que A. Dependendo se A for quadrada ou no, deve-se usar algum mtodo de fatorao. A diviso normal de um escalar pelo outro feita fazendo-se x/y. A expresso A^p eleva A a p-sima potncia e definida se A uma matriz quadrada e p um escalar. MATLAB trata expresses como exp(A) e sqrt(A) como operaes de vetores, definidas em cada elemento de A. As funes elementares de matrizes incluem poly - polinmio caracterstico det - determinante trace - trao da matriz exp - exponencial de cada elemento da matriz log - logaritmo de cada elemento da matriz sqrt - raiz quadrada de cada elemento da matriz MATLAB tambm calcula funes transcendentais, tais como exponencial e logaritmo da matriz. Estas funes especiais so definidas somente para matrizes quadradas. Uma funo matemtica transcendental interpretada como uma funo da matriz se um m acrescentado ao nome da funo. As trs funes abaixo so distribudas juntamente com o MATLAB expm - matriz exponencial logm - matriz logartmica sqrtm - matriz raiz quadrada
MATLAB compara os elementos correspondentes de cada matriz.; o resultado uma matriz de 1s e 0s, com 1 representando verdadeiro e 0 representando falso.
atan - arco-tangente atan2 - arco-tangente para os quatro quadrantes sinh - seno hiperblico cosh - cosseno hiperblico tanh - tangente hiperblica asinh - arco-seno hiperblico acosh - arco-cosseno hiperblico atanh - arco-tangente hiperblico
conj - complexo conjugado round - arredondamento para o inteiro mais prximo fix - arredondamento para o inteiro mais prximo de zero floor - arredondamento para o inteiro mais prximo de ceil - arredondamento para o inteiro mais prximo de + sign - funo sinal rem - remanescente ou mdulo gcd - mximo divisor comum lcm - mnimo mltiplo comum exp - exponencial de base e log - logaritmo natural log10 - logaritmo de base 10
x = 1 2 3 4 5
Pode-se utilizar incrementos diferentes da unidade como em
>> y = 0: pi/4: pi
que resulta em um vetor linha comeando em zero e terminando em (3.1416) com incremento de /4 (0.7854). Esta notao do dois pontos possibilita a fcil gerao de tabelas. Para se obter um vetor coluna basta transpor o vetor linha gerado. Outras funes para gerao de vetor incluem o logspace, o qual gera vetores espaados logaritmicamente, e o linspace, que permite que voc especifique o nmero de pontos ao invs do incremento.
plot - cria um grfico de vetores ou de colunas de matrizes loglog - cria um grfico utilizando escalas logartmicas para ambos os eixos semilogx - cria um grfico utilizando escala logartmica no eixo x e escala linear no eixo y semilogy - cria um grfico utilizando escala logartmica no eixo y e escala linear no eixo x Pode-se adicionar ttulo, nome aos eixos, linhas de grade e textos a qualquer grfico utilizando title - adiciona um ttulo ao grfico xlabel - define um nome para a varivel do eixo x ylabel - define um nome para a varivel do eixo y text - adiciona um texto em lugar especfico gtext - adiciona um texto ao grfico utilizando o mouse grid - ativa as linhas de grade
plot produz um grfico de y1 versus x e y2 versus x no mesmo eixo. O primeiro grupo de dados (y1) plotado com uma linha vermelha slida e o segundo grupo (y2) plotado com uma linha tracejada verde. A linha de comando abaixo adiciona um ttulo ao grfico e nome aos eixos:
c r g b w k
x + * : -. --
Por exemplo, plot(X,Y,b*) plota um asterisco azul em cada ponto de dado. Se no for especificada uma cor, a funo plot automaticamente utiliza as cores na ordem em que se apresentam na tabela acima. Desta forma, para uma linha somente, o grfico traado em amarelo.
>> plot(Z)
onde Z um vetor ou uma matriz complexa, equivalente a
>> plot(real(Z),imag(Z))
>> plot(Y)
Isto faz com que seja traada uma linha no grfico para cada coluna de Y. O eixo x assumido como sendo o ndice do vetor linha, 1:m, onde m o nmero de linhas de Y. Por exemplo, a linha de comando
>> plot(peaks)
produz um grfico com 49 linhas. A funo plot tambm aceita dois vetores ou matrizes como argumentos. Por exemplo,
>> plot(peaks,rot90(peaks))
produz um grfico da funo peaks em funo da transposta deslocada de 90° da mesma funo peaks. Em geral, se plot utilizada com dois argumentos, e se X ou Y possuem mais de uma linha ou coluna, ento: - Se Y uma matriz, e x um vetor, plot(x,Y) plota sucessivamente as linhas ou colunas de Y, utilizando diferentes cores ou tipos de linha para cada, em funo do vetor x. A orientao de linhas ou colunas selecionada de forma a possuir o mesmo nmero de elementos de x. Se Y quadrada, suas colunas que so usadas. - Se X uma matriz e y um vetor, plot(X,y) plota cada linha ou coluna de X em funo do vetor y. - Se ambos X e Y so matrizes de mesma dimenso, plot(X,Y) plota as colunas de X em funo das colunas de Y. Tambm pode ser utilizada a funo plot com vrios pares de matrizes no argumento.
>> plot(X1,Y1,X2,Y2,...)
Cada par X-Y plotado, gerando mltiplas linhas. Os diferentes pares podem ser de dimenses diferentes.
PARTE II
Informaes Avanadas
A segunda parte traz os captulos de 7 a 15, e contm tpicos mais avanados. Para avanar nesta parte o leitor deve ter compreendido a primeira parte. Os tpicos mais importantes e que o usurio deve ter o controle ao final desta parte dizem respeito a representao polinomial, a utilizao das opes de fluxo de controle e a criao de arquivos-M, sejam nas formas script ou funo.
std - desvio mdio sort - ordenar sum - soma dos elementos prod - produto dos elementos cumsum - soma acumulativa dos elementos cumprod - produto acumulativo dos elementos hist - histograma
Quando os argumentos forem vetores, no ir importar se o vetor orientado por linha ou por coluna. Se o argumento for uma matriz, as funes operaro orientadas por coluna. Desta forma, se voc aplicar a funo max a uma matriz, o resultado um vetor linha contendo o valor mximo de cada coluna.
>> eig(A)
que retorna os autovalores em uma vetor coluna. Se A real e simtrica, os autovalores so reais. Mas se A no simtrica, os autovalores frequentemente so nmeros complexos. Para se obter os autovalores e os autovetores de uma vez basta utilizar a seguinte linha de comando:
1 2 3 4 5 6 7 8 0
computada atravs de
conv - convoluo deconv - desconvoluo fft - transformada de Fourier ifft - transformada de Fourier inversa fftshift - troca os quadrantes da matriz Para argumentos bidimensionais, como matrizes, usam-se as funes modificadas: fft2 - fft bidimensional ifft2 - ifft bidimensional conv2 - convoluo bidimensional
>> y = filter(b, a, x)
filtra os dados contidos no vetor x com o filtro descrito pelos vetores a e b, criando os dados filtrados y. A estrutura do filtro pode ser descrita pela equao diferencial
H(z) = Y(z) = b(1) + b(2)z 1 +...+b(nb)z (na 1) X(z) 1 + a(2)z 1 +...+a(na)z (na 1)
A funo freqz retorna a resposta complexa em frequncia de filtros digitais.
f(x) =
pode ser encontrada no MATLAB, pois foi criada atravs de um arquivo-M chamado humps.m.
Pelo grfico, pode-se observar que a funo humps apresenta dois zeros. A localizao do zero prximo a x = 0
As funes do MATLAB para soluo de equaes diferenciais ordinrias so ode23 - mtodo de Runge-Kutta para 2a e 3a ordens
a a ode45 - mtodo de Runge-Kutta-Fehlberg para 4 e 5 ordens
comandos. Funes, ou arquivos funo, permitem adicionar novas funes funes j existentes. A maior parte do poder do MATLAB se deve ao fato de se poder criar novas funes que resolvam problemas especficos.
>> z = 1:99;
o valor mdio deste encontrado atravs do comando
>> mean(z)
que resulta em
ans = 50
As informaes abaixo so para o arquivo mean.m, mas o princpio vlido para todos os arquivos funo:
pela segunda linha do arquivo. Por exemplo, o arquivo-M angle.m contm 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. Quando se entra com help angle, as linhas 2, 3 e 4 so mostradas. Baseado nisto, a primeira linha de comentrios em qualquer arquivo-M deve conter o maior nmero de informaes possveis.
>> s = Hello
resulta em
s = Hello
O texto armazenado em um vetor, sendo um caractere por elemento. Neste caso,
end cria uma matriz a de dimenso n por n, onde cada elemento avaliado pela funo que est descrita por t.
dados para outros programas. Pode acontecer, ainda, do programa manipular dados diretamente de arquivos-MAT, o formato de arquivo que MATLAB utiliza.
Salvar os dados no formato ASCII utilizando 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. Gravar os dados em um formato especial utilizando fopen, fwrite e outras funes de E/S de baixo-nvel. Este mtodo til quando se quer gravar os dados em um formato de arquivo requerido por uma aplicao.
Adicionar o comando keyboard para que se possa examinar a situao do espao de trabalho no ponto onde keyboard foi inserido. Retirar a declarao de function para que os arquivos-M possam ser executados como script, tornando os resultados intermedirios disponveis no espao de trabalho principal. Utilizar o debugger do MATLAB. Os trs primeiros mtodos requerem a edio do arquivo-M. O ltimo mtodo foi introduzido a partir da verso 4.0 do MATLAB, e os seus comandos so dbstop dbclear dbcont dbdown dbstatus dbstep dbtype dbup dbquit Introduz uma interrupo Remove a interrupo Continua a execuo Muda o contexto do espao de trabalho local Lista todas as interrupes Executa uma ou mais linhas Lista os arquivos-M com o nmero das linhas Muda o contexto do espao de trabalho local Finaliza o modo debug
Antes de se ler ou escrever em um arquivo, deve-se abri-lo com o comando fopen, especificando o arquivo a ser aberto e a string de permisso. Por exemplo,
>> A = fread(fid,Inf)
l at o final do arquivo, preenchendo a matriz A como um vetor coluna. Omitir o tamanho do argumento produz o mesmo efeito. O
>> status = fclose(fid); A linha do ttulo combina com o especificador %s na primeira chamada fscanf. A segunda chamada entra com a tabela de valores, combinando alternadamente um valor decimal e um valor em ponto flutuante, como lido em cada linha da tabela, at que o fim do arquivo seja atingido. count retorna o nmero de valores combinados. Um argumento opcional controla o nmero de elementos lidos da matriz. Por exemplo, se fid faz referncia a um arquivo aberto contendo os strings de decimal ento
>> A = fscanf(fid,%5d,100);
faz a leitura de 100 valores decimais para um vetor coluna A, e
>> A = fscanf(fid,%5d,[10,10]);
faz a leitura de 100 valores decimais para uma matriz A 10x10.
PARTE III
Grficos Avanados
A ltima parte traz o captulo 16 que contm a parte avanada de grficos. So descritas as funes especiais para grficos 2-D e a introduo e as funes especiais para grficos 3-D. Os recursos de alterao de cores e plotagem de mais de um grfico em uma mesma figura tambm so mostrados. Por fim, so explicados os objetos de nvel inferior, essenciais ao entendimento da programao no MATLAB.
Um grfico scatter tambm um modo til de se apresentar os dados. As linhas de comando a seguir produzem um grfico scatter mostrando a relao entre a temperatura e a precipitao em cada ms:
>> month = [Jan; Feb; Mar; Apr; ... May; Jun; Jul; Aug; ... Sep; Oct; Nov; Dec]; >> plot(temp,precip,o) >> axis([28 80 2.5 5.2]) >> xlabel(temp) >> ylabel(precip) >> title(Boston)
A linha de comando axis, do exemplo, acima introduz espao extra ao grfico atravs do ajuste da escala dos eixos a valores maiores que a faixa de dados. Isto permite que o texto fique dentro do grfico.
polar - cria um grfico em coordenadas polares dos ngulos em funo dos raios quiver - cria um grfico do gradiente ou de outro campo do vetor rose - cria um histograma de ngulo stairs - cria um grfico similar a um grfico de barra, mas sem as linhas internas fill - desenha um polgono e o preenche com cores slidas ou interpoladas
no intervalo
>> plot3(x,y,z)
gera uma linha no espao tridimensional que passa pelos pontos de coordenadas dadas pelos elementos dos vetores x, y e z, e depois produz uma projeo bidimensional desta linha na tela.. Por exemplo
>> plot3(X,Y,Z)
plota as linhas obtidas pelas colunas de X, Y e Z. Para especificar vrios tipos de linhas, smbolos grficos e cores, usa-se a linha de comando plot3(X,Y,Z,s), onde s uma string de 1, 2 ou 3 caracteres formada pelos caracteres listados com a funo plot.
>> plot3(x1,y1,z1,s1,x2,y2,z2,s2,x3,y3,z3.s3,...)
combina os grficos definidos por cada grupo de elementos (x, y, z, s), onde x, y e z so vetores ou matrizes e s so as strings.
16.2.2 Meshgrid
MATLAB define uma superfcie mesh pelas coordenadas z dos pontos, situando-a acima de uma rea retangular no plano x-y. Desta forma, um grfico formado pela ligao dos pontos adjacentes com linhas retas. Superfcies mesh so teis para visualizao de matrizes que so muito grandes para serem mostradas na forma numrica, e funes grficas de duas variveis. O primeiro passo para que seja mostrada uma funo de duas variveis, z = f(x,y), gerar as matrizes X e Y consistindo de linhas e colunas repetidas, respectivamente, sobre o domnio da funo. Depois utiliza-se estas matrizes para avaliar e plotar a funo. A funo meshgrid transforma o domnio especificado por dois vetores, x e y, em matrizes, X e Y. Utiliza-se estas matrizes para avaliar funes de duas variveis. As linhas de X so cpias do vetor x e as colunas de Y so cpias do vetor y. Para ilustrar o uso da funo meshgrid, considere a funo sin/r, tambm chamada funo sinc. Para avaliar esta funo entre -8 e 8, tanto em x como em y, passa-se como argumento dois vetores para a funo meshgrid criando as matrizes necessrias:
A matriz R contm a distncia dos pontos ao centro da matriz, o qual a origem. Adiconando eps evita a diviso por zero, o que produz NaNs no dados.
>> mesh(Z)
gera uma figura da superfcie, colorida e definida por linhas, e a mostra em uma projeo em perspectiva. Da mesma forma
>> surf(Z)
gera uma figura da superfcie, colorida e definida por faces, e a mostra em uma projeo em perspectiva. Ordinariamente, as faces so quadrilteros com cores constantes, delineadas por linhas mesh pretas, mas a funo shading permite que sejam eliminadas estas linhas. Quando mesh(Z) e surf(Z) so usados com simples matrizes como argumentos, este argumento especifica tanto a altura quanto as cores da superfcie. Para a matriz peaks utilizada anteriormente
>> mesh(peaks)
produz uma superfcie mesh para a funo peaks
Matrizes de Cores
Utilizando duas matrizes como argumentos, as linhas de comando,
>> mesh(Z,C)
ou
>> surf(Z,C)
especifica independentemente atravs do segundo argumento, as cores a serem mostradas na superfcie. Com pcolor, os valores de C so postos em escala e usados como ndices no mapa de cores selecionado. No caso, C chamada matriz de cores. Quando a superfcie de dados contm NaNs, estes elementos no so plotados. Isto cria um falha na superfcie no lugar correspondente. Definindo alguns elementos na matriz de cores como NaNs, uma maneira til de tornar regies da superfcie invisveis. Por exemplo, a linha de comando abaixo produz uma falha na superfcie definida pela matriz peaks:
16.3.4 Subgrficos
Podem ser mostrados vrios grficos em uma mesma janela ou imprimi-los em uma mesma folha de papel com a funo subplot. subplot(m,n,p) divide a janela em uma matriz m por n de subregies e seleciona a p-sima subregio para o grfico que est sendo plotado no momento. Os grficos so numerados comeando pela primeira linha na parte superior da janela; em seguida, a segunda linha, e assim segue. Por exemplo,
>> t = 0:pi/10:2*pi; >> [X,Y,Z] = cylynder(4*cos(t)); >> subplot(2,2,1) >> mesh(X) >> subplot(2,2,2) >> mesh(Y) >> subpoot(2,2,2) >>mesh(Y) >> subplot(2,2,3) >> mesh(Z) >> subplot(2,2,4) >> mesh(X,Y,Z)
plota dados em quatro diferentes subregies na janela de grficos.
16.3.5 Figura
Chamando a funo figure sem argumentos faz com que seja aberto uma nova janela grfica. figure(N) faz com que a N-sima figura se torne a figura atual; o resultado dos comandos grficos subsequentes so mostrados nesta janela. Se a figura N no existe, MATLAB cria uma usando o prximo nmero disponvel (no necessariamente N). A funo ginput permite que sejam utilizados o mouse ou as teclas de seta para selecionar pontos no grfico. Isto fornece as coordenadas da posio do ponteiro.
sombras de vermelho, laranja e amarelo, at o branco. Se o tamanho do mapa de cores no especificado, MATLAB utiliza m = 64 como valor padro. Isto permite trs ou quatro figuras, onde cada uma possui sua tabela de 256 cores. A linha de comando,
>> colormap(M)
faz com que a matriz de mapa de cores M seja usada pela figura ativa. Por exemplo,
>> colormap(hot)
torna ativo o mapa de cores hot de tamanho 64. Desde que as funes mesh, surf, pcolor e image utilizam mapas de cores, todas as outras funes que so derivadas destas quatro tambm o fazem. As funes plot, plot3, contour e contour3 no fazem uso dos mapas de cores.
Objetos surface so representaes 3-D dos dados de uma matriz. Eles so compostos de quadrilteros cujo os vrtices so especificados pelos dados definidos. Superfcies podem ser preenchidas com cores slidas ou interpoladas ou somente com uma rede de linhas ligando os pontos. Eles so descendentes dos eixos e suas posies so definidas pelo sistema de coordenadas estabelecido pelo seus superiores (eixos). pcolor e o grupo de funes de mesh e surf criam os objetos superfcie. Objetos image dado pelo resultado do mapeamento dos elementos de uma matriz com o mapa de cores se encontra ativo. Imagens, geralmente, possuem seu prprio mapa de cores que definem somente as cores usadas naquela imagem. Imagens so 2-D e, portanto, no podem ser vistas por nenhum ngulo diferente do padro. Eles so descendentes dos eixos e suas posies so definidas pelo sistema de coordenadas estabelecido pelo seus superiores (eixos). Objetos imagem so criados atravs da funo image. Objetos text so as strings de caracteres. Eles so descendentes dos eixos e suas posies so definidas pelo sistema de coordenadas estabelecido pelo seus superiores (eixos). Objetos uicontrol so interfaces de controle que permitem ao usurio executar funes quando selecionado um objeto com o mouse. Eles so descendentes das figuras e, portanto, so independentes dos eixos. Objetos uimenu so interfaces de menu que permitem o usurio criar menus na parte superior da janela de figura. Eles so descendentes das figuras e, portanto, independentes dos eixos.
Handle de Objetos
Cada objeto grfico individual possui um nico identificador (chamado handle) que atribudo ao objeto quando ele criado. Alguns grficos tais como contour plot, so compostos de mltiplos objetos, cada qual com seu prprio handle. O handle do objeto raiz sempre zero enquanto que o de uma figura um inteiro. O handle de outros objetos so nmeros decimais que contm informaes utilizadas pelo MATLAB. MATLAB define as seguintes funes para simplificar o acesso aos handles dos objetos: gcf - informa o handle da figura ativa gca - informa o handle do sistema de eixos ativo Pode-se utilizar estas funes como argumentos de entrada de outras funes que requeiram os handles de grficos e eixos. Pode-se, tambm, remover qualquer objeto utilizando a funo delete, descrevendo como argumento o handle do objeto. Por exemplo, os eixos atuais podem ser apagados atravs da linha de comando:
>> delete(gca)
Todas as funes do MATLAB que criam objetos, criam handles para estes objetos. Isto inclui funes de alto-nvel, tais como surfc, a qual cria tanto objeto linha como objeto superfcie.
>> line
>> set(surfh,LineStyle,-)
Para se ter uma lista das propriedades que podem ser alteradas de um objeto particular, chama-se a funo set com o handle do objeto:
>> set(surfh)
Para se fazer a alterao do valor de uma propriedade, utiliza-se a funo get. Chamando-se a funo get com o handle do objeto, obtm-se a lista de todas as propriedades para aquele objeto com o valores atuais:
>> get(surfh)