Introdução ao MATLAB 5.3 para Hidrólogos

Slides:



Advertisements
Apresentações semelhantes
Carlos André Vaz Junior
Advertisements

Estruturas de Controle
Estruturas de Repetição
Algoritmo I Aula 05 Pseudo-Linguagem.
Linguagem C Marco Reis.
Shell Script Professor: João Paulo
Programação para Engenharia I
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Instrutor: Marcelo Escobar
Prof. Luis Otavio Alvares
The language of tecnical computing
Linguagem C Estruturas de Controle de Fluxos
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Introdução ao JavaScript
Apresentação da linguagem Python
Revisão da Linguagem C.
DESENVOLVIMENTO DE COMÉRCIO ELETRÔNICO
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
JAVA: Conceitos Iniciais
Aula R Prof. Naércio Filho Técnico em Informática
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
FTIN Formação Técnica em Informática
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Seminário 1: Revisão de C
MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB
Matlab Mini Curso PET 2012.
Monitoria de Sistemas Inteligentes
Introdução ao MATLAB 5.3 para Hidrólogos
Algoritmo e Programação
Linguagem e Ambiente Scratch
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Capítulo 5 Structures. A - Sequence E - Formula Node B - Case F - Variável Global C - For Loop G - Variável Local D - While Loop ABCD FG E.
Linguagem de Programação JAVA
Prof.Celso J. Munaro (DEL-CT-UFES)
PROGRAMAÇÃO ou LINGUAGEM C?
Programação e Aplicações Gráficas
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo I Comandos Simples e Repetições.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo I Comandos Simples e Repetições.
CES-41 COMPILADORES Aulas Práticas
Monitoria de Sistemas Inteligentes IF684
MatLab (Matrix Laboratory)
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
MATLAB - Matrix Laboratory Adaptado de Profa
Iº Workshop Linux da Unijorge
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Introdução à Programação
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Curso Técnico em Informática Professor Igor Vale.
Profa. Maria Augusta Constante Puget
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Shell Script Parte 2.
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
O Portal do Estudante de Computação
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
MatLab (Matrix Laboratory)
CONDICIONAL IF Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Programação para Internet Rica– Aula 05 Prof. Me. Ronnison Reges Vidal.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução ao Grads Grads Script e Funções MSc. José Leandro Campos.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
Transcrição da apresentação:

Introdução ao MATLAB 5.3 para Hidrólogos Aula 03 – Scripts, funções e Gráficos Programando e plotando no MATLAB Carlos Ruberto Fragoso Júnior Christopher Freire Souza Porto Alegre, setembro de 2005

Aula 03 Scripts Funções Linguagem de programação Gráficos 2D 3D Animação

Aula 03 Scripts

Aula 03 Scripts files Script é um m-file com um conjunto de comandos do MATLAB dentro dele. Para executar basta digitar o nome do arquivo (sem a extensão .m). É equivalente a digitar todos os comandos na tela principal, só que armazenado em um arquivo. Trabalha com variáveis globais (apresentadas no diretório de trabalho)

Aula 03 Exemplo de um script Vamos escrever um script para resolver o seguinte sistema linear de equações: A.x=b, onde A depende de uma variável r.

Aula 03 Executando o script no MATLAB 1 >> solvex det_A = 64 x = -0.0312 0.2344 1.6875 Os valores do “det_A” e “x" aparecem na tela porque não tem ponto e virgula no final da linha correspondente

Cuidados que se deve ter: NUNCA salve o script com o mesmo nome de uma variável nele digitada. O nome do arquivo script deve iniciar com uma letra. Seja cuidadoso com os nomes das variáveis digitadas no script (todas essas variáveis são gravadas no diretório de trabalho)

Exercício 1 A equação de uma uma reta é y = mx+b, onde m e b são constantes compute os valores de y para os seguintes valores de x: x = 0,1.5,3,4,5,7,9,10 Exercício 2 Crie um vetor t com 10 elementos de: 1,2,...,10. Depois compute os seguintes valores: x = t.sen(t) y = (t-1)/(t+1) z = sen(t2)/t2

Aula 03 Funções

