introdução ao matlab aula 3 sistemas multimédia 3º ano engenharia informática universidade...

21
Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Upload: internet

Post on 18-Apr-2015

110 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Introdução ao MatLabAula 3

Sistemas Multimédia

3º ano Engenharia Informática

Universidade Católica de Angola

Page 2: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Vectores e Matrizes

EXAMPLO: >> a=2:3, b=[a 2*a;a/2 a]

a = 2 3

b = 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000

>> c=[b ; b]

c = 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000

Page 3: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Vectores e Matrizes

>> D=c(2:3, 2:3)

D = 1.5000 2.0000 3.0000 4.0000

• >> who Your variables are: D a b c

Page 4: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Vectores e Matrizes

Examplo: >> a=magic(4)

a= 16.0000 2.0000 3.0000 13.0000 5.0000 11.5000 10.0000 8.0000 9.0000 7.0000 6.0000 12.0000 4.0000 14.5000 15.0000 1.0000

>> sum(a) = sum(a') = [34 34 34 34]

• >> trace(a) = 34

• A(i, j) indexa fila i, coluna j

• Os índices começam a 1 não a zero.

• >>a(a, 3) = 3>>a(3, 1) = 39>>a(:, 3) = 3 10 6 15

Page 5: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Vectores e Matrizes• >>a(2:3,3:4) =

10 8 2 12

• >>a([1 4],[1 4]) = 16 13 4 1

• >>a(8) = 14

• >>[1:3] + [4:6] = 5 7 9

• A=zeros(2,2); B=(ones(3,2);

C = [ [A-1;B+1], [B+3;A-4] ], C =

-1 -1 4 4 -1 -1 4 4 2 2 4 4 2 2 -4 -4 2 2 -4 -4

Page 6: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

O MatLab suporta muitos tipos de desenhos para gráficos e superfíciesMATLAB : Linhas bi-dimensionais (xversus y), a cheio, gráfico

de barras, queijos, desenhos paramêtricos, eixos logarítmicos, suprfícies, paramêtricos 3D, esféricos

Para pré-visualizar alguma dessas potencialidades podemos olhar para as DEMOs

Page 7: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Desenhos simples 2D– X e Y dois vectores com as mesmas dimensões– O comando plot(x,y)

• Abre uma janela gráfica

• Desenha um gráfico dos elementos de X contra Y

Page 8: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Desenhos simples 2D

Page 9: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

>>%Exemplo do desenho duma sequência

>>t=-1:0.01:1;

>>f=4.5*cos(2*pi*t - pi/6);

>>%Instruções para desenho, nomes dos eixos …

>>plot(t,f),title('Fig.E1.2a');

>>axis([-1,1,-6,6]);

>>xlabel('t');

>>ylabel('f(t)');

>>text(-0.6,5,'f(t) = A cos(wt + phi)');

>>grid;

Page 10: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Desenho do exemplo anterior

Page 11: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

PLOT(X,Y) desenha o vector Y versus o vector XTITLE('text') adiciona texto no topo do desenho actual.XLABEL('text') adiciona texto junto do eixo dos X.YLABEL('text') adiciona texto junto do eixo dos Y. GRID, por si coloca as grelhas principais dos actuais

eixosGTEXT('string') ??SUBPLOT(m,n,p),ou SUBPLOT(mnp), divide a janela da figura

numa matriz mxn de eixos pequenos.STEM(Y) desenha a sequência de dados Y como stems do eixo dos x

terminando como círculos para os valores de dados.SEMILOGX(...) idêntico ao PLOT(...), a menos do uso duma escala

logarítmica para o eixo dos X. SEMILOGX(...) idêntico ao PLOT(...), a menos do uso duma escala

logarítmica para o eixo dos X.

Page 12: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

Por defeito a escala dos eixos é feita automaticamente. Isto pode ser redefinido pelo comando axis. If c =

[xmin,xmax,ymin,ymax] for um vector de 4 elementos, então axis(c) estabelece a escala dos eixos para os limites definidos.

Por si só o comando axis disponibiliza a escala actual para os gráficos subsequentes. Colocando novamente axis regressa à escala automática.

O comando axis('square') assegura o uso da mesma escala para ambos os eixos.

Para mais informação ver comando help axis.

Page 13: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho• >>%Example 1.2• >>t=-0.5:0.01:3; • >>t0=0 • >>u=stepfun(t,t0) • >>gprime=3.17*exp(-1.3*t).*cos(10.8*t + 1.15).*u; % NOTE the use of the .* operator. The terms 3.17*exp(-1.3*t), % cos(10.8*t + 1.15), and u are all vectors. We want the % components of these vectors to be multiplied by the corresponding % components of the other vectors, hence the need to use .* rather than *. % The following statements plot the sequence and label the plot • >>plot(t,gprime); • >>axis([-.5,3,-3,2]); • >>title('Fig.E1.2d'); • >>xlabel('t in seconds'); • >>ylabel('gprime(t)'); • >>text(-0.6,5,'f(t) = A cos(wt + phi)'); • >>grid;

Page 14: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Desenho

Page 15: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

Duas formas de fazer múltiplos desenhos num único grafo

• >>t = 0:.01:2*pi; • >>y1 = sin(t); y2=sin(2*t); y3=sin(4*t) • >>plot(t,y1,y2,y3) • E formando a matriz Y com os valores das funções como colunas.

• >>t = 0:.01:2*pi; • >>y = [sin(t)', sin(2*t)', sin(4*t)'] • >>plot(t,y) • Outra forma é o comando hold. O comando hold mantém o ecrã actual dos gráficos

de tal forma que os desenhos subsequentes possam ser sobrepostos. • Pode-se redefinir os tipos de linha e de pontos usados por defeito. • >>t = 0:.01:2*pi; • >>y1 = sin(t); y2=sin(2*t); y3=sin(4*t) • >>plot(t,y1,'--',y2,':',y3,'+')

Page 16: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Colors Line Styles • y yellow . point• M magenta o circle• C cyan x x-mark• R red + plus • G green - solid• B blue * star• W white : dotted• K black -. Dashdot• -- dashed

Mais tipos de marcas são ; square(s), diamond(d), up-triangle(v), down-triangle(^), left-triangle(<), right-triangle(>), pentagram(p), hexagram(h)

Ver também help plot para mais cores de linhas e marcas.

Page 17: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

O comando subplot pode ser usado para dividir o ecrã de forma a visualizar vários desenhos simultaneamente. Ver help subplot.

• Examplo para uso de subplot: • >>% Line plot of a chirp • >> x=0:0.05:5; • >> y=sin(x.^2); • >> subplot(2,2,1), plot(x,y); • >> % Bar plot of a bell shaped curve • >> x = -2.9:0.2:2.9; • >> subplot(2,2,2), bar(x,exp(-x.*x)); • >> % Stem plot • >> x = 0:0.1:4; • >> subplot(2,2,3), stem(x,y) • >> % Polar plot • >> t=0:.01:2*pi; • >> subplot(2,2,4), polar(t,abs(sin(2*t).*cos(2*t)));

Page 18: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Funções elementares de desenho

• Exemplo subplot

Page 19: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Salvaguarda e Carregamento

• Quando se usa o MATLAB, pode desejar guardar os vectores e matrizes que acabou de definir.

• SAVE, guarda as variáveis do espaço de trabalho para disco• SAVE FILENAME guarda todas as variáveis do espaço de trabalho para

um ficheiro binário "MAT “designado por FILENAME.mat. • Os dados podem ser recuperados com LOAD. • Se FILENAME não tiver extensão, é assumido o .mat . • SAVE, sem mais nada cria o ficheiro binário "MAT"

designado'matlab.mat'. • Dá um erro se não consguir escrever em 'matlab.mat'. • Para guardar o ficheiro na área de trabalho escreva • >>save filename • SAVE FILENAME X gurada apenas X. • SAVE FILENAME X Y Z guarda X, Y, e Z.

Page 20: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Salvaguarda e Carregamento

• LOAD carrega as variáveis do espaço de trabalho do disco.• LOAD FILENAME carrega todas as variáveis dum ficheiro dado

o nome de ficheiro absoluto ou relativo• Se FILENAME não tiver extensão LOAD verifica FILENAME e

FILENAME.mat e trata-a como uma "MAT-file“binária. • Se FILENAME tiver uma extensão diferente de.mat, é tratada

como ASCII.• LOAD, por si só usa uma "MAT-file" designada por

'matlab.mat'. Devolve erro se 'matlab.mat' não existir.LOAD FILENAME X carrega só o X.LOAD FILENAME X Y Z ... Carrega as varáveis especificadas.

• >>load x, y, z • Ver help save e help load para mais informação

Page 21: Introdução ao MatLab Aula 3 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola

Ficheiros M

• Os ficheiros M são macros de comandos do MATLAB que são armazendas como ficheiros de texto com extensão "m", isto é nomeficheiro.m.

• Um ficheiro M tanto pode ser uma função com variáveis de E/S ou uma lista de comandos.