Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

21
Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Transcript of Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Page 1: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Introdução ao MatLabAula 3

Sistemas Telemáticos

5ºAno LESI/MCC

Universidade do Minho

Page 2: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Funções elementares de desenho

• Desenhos simples 2D

Page 9: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Funções elementares de desenho

• Desenho do exemplo anterior

Page 11: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Funções elementares de desenho

• Desenho

Page 15: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

Funções elementares de desenho

• Exemplo subplot

Page 19: Introdução ao MatLab Aula 3 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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 Telemáticos 5ºAno LESI/MCC Universidade do Minho.

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.