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
1.0000
2.0000
1.0000
3.0000
1.5000
3.0000
1.5000
4.0000
2.0000
4.0000
2.0000
6.0000
3.0000
6.0000
3.0000
Vectores e Matrizes
>> D=c(2:3, 2:3)
D=
1.5000 2.0000
3.0000 4.0000
• >> who
Your variables are:
Dabc
Vectores e Matrizes
Examplo:
>> a=magic(4)
a=
16.0000 2.0000 3.0000
5.0000 11.5000 10.0000
9.0000
7.0000 6.0000
4.0000 14.5000 15.0000
13.0000
8.0000
12.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
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
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
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
Funções elementares de desenho
• Desenhos simples 2D
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;
Funções elementares de desenho
• Desenho do exemplo anterior
Funções elementares de desenho
PLOT(X,Y)
desenha o vector Y versus o vector X
TITLE('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 eixos
GTEXT('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.
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.
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;
Funções elementares de desenho
• Desenho
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,'+')
•
•
•
•
Funções elementares de desenho
•
•
•
•
•
•
•
•
•
•
Colors
y yellow
M magenta
C cyan
R red
G green
B blue
W white
K black
Line Styles
. point
o circle
x x-mark
+ plus
- solid
* star
: dotted
-. Dashdot
-- dashed
Mais tipos de marcas são ; square(s), diamond(d), up-triangle(v), downtriangle(^), left-triangle(<), right-triangle(>), pentagram(p), hexagram(h)
Ver também help plot para mais cores de linhas e marcas.
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)));
Funções elementares de desenho
• Exemplo subplot
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.
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
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.
Download

Introdução ao MatLab Aula 3