Aula 03 Dicas para criação de funções Crie uma estrutura lógica e pense na seqüência computacional antes de escrever o código. Escreva isso em um papel!!! Defina as variáveis de entrada e saída. Traduza o que você escreveu no papel para o MATLAB. Defina nomes lógicos para suas variáveis e funções. Escreva o máximo de comentários possíveis no código. Quebre grandes blocos computacionais e escreva em função separadas. Check erros e a saída com mensagens de erros e use o artifício do “;” para verificar os passos de cálculo.

Cuidados que se deve ter: O termo de definição deve ser digitado com letra minúscula (“function” e não “Function”) . Linhas comentadas começam com “%”, podendo ser colocado em qualquer lugar. Todas as linhas comentadas imediatamente após o termo de definição são mostradas no MATLAB help. Uma simples variável de saída não precisa ser fechada por colchetes. O nome das variáveis de entrada e de saída na linha do termo de definição são variáveis locais.

function [rho,H,F] = motion(x,y,t); Para executar uma função Considere uma função, cuja a linha de definição é a seguinte: function [rho,H,F] = motion(x,y,t); As variáveis xt, yt e time devem ser definidas antes de executar o comando. >> [r,angmom,force] = motion(xt,yt,time); >> [r,h,f] = motion(rx,ry,[0:100]); >> [r,h,f] = motion(2,3.5,0.001); >> [radius,h] = motion(rx,ry); >> motion(xt,yt,t); As variáveis rx e ry devem ser definidas antes de executar o comando e t é especificada. Todas as variáveis são especificadas. A terceira variável de entrada tem que ser especificada dentro da função. A terceira variável e saída não é disponível. Nenhuma variável de saída fica disponível.

>> [det_A,y] = solvex(1); >> det_A ans = 64 >> y function [det_A,x]=solvex(r) % SOLVEX Resolve um sistema de equações lineares de um matriz 3x3 % com parâmetro r. % Para chamar esta função, digite: % [det_A,x] = solvex(r) % r é a entrada e det_A e x são as saídas A = [5 2*r r; 3 6 2*r-1; 2 r-1 3*r] b = [2;3;5]; det_A = det(A); x = A\b; >> [det_A,y] = solvex(1); >> det_A ans = 64 >> y -0.0312 0.2344 1.6875

Executando uma função dentro de outra function [det_A,x]=solvex(r) % SOLVEX Resolve um sistema de equações lineares de um matriz 3x3 % com parâmetro r. % Para chamar esta função, digite: % [det_A,x] = solvex(r) % r é a entrada e det_A e x são as saídas A = [5 2*r r; 3 6 2*r-1; 2 r-1 3*r] b = [2;3;5]; det_A = det(A); x = A\b; A função “det” é chamada dentro da função solvex. Porém, quando o nome da função é dinâmico é feito de forma diferente (use “feval”).

Aula 03 Funções (function files) funções são m-files contendo um conjunto de comandos do MATLAB dentro dele, como um script, só que todas as variáveis são locais e não globais. São como programas ou subrotinas no Fortran. A 1ª linha do arquivo começa definido as variáveis de entradas e de saídas, e o nome da função. O nome da função deve ser o mesmo nome do arquivo a ser salvo.

Aula 03 Macetes pcode nomedoarquivo – proteger o direito de uso do código. profile – avalia a performance das funções. profile on [det_A,x] = solvex(r) profile report

Exercício 3 Todos os pontos com coordenadas x = r.cosө, y = r.senө, sendo r uma constante, satisfazem a equação x2 + y2 = r. Crie um vetor coluna: ө = 0,π/4, π/2, 3π/4, π e 5π/4 E calcule as coordenadas x e y em função do raio r.

Linguagem de Programação Aula 03 Linguagem de Programação

Aula 03 Linguagem de Programação São usadas para controlar o fluxo das operações. Tipos: “for” e “while” – para “loops” “if-elseif-else” – estrutura condicional simples “switch-case-otherwise” – estrutura condicional avançada Todos esses controladores de fluxo devem terminar com “end”.

Aula 03 Linguagem de Programação São usadas para controlar o fluxo das operações. Tipos: “for” e “while” – para “loops” “if-elseif-else” – estrutura condicional simples “switch-case-otherwise” – estrutura condicional avançada

