intro duca o am at lab parte 201
TRANSCRIPT
-
Ap
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Introduo ao Matlab
Srgio Manuel ngelo da Cruz
2007
-
2A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Introduo
Ferramentas Informticas de Apoio Engenharia: Matlab (Matrix Laboratory) e Simulink Labview Mathematica e Maple Mathcad Maxwell 2D / 3D, Ansys, Flux 2D ....e muitas outras.
-
3A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Introduo
Porqu o estudo do Matlab/Simulink e Labview? Uso intensivo destas ferramentas quer nas universidades quer na
indstria
O Matlab, com as suas caixas de ferramentas especficas (toolboxes), uma ferramenta usada em todas as reas da Engenharia Electrotcnica:
Controlo, Processamento de Sinal, Processamento de Voz e Imagem, Energia (Linhas de Transmisso, Mquinas Elctricas, Electrnica de Potncia, etc.), Redes Neuronais, Optimizao de Sistemas, etc.
-
4A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab - Introduo Ferramenta de clculo cientfico, vocacionada para o clculo
numrico
Permite o desenvolvimento de programas ao nvel da(o): Anlise numrica Anlise de dados Clculo matricial Processamento de sinais Construo de grficos etc.
-
5A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab - Introduo Nesta Unidade Curricular (UC) iremos apenas utilizar uma
pequena percentagem das funcionalidades do Matlab
Iremos abordar os conceitos bsicos numa primeira fase e aprofundar os conhecimentos ao longo do semestre.
-
6A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab Ambiente de Trabalho
Quando o Matlab iniciado, so visveis trs janelas distintas: A janela de comando (onde aparece o smbolo >>)
Uma outra janela, com os submenus da directoria actual e do ambiente de trabalho. Aqui exibida uma listagem dos ficheiros da directoria corrente bem como o ambiente de trabalho (workspace), onde consta uma listagem das variveis que vo sendo geradas/introduzidas pelo matlab/utilizador
A janela do histrico (parte inferior do lado esquerdo do monitor, onde aparece o histrico dos comandos introduzidos na janela de comando.
-
7A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab Operadores Aritmticos
Subtraco-
Adio+
Multiplicao*
Diviso esquerda\
Diviso direita/
Potenciao^
FuncionalidadeOperador
Nota: o Matlab respeita as prioridades habituais destes operadores.
-
8A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab Operadores Relacionais
Diferente~=
Igual==
Maior ou igual>=
Maior>
Menor ou igual
-
9A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Matlab Operadores Lgicos
OR (ou inclusivo)|
NOT (negao)~
ou exclusivoxor
AND (conjuno)&
FuncionalidadeOperador
Nota: Os operadores lgicos tm uma prioridade inferior dos operadores aritmticos e relacionais.
Exemplo:>> 1==2 & 4>=3ans =
0
-
10
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Tipos de dados no Matlab char (usar e no nas definies!!) numeric
single (4 bytes) double (8 bytes, tipo de dado por defeito) uint8 (inteiro de 1 byte, sem sinal) int64 (inteiro de 8 bytes, com sinal) ... e muitos outros ....
struct cell Informao adicional: usar o comando help datatypes
-
11
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Declaraes, constantes e variveis Definio de variveis e atribuio de valores s mesmas:
a=2 define uma varivel a e atribui-lhe o valor 2 b=isto uma aula; define a varivel b do tipo char c=3, d=23e-3 define e atribui valores a c e d d=int16(23) define d como sendo do tipo int16 e inicializa-o com o valor 23
A colocao de ; no fim da linha de comando instrui o matlab a no dar nenhuma resposta: Ver a diferena entre introduzir a=2 e a=2;
A qualquer altura pode ver as variveis que j foram criadas, com os comandos who e whos
ATENO: o matlab faz distino entre maisculas e minsculas, por isso y e Y so duas variveis distintas!!
-
12
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Definio de um vector linha X:
x=[1 20 45 1e-2 sin(pi)] define um vector linha com 5 elementos Em alternativa pode-se definir como x=[1,20,45,1e-2,sin(pi)] Outras formas de definir vectores:
>>x=1:3x =
1 2 3ou
>>x=2:3:11x =
2 5 8 11
Vector=valor mnimo:passo:valor mximo
-
13
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes A funo linspace permite criar vectores de elementos com
igual espaamento entre si:Vector=linspace(valor mnimo, valor mximo, nmero de elementos)
>>x=linspace(2,8,4)x =
2 4 6 8
>> x=linspace(2,7,4)x =
2.0000 3.6667 5.3333 7.0000
-
14
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Definio de uma matriz A, de dimenses 33:
>> A=[1 3 6;4 2 6;6 8 9]A =
1 3 64 2 66 8 9
Em alternativa, pode-se definir a matriz A linha a linha, premindo aps a introduo de cada linha>> A=[1 3 64 2 66 8 9]
A =1 3 64 2 66 8 9
-
15
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Para transpor um vector ou matriz, usa-se o operador :
>> y=[1 34 56]y =
13456
Pode-se aceder aos elementos das matrizes atravs do nmero da linha e coluna onde tais elementos esto localizados: A(x,y) devolve o elemento da matriz A situado na linha x e coluna y.
Por exemplo A(1,2)=3 Pode-se tambm extrair mais do que um elemento simultaneamente.
Por exemplo A(2,:) devolve toda a segunda linha da matriz A
-
16
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Pode-se ainda obter submatrizes usando comandos, para alm dos
ndices. Por exemplo:>> A(3,2:end)ans =
8 9 Neste caso, o comando end indica que se devem extrair os elementos da
matriz, desde a segunda at ltima coluna Outros exemplos:
>> B(7, 1:5); % L as colunas 1-5 (de 1 a 5) na linha 7>> B(4:2:8, 1:5); % L as colunas 1-5 nas linhas 4, 6 e 8>> B(:, 1:5); % L as colunas 1-5 em todas as linhas
Notas importantes: o matlab armazena a ltima resposta na varivel ans (de answer); uma sequncia de nmeros pode ser gerada usando a sintaxe incio:passo:fim
-
17
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Para se conhecerem as dimenses de uma matriz ou vector,
pode-se usar o comando size:>> size(x)ans =
1 4 Para aceder individualmente ao nmero de linhas e colunas,
poder-se- escrever>> [linhas,colunas]=size(A); Neste exemplo, linhas e colunas so variveis que sero inicializadas
com o nmero de linhas e colunas da matriz A
No caso de vectores, pode-se ainda usar o comando lengthpara obter o comprimento dos mesmos
-
18
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Pode-se transformar uma matriz num vector coluna usando
: da seguinte forma:
>> B=[1 34 45;4 5 6;100 200 300]B =
1 34 454 5 6
100 200 300
>> x=B(:)x =
14
100345
200456
300
-
19
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Nas operaes entre matrizes, utilizam-se os mesmos operadores
aritmticos que entre escalares No entanto, pode-se preceder o operador aritmtico de um .. Esse facto
indica ao matlab que a operao deve ser efectuada elemento a elemento. Um exemplo:
>> A=[1 2;3 4]; B=[3 5;1 0.5];>> C=A*BC = % Produto habitual de duas matrizes
5 613 17
>> C=A.*B % Neste caso C(i,j)=A(i,j)*B(i,j)C =
3 103 2
-
20
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Vectores e Matrizes Criao de matrizes especiais:
Cria uma matriz composta por elementos aleatrios (entre 0 e 1 no caso de rand)rand(m,n) e randn(m,n)Cria uma matriz diagonal (se X vector) ou extrai elementos da diagonal (se X matriz)diag(X)
Cria uma matriz composta por elementos nuloszeros(m,n)
Cria uma matriz identidade de dimenses mneye(m,n)Cria uma matriz composta por elementos unitriosones(m,n)
FuncionalidadeComando
No caso de se fornecer apenas um argumento s funes anteriores, so criadas matrizes quadradas
-
21
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Funes Sobre Escalares
signtan
remlog e log10
ratsatan
floorexp
roundacos
ceilcos
sqrtsin
absasin
Funes usadas frequentemente
Nota: no caso de funes trigonomtricas, o argumento ter de ser fornecido em radianos
-
22
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Funes Sobre Vectores e Matrizes
anyall
sumprod
minmax
sortmedian
stdmean
Funes mais usuais
-
23
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Funes Sobre Matrizes
triltriu
rankcondnormsizesqrtmexpmschurhess
qrluinvsvd
choleig
detpoly
Funes mais usuais
-
24
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Formatao da Sada O comando format permite alterar a forma como o matlab
apresenta os nmeros no monitor
2/3format rat3fe5555555555555format hex6.666666666666666e-001format long e0.666666666666667format long
0.6667format short
0.67format bank
6.6667e-001format short e
Formato da sadaComando
-
25
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Utilidades Diversas A funo clear permite eliminar parte ou todas as variveis criadas
anteriormente:>> clear x % elimina o vector x>> clear A B % elimina as matrizes A e B>> clear % elimina todas as variveis no permanentes>> clear all % idntico a clear mas elimina tambm funes, atalhos MEX, etc.,
etc.
Existem variveis que o matlab j traz definidas por defeito e que no podem ser apagadas (variveis permanentes): pi % nmero pi inf % infinito NaN % no numrico, por exemplo 0/0 i e j % nmero complexo i=j=sqrt(-1) realmin % menor nmero real positivo que o matlab consegue representar realmax % maior nmero real positivo que o matlab consegue representar
-
26
A
p
l
i
c
a
e
s
I
n
f
o
r
m
t
i
c
a
s
p
a
r
a
E
n
g
e
n
h
a
r
i
a
Srgio Cruz
Utilidades Diversas Quando se sai do matlab, perdem-se todas as variveis. O comando
save permite gravar todas as variveis no ficheiro matlab.mat (defeito) O comando load permite restaurar as variveis a partir desse ficheiro Pode-se gravar apenas algumas variveis. Um exemplo:
>>save backup_aula A B x % grava as matrizes A, B e o vector x>>clear % elimina todas as variveis>>load backup_aula % restaura as variveis gravadas
O matlab pode gravar todos os comandos introduzidos na janela decomando. Para esse efeito usa-se o comando diary:>>diary arquivo % grava todos os comandos (excepto grficos)
Para suspender este comando faz-se diary off e para voltar a habilit-lo faz-se diary on
O comando clc permite limpar a janela de comando
/ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False
/Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure true /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles true /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /NA /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /LeaveUntagged /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice