aula 02 matlab graficos

Post on 26-Nov-2015

34 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Ricardo N. Paiva

Robótica

Aula 02

Matlab: Gráficos 2D/3D

1

2

Gráficos em duas dimensões

Para obter informações sobre um tópico específico, digite help tópico. Por exemplo, >> help plotxy que fornece uma lista de todos os comandos relacionados com gráficos bidimensionais: Two dimensional graphics. Elementary X-Y graphs. plot - Linear plot. loglog - Log-log scale plot. semilogx - Semi-log scale plot. semilogy - Semi-log scale plot. fill - Draw filled 2-D polygons.

3

Gráficos em duas dimensões Specialized X-Y graphs.

polar - Polar coordinate plot. bar - Bar graph. stem - Discrete sequence or & "stemm" plot. stairs - Stairstep plot. errorbar - Error bar plot. hist - Histogram plot. rose - Angle histogram plot. compass - Compass plot. feather - Feather plot. fplot - Plot function comet - Comet-like trajectory.

Graph annotation. title - Graph title. xlabel - X-axis label. ylabel - Y-axis label. text - Text annotation. gtext - Mouse placement of text. grid - Grid lines.

4

Gráficos em duas dimensões

Finalmente, para obter informações sobre um comando específico, por exemplo title, digite: >> help title e informações mais detalhadas sobre este comando serão exibidas: TITLE Titles for 2-D and 3-D plots. TITLE (‘text’) adds text at the top of the current axis. Note que no exemplo mostrado para adicionar o título em um gráfico, TITLE (‘TEXT’) está escrito em letras maiúsculas somente para destacar. Deve-se lembrar que todos os comandos do MATLAB devem ser escritas em letras minúsculas, portanto, para adicionar o texto “Título do Gráfico” em um gráfico, digite: >> title (‘Título do Gráfico’)

5

Funções pré-definidas

O gráfico da função é: >> x = -l:0.0l:2; >> plot(x,humps(x)), grid

function y = humps(x)

y = l ./ ((x-.3).^2 + .0l) + 1./((x-.9).^2 + .04) - 6;

-1 -0.5 0 0.5 1 1.5 2-20

0

20

40

60

80

100

6

Determinando o mínimo num intervalo

A localização do mínimo da função humps(x) no intervalo de 0.5 a 1 é obtido da seguinte maneira: >> help fminbnd % para obter informações sobre o comando >> xmin = fminbnd(@humps,0.5,1) xmin = 0.6370 >> ymin = humps(xmin) ymin = 11.2528 E o gráfico deste intervalo com o ponto de mínimo pode ser construído: >> x = 0.5:0.01:1; >> plot(x, humps(x), xmin, ymin, '*') 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1

10

12

14

16

18

20

22

7

Determinando os zeros

A função humps(x) apresenta dois “zeros” no intercalo de -1 a 2. A localização do primeiro “zero” é próxima do ponto x = 0, >> xzl = fzero('humps',0) xzl = -0.1316 A localização do segundo “zero” é próxima do ponto x= 1, >> xz2 = fzero('humps',1) xz2 = 1.2995 O gráfico da função com os dois “zeros” é obtido através da expressão: >> x = -1:0.01:2; >> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), grid

-1 -0.5 0 0.5 1 1.5 2-20

0

20

40

60

80

100

8

Gráficos

>> t=0:0.01:10; >> y=sin(t); >> plot(t,y)

0 1 2 3 4 5 6 7 8 9 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

9

Gráficos

>> z=cos(t); >> plot(t,z)

0 1 2 3 4 5 6 7 8 9 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

10

Gráficos

>> subplot(1,2,1) >> plot(t,y)

0 5 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

11

Gráficos

>> subplot(1,2,2) >> plot(t,z)

0 5 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0 5 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

12

Gráficos >> t=0:0.25:10; >> y=sin(t); >> plot(t,y,'r+') >> xlabel('tempo') >> ylabel('seno') >> title('Seno vs. Tempo') >> Axis([0 10 -2 2])

0 5 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0 5 10-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

tempo

seno

Seno vs. Tempo

13

Gráficos >> clear all >> t=0:0.25:10; >> y=sin(t); >> plot(t,y,'r+') >> xlabel('tempo') >> ylabel('seno') >> title('Seno vs. Tempo') >> Axis([0 10 -2 2])

0 1 2 3 4 5 6 7 8 9 10-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

tempo

seno

Seno vs. Tempo

>> t=0:0.01:10; >> y=sin(t); >> z=cos(t); >> plot(t,y,'g-',t,z,'r-') >> legend('seno','cosseno')

Ou...

>> t=0:0.01:10; >> y=sin(t); >> z=cos(t); >> plot(t,y,'g-‘) >> hold on >> plot(t,z,'r-') >> legend('seno','cosseno')

14

Gráficos: mais de uma curva

0 1 2 3 4 5 6 7 8 9 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

senocosseno

>> x = [1 3 0.5 2.5 2];

>> explode = [0 1 0 0 0];

>> pie(x,explode)

>> colormap jet

>> legend('EMB','IND','ACO','DIV','POT')

15

Gráfico: tortas

11%

33%

6%

28%

22%

EMBINDACODIVPOT

>> x = [1 3 0.5 2.5 2];

>> explode = [0 1 0 0 0];

>> pie3(x,explode)

>> colormap jet

>> legend('EMB','IND','ACO','DIV','POT')

16

28%

6%

22%

33%

11%

EMBINDACODIVPOT

Gráfico: tortas

>> x = -2.9:0.2:2.9;

>> bar(x,exp(-x.*x))

>> colormap hsv

17

-3 -2 -1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Gráfico: barras

18

Gráficos em três dimensões

19

Gráficos em três dimensões

Estes são alguns comandos para plotar gráficos tridimensionais e contornos.

Plot3 Plotar em espaço 3D.

fill3 Desenhar polígono 3D.

comet3 Plotar em 3D com trajetória de cometa.

contour Plotar contorno 2D.

contour3 Plotar contorno 3D.

clabel Plotar contorno com valores.

quiver Plotar gradiente.

mesh Plotar malha 3D.

meshc Combinação mesh/contour.

surf Plotar superfície 3D.

surfc Combinação surf/contour.

surfil Plotar superfície 3D com iluminação.

slice Plot visualização volumétrica.

cylinder Gerar cilindro.

sphere Gerar esfera.

20

Gráficos em três dimensões

O comando mesh(X,Y,Z) cria uma perspectiva tridimensional plotando os elementos do vetor Z em relação ao plano definindo pelos vetores X e Y. Por exemplo, >> [X,Y] = meshgrid(-2:0.2:2, -2:0.2:2); >> Z = X.* exp(-X.^2 - Y.^2); >> mesh(X,Y,Z)

-2-1

01

2

-2-1

0

12

-0.5

0

0.5

21

Cortes em iso-linhas

O comando contour(Z,10) mostra a projeção da superfície acima no plano xy com 10 iso-linhas: >> contour(Z,10)

2 4 6 8 10 12 14 16 18 20

2

4

6

8

10

12

14

16

18

20

>> %Malha triangular da base >> %malha da base >> xx=0:0.01:1; >> yy=0:0.01:1; >> [X,Y]=meshgrid(xx,yy); >> Z=1-X-Y; >> mesh(X,Y,Z)

Composição (3 componentes)

22

Gráficos - Superfície

00.2

0.40.6

0.81

0

0.5

1-1

-0.5

0

0.5

1

%Malha triangular da base %malha da base >> xx=0:0.01:1; >> yy=0:0.01:1; >> [X,Y]=meshgrid(xx,yy); >> Z=1-X-Y; >> %aplica a restrição para usar só a base do triangulo >> %onde existe consistência física (o que não tem vira >> "Not a Number") >> iz=find(Z<0); >> Z(iz)=nan; >> mesh(X,Y,Z)

Alguns Z são negativos! Vamos eliminá-los!

23

Gráficos - Superfície

0

0.5

1 0 0.20.4 0.6 0.8 1

0

0.2

0.4

0.6

0.8

1

Peaks é uma função de duas variáveis obtida a partir da translação de duas distribuições Gaussianas >> [X,Y,Z] = peaks(30); >> surfc(X,Y,Z) >> colormap hsv >> axis([-3 3 -3 3 -10 7])

24

Gráficos – Função Peaks

-3-2

-10

12

3

-3-2

-10

12

3-10

-5

0

5

Colorir uma esfera seguindo o padrão de +1 e -1 segundo uma matriz Hadamard >> k = 5; >> n = 2^k-1; >>[x,y,z] = sphere(n); >> c = hadamard(2^k); >> surf(x,y,z,c); >> colormap([1 1 0; 0 1 1]) >> axis equal

25

Gráficos – Matriz Hadamard

-0.50

0.5

-0.5

00.5

-1

-0.5

0

0.5

1

Use “close all” para fechar todas as figuras

Use “clf” para apagar a figura atual

26

Dicas

top related