Aula 03 Fazendo “loops” – “for” Um “for” é usado para repetir uma operação ou um grupo de operações para um número fixo de vezes. % Exemplo for m=1:100 num = 1/(m+1) end for n = 100:-2:0, k=1/(exp(n)), end

Aula 03 Condicional simples – “if-elseif-else” Um “while” é usado para repetir uma operação ou um grupo de operações para um número indefinido de vezes até que a condição especificada pelo “while” seja satisfeita. % Exemplo num = 1; i = 1; while num<10000 num = 2^i; v = [i; num]; i = i + 1; end

Aula 03 Condicional simples – “if-elseif-else” Cria blocos condicionais. % Exemplo i = 6; j = 21; if i > 5 k = i; elseif (i > 1) & (j == 20) k = 5*i + j else k = 1; end

Aula 03 Condicional avançado – “switch-case-otherwise” Cria blocos condicionais. Uma variável é usada como um dispositivo de direcionamento (switch), onde cada valor dessa variável direciona para um caso (case). Aula 03 % Exemplo 1 flag = 1; switch flag case 1 “1º bloco computacional” case 2 “2º bloco computacional” otherwise “último bloco computacional” end

Aula 03 Macetes break – dentro de um “for” ou “while”, termina a execução de um loop. error(‘mensagem’) – dentro de uma função ou script, sai da execução da rotina e mostra uma mensagem de erro. return - dentro de uma função ou script, sai da execução da rotina.

Aula 03 Exemplos - break % Exemplo 1 u = [2 4 8 4 -1 2}; v = u; for i = length(v) if u(i) < 0; % check para u negativo break % termina a execução do loop end a = a + v(i)

Aula 03 Exemplos - error function c = crossprod(a,b) % Cálcula o prod. Escalar de dois vetores if nargin ~= 2 % se não for 2 variáveis de entrada error('São necessárias duas variáveis de entrada') end if length(a) == 3 & length(b) == 3 % começa o cálculo c = cross(a,b); else error('Os vetores devem ter 3 dimensões')

Aula 03 Exemplos - return x = exp(sqrt(163)) n = input('Entre com o número max.de iterações') while n >= 1 if n <=0 return end x = log(x) n = n - 1;

Aula 03 Outros macetes input(‘mensagem’, opção) – mostra um texto na tela e espera pelo o usuário dá uma entrada no teclado. menu(‘Título’,‘opção1’, ‘opção2’,...) – cria um menu na tela e lista as opções no menu. pause – pausa a execução da rotina e espera um sinal do usuário ou pausa um determinado tempo (“pause(n)”).

Arquivos de entrada e saída Aula 03 Arquivos de entrada e saída

Aula 03 Entrada e Saída O MATLAB possui algumas funções para ler e escrever dados em arquivos do tipo binário ou ASCII formatados. As funções são: fopen: abre um arquivo existente ou cria um novo arquivo fclose: fecha um arquivo aberto fwrite: escreve uma informação binário para um arquivo fread: ler uma informação binário de um arquivo fscanf: ler uma informação formatada de um arquivo fprintf: escreve uma informação formatada para um arquivo

Formatação de arquivos Formato Descrição %c Simples caracter %d Notação decimal %e Notação exponecial (usando “e” minúsculo ) %E Notação exponecial (usando “e” maiúsculo ) %f Notação fixando ponto %g O mais compactado de %e ou %f %o Notação Octal %s Grupos de caracteres %x Notação Hexadecimal

Exercício 1 Gerar e escrever em um arquivo ASCII uma tabela de conversão de temperatura de Fahrenheit para Celsius. Sabendo que: F = -40:5:100 C = (F-32)*5/9 Exercício 2 Ler os dados de temperatura do arquivo gerado em um matriz de temperatura.

Aula 03 Exemplos – Escrever em um arquivo F = -40:5:100; C = (F-32)*5/9; t = [F;C]; fid = fopen('temperatura.tab','w'); fprintf(fid,' Tabela de Temperatura\n'); fprintf(fid,'~~~~~~~~~~~~~~~~~~~~~~~~\n'); fprintf(fid,'Fahrenheit Celsius\n'); fprintf(fid,' %4i %8.2f\n',t); fclose(fid);

Aula 03 Exemplos – Ler um arquivo fid = fopen('temperatura.tab'); lixo=fscanf(fid,'%25c',[1 1]) lixo=fscanf(fid,'%20c',[1 1]) temp = fscanf(fid,'%i %f',[2 inf]) fclose(fid);

Aula 03 Gráficos

Aula 03 Gráficos Boas ferramentas de visualização; Gráficos 2D, 3D e animações; O especial sobre a parte gráfica do MATLAB é o fácil uso e expansibilidade.

plot(xvalores,yvalores,’estilo-opções’) Aula 03 Plots 2D O comando básico e talvez o mais proveitoso comando para produzir um gráfico em 2 dimensões é: plot(xvalores,yvalores,’estilo-opções’)

Aula 03 Opções de estilo Cor linha Descrição y (amarelo) - (sólido) + (sinal de soma) m (margenta) -- (tracejado) o (cículo) c (ciano) : (pontinhado) * (asterisco) r (vermelho) -. (tracejado-potinhado) x (sinal x) g (verde) . (ponto) b (azul) ^ (triangulo) w (branco) s (quadrado) k (preto) d (diamante), etc

Aula 03 Outras opções do comando “axis” axis(‘equal’) – coloca uma escala igual em ambos os eixos axis(‘square’) – transforma a área de plotagem retangular em um quadrado axis(‘normal’) – restaura os eixos para valores padrões axis(‘off’) – remove a área de plotagem e legendas

axis([xmin xmax ymin ymax]) Aula 03 Controle do eixo Você pode mudar os limites dos eixos com o comando “axis” axis([xmin xmax ymin ymax])

Aula 03 Inserindo textos nos gráficos xlabel(‘eixo x’) – legenda do eixo x ylabel(‘eixo y’) – legenda do eixo y title(‘título’) – título do gráfico text(2,6,‘texto’) – escreve ‘texto’ na coordenada (2,6) legend(‘texto1’, ‘texto2’, ...)

plot(x1,y1,‘estilo1’,x2,y2,‘estilo2’) Aula 03 Sobreposição de gráficos Usando o comando plot Usando o comando “hold on” plot(x1,y1,‘estilo1’,x2,y2,‘estilo2’) plot(x1,y1,‘estilo1’) hold on plot(x2,y2, ‘estilo2’)

Aula 03 Exercício Plotar a função seno em conjunto com duas funções de aproximação por série de Taylor (1ª e 3ª ordem). As funções são: y1 = sen(t) y2 = t y3 = t-t3/3!+t5/5! Usando as funções xlabel, ylabel, axis, gtext, hold on, plot...

Aula 03 Exercício (solução) x=linspace(0,2*pi,100); y1=sin(x); plot(x,y1) hold on y2=x; plot(x,y2,‘--’) y3=x-(x.^3)/6+(x.^5)/120; plot(x,y3,‘o’) axis([0 5 -1 5]) Hold off

Aula 03 Gráficos especiais em 2D fplot » fplot('x.*sin(x)',[0 10*pi])

Aula 03 Gráficos especiais em 2D semilogx » t=linspace(0,2*pi,200); » x=exp(-t); » y=t; » semilogx(x,y), grid

Aula 03 Gráficos especiais em 2D semilogy » t=linspace(0,2*pi,200); » semilogy(t,exp(t)), grid

Aula 03 Gráficos especiais em 2D loglog » t=linspace(0,2*pi,200); » x=exp(t); » y=100+exp(2*t); » loglog(x,y), grid

Aula 03 Gráficos especiais em 2D polar » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » polar(t,r)

Aula 03 Gráficos especiais em 2D fill » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » x=r.*cos(t); » y=r.*sin(t); » fill(x,y,'k') » axis(‘equal')

Aula 03 Gráficos especiais em 2D bar » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » y=r.*sin(t); » bar(t,y) » axis([0 pi 0 inf])

Aula 03 Gráficos especiais em 2D errorbar » x=0:0.1:2; » aprx2=x-x.^3/6; » er=aprx2-sin(x); » errorbar(x,aprx2,er)

Gráficos especiais em 2D barh » cont=char('Asia','Europa','Africa','America do Norte', 'America do Sul'); » pop=[3332;696;694;437;307]; » barh(pop) » for i=1:5, gtext(cont(i,:)); end » xlabel('Polulação em Milhões') » title('População do Mundo (1992)')

Gráficos especiais em 2D plotyy » x=1:0.1:10; » y1=exp(-x).*sin(x); » y2=exp(x); » Ax=plotyy(x,y1,x,y2) Ax = 72.0021 74.0096 » hy1=get(Ax(1),'ylabel'); » hy2=get(Ax(2),'ylabel'); » set(hy1,'string','e^-x*sin(x)'); » set(hy2,'string','e^x');

Gráficos especiais em 2D area » x=linspace(-3*pi,3*pi,100); » y=-sin(x)./x; » area(x,y) » xlabel('x') » ylabel('sin(x)./x') » hold on » x1=x(46:55); » y1=y(46:55); » area(x1,y1,'facecolor','y')

Gráficos especiais em 2D pie » cont=char('Asia','Europa','Africa','America do Norte', 'America do Sul'); » pop=[3332;696;694;437;307]; » pie(pop) » for i=1:5, gtext(cont(i,:)); end

Gráficos especiais em 2D hist » y=randn(50,1); » hist(y)

Gráficos especiais em 2D stairs » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » y=r.*sin(t); » stairs(t,y) » axis([0 pi 0 inf])

Gráficos especiais em 2D stem » t=linspace(0,2*pi,100); » f=exp(-0.2*t).*sin(t); » stem(t,f)

Gráficos especiais em 2D compass » zx=cos(th); » zy=sin(th); » z=zx+i*zy; » compass(z)

Gráficos especiais em 2D Comet (faz uma pequena animação) » q=linspace(0,10*pi,200); » y=q.*sin(q); » comet(q,y)

Gráficos especiais em 2D contour » r=-5:0.2:5; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » cs=contour(X,Y,Z); » clabel(cs)

Gráficos especiais em 2D quiver » r=-2:0.2:2; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » [dx,dy]=gradient(Z,.2,.2); » quiver(X,Y,dx,dy,2);

Gráficos especiais em 2D quiver » r=-2:0.2:2; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » pcolor(Z) » axis('off') » shading interp

Aula 03 Gráficos Múltiplos Se vc quer fazer alguns gráficos e colocá-los lado a lado (sem sobrepor gráficos), use o comando “subplot”: subplot(m,n,p) Dividi a janela em m x n sub-janelas, e plota o gráfico na sub-janela p.

plot3(x,y,z,’estilo-opções’) Aula 03 Plots 3D O comando básico para produzir uma curva em 3 dimensões é: plot3(x,y,z,’estilo-opções’) Use agora o comando “zlabel”

Aula 03 Ângulo de visão view(azimute,elavação) – onde o azimute é em graus partir do eixo y sendo o sentido anti-horário o sentido positivo, e a elevação em graus é o ângulo medido a partir do plano x-y. rotate3d on – mais versátil e de fácil uso, você mesmo manipula a melhor visão.

Aula 03 Plotando superfícies Os comandos básicos para plotar uma superfície são: mesh e surf. Utilize o comando “meshgrid” para gerar uma grade de pontos quadrangular. mesh(X,Y,Z) surf(X,Y,Z)

Superfícies em 3D mesh e surf >> x=linspace(-3,3,100); >> [X,Y]=meshgrid(x,x); >> Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); >> mesh(X,Y,Z) >> surf(X,Y,Z)

Especiais em 3D fill3 » X=[0 0 0 0;1 1 -1 1;1 -1 -1 1]; » Y=[0 0 0 0; 4 4 4 4; 4 4 4 4]; » Z=[0 0 0 0; 1 1 -1 -1; -1 1 1 -1]; » fill3(X,Y,Z,rand(3,4)) » view(120,30)

Especiais em 3D contour3 » r=linspace(-3,3,50); » [x,y]=meshgrid(r,r); » z=-5./(1+x.^2+y.^2); » contour3(x,y,z)

Especiais em 3D contour3 » r=linspace(-3,3,50); » [x,y]=meshgrid(r,r); » z=-5./(1+x.^2+y.^2); » contour3(x,y,z)

Especiais em 3D surfc » u=-5:0.2:5; » [X,Y]=meshgrid(u,u); » Z = cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/4); » surfc(X,Y,Z) » axis('off')

Especiais em 3D surfl » u=-5:0.2:5; » [X,Y]=meshgrid(u,u); » Z = cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/4); » surfl(X,Y,Z) » shading interp » colormap hot

Especiais em 3D meshz » x=linspace(-3,3,50); » y=x; » [x,y]=meshgrid(x,y); » z=-5./(1+x.^2+y.^2); » meshz(x,y,z)

Especiais em 3D waterfall » x=linspace(-3,3,50); » y=x; » [x,y]=meshgrid(x,y); » z=-5./(1+x.^2+y.^2); » waterfall(x,y,z) » hidden off

Especiais em 3D pie3 » pop=[3332;696;694;437;307]; » pie3(pop) » title('população do mundo')

Especiais em 3D stem3 » t=linspace(0,6*pi,200); » x=t; » y=t.*sin(t); » z=exp(t/10)-1; » stem3(x,y,z)

Especiais em 3D ribbon » t=linspace(0,5*pi,100); » y=sin(t); » ribbon(t,y,0.1)

Especiais em 3D sphere » sphere(20) ou » [x,y,z]=sphere(20); » surf(x,y,z) » axis('equal')

Especiais em 3D cylinder » z=0:0.02:1; » r=sin(3*pi*z)+2; » cylinder(r)

Especiais em 3D slice » v=[-3:0.2:3]; » [x,y,z]=meshgrid(v,v,v); » f=(x.^2+y.^2-z.^2); » xv=[-2 2.5]; » yv=2.5; » zv=0; » slice(x,y,z,f,xv,yv,zv) » view(-30,30) » xlabel('x') » ylabel('y') » zlabel('z') » colorbar(‘horiz’)

Plotando informações volumétricas As funções disponíveis para visualização de informação volumétrica são: “slice”, “isosurface”, “isonormal”, “isocaps”, “subvolume”, “reducevolume”, “smooth3”, “reducepatch”. Veja helpdesk para mais informações.

[Xi,Yi,Zi]=griddata(x,y,z,xi,yi,‘método) Plotando superfícies interpoladas Muitas vezes, nós temos alguma informação em forma (x,y,z) e queremos ajustar uma superfície a essa informação. Para isso usamos o comando “griddata”. [Xi,Yi,Zi]=griddata(x,y,z,xi,yi,‘método)

Plotando superfícies interpoladas » xv=2*rand(1,100)-1; » yv=2*rand(1,100)-1; » zv=3./(1+xv.^2+yv.^2); » stem3(xv,yv,zv)

Plotando superfícies interpoladas » xi=linspace(-1,1,30); » yi=xi; » [xi,yi]=meshgrid(xi,yi); » [Xi,Yi,Zi]=griddata(xv,yv,zv,xi,yi,'v4'); » surf(Xi,Yi,Zi)

Handle Graphics O que é um handle? São números associados a todo objeto de uma figura. Hierarquia dos objetos gráficos:

Propriedade dos objetos » h=plot(1:20) h = 1.0056 » get(h) Color = [0 0 1] EraseMode = normal LineStyle = - LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 20) double array] YData = [ (1 by 20) double array] ZData = [] ...

Propriedade dos objetos » h=plot(1:20) h = 1.0056 » get(h) Color = [0 0 1] EraseMode = normal LineStyle = - LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 20) double array] YData = [ (1 by 20) double array] ZData = [] ...

Propriedade dos objetos » h=plot(1:20) h = 1.0056 » set(h,'Linewidth',2) %muda a espessura da linha » set(h,'Color',[0 1 1]) %muda a cor da linha

Animação (Fazer um filme) nframes = 36; Frames = moviein(nframes); angulo = linspace(0,360,36); x=linspace(-3,3,100); [X,Y]=meshgrid(x,x); Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); mesh(X,Y,Z) for i=1:nframes view(angulo(i),30) Frames(:,i)=getframe; end movie(Frames,2)