Escolar Documentos
Profissional Documentos
Cultura Documentos
MATLAB
MATLAB
Escola de Engenharia
Curso de Engenharia de Telecomunicaes
Programa de Educao Tutorial
Grupo PET-Tele
(Verso: A2011M11D01)
Niteri - RJ
Novembro / 2011
Prefcio
Tendo em vista as diretrizes do MEC em pesquisa, ensino e extenso, o Programa de
Educao Tutorial (PET) do curso de Engenharia de Telecomunicaes da Universidade
Federal Fluminense (UFF) desenvolveu um projeto de elaborao de apostilas e cursos
voltados para a graduao. O intuito desse trabalho auxiliar alunos no aprendizado de
temas importantes para sua formao, que no esto presentes em nenhuma das disciplinas, e, alm disso, servir de material didtico para cursos de capacitao ministrados
pelos bolsistas do Programa aos corpos discente e docente da graduao.
Abaixo segue a lista de apostilas preparadas nesse projeto.
HTML - linguagem de programao para hipertextos, empregada, principalmente, na
construo de pginas da Internet (webpages).
LaTeX - sistema de edio de texto largamente utilizado em meios acadmicos e cientficos, bem como por editoras nacionais e internacionais.
Linux - introduo ao sistema operacional LINUX.
Linguagem C - linguagem de programao amplamente utilizada em problemas de engenharia e computao.
MATLAB - ambiente de simulao matemtica, utilizado em diversas reas profissionais.
Spice - ambiente de simulao de circuitos eltricos (analgicos e digitais), utilizado em
projeto de circuitos discretos e integrados.
Este documento destina-se a introduzir o usurio ao ambiente do Matlabr .
Sabendo-se da imensa quantidade de funes e da existncia de um acervo de documentao prprio includo no programa, esta apostila no pretende esgotar o tema como
um manual. Ela destina-se a introduzir, de forma sucinta, o usurio ao ambiente do programa, mostrando e exemplificando as ferramentas bsicas de utilizao do mesmo. Para
maiores informaes e um estudo mais aprofundado, consulte as referncias bibliogrficas
no fim do documento.
muito importante, para um melhor aprendizado, que o leitor esteja em frente a
um computador com o software instalado. medida que se l a apostila, comandos e
operaes devem ser testados no programa.
Interessa ainda mencionar que sero destacados, ao longo das pginas, comandos e
funes teis s disciplinas do curso de Engenharia de Telecomunicaes, organizadas em
sees relativas a suas aplicaes.
Verso atual:
ltimas atualizaes:
Sumrio
Prefcio
1 Introduo
1.1 Informaes iniciais . . . . . . .
1.2 Janelas . . . . . . . . . . . . . .
1.3 Ajuda . . . . . . . . . . . . . .
1.4 Bibliotecas do Matlabr . . .
.
.
.
.
1
1
1
2
3
2 Variveis
2.1 Declarao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Manipulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Variveis pr-definidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
6
3 Nmeros e matrizes
3.1 Representao numrica
3.2 Formatos de visualizao
3.3 Definio de matrizes . .
3.4 Indexao . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
de nmeros
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
19
19
21
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
23
24
24
.
.
.
.
.
.
.
.
.
.
7 Funes polinomiais
27
iii
iv
Sumrio
8 Grficos
29
8.1 Grficos de duas dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2 Grficos de trs dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.3 Funes auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9 Funes polinomiais racionais complexas
39
10 Programao
10.1 Funes e scripts
10.2 Controle de fluxo
10.2.1 Estruturas
10.2.2 Estruturas
43
43
44
44
46
. . . . . . .
. . . . . . .
condicionais
de repetio
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
PET
Tele))
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
frequncia 49
. . . . . . . . 49
. . . . . . . . 50
. . . . . . . . 51
UFF
Captulo 1
Introduo
1.1
Informaes iniciais
O Matlabr (abreviatura de MATrix LABoratory - Laboratrio de Matrizes) um software de simulao matemtica que realiza operaes matriciais, constri grficos em duas
ou trs dimenses, auxilia no processamento de sinais, alm de manipular outras funes
especializadas.
Ele trabalha com uma linguagem de programao de alto nvel, em um ambiente
interativo, para o desenvolvimento de algoritmos, anlise e visualizao de dados e computao numrica. Prprio para as reas tcnica e cientfica, o software tem funes de
tratamento numrico de alto desempenho, capazes de resolver problemas computacionais
tcnicos de forma mais eficiente do que as tradicionais linguagens de programao.
Alm do ambiente interativo, outra facilidade do Matlabr a possibilidade de execuo de arquivos texto, contendo uma sequncia de instrues definidas pelo usurio.
Esses arquivos texto, que tm extenso .m, podem ser criados e editados dentro ou fora
do seu ambiente.
1.2
Janelas
Captulo 1. Introduo
por vrgula ou ponto-e-vrgula. Comandos muito longos para uma linha podem ser interrompidos por trs pontos ... e continuados na linha seguinte. O exemplo a seguir
ilustrativo quanto a esses detalhes.
1.3
Ajuda
Atravs do comando help, o usurio pode consultar a ajuda do Matlabr . Escrevendose help e o nome da funo, mostrado um pequeno resumo da funo (normalmente de
uma linha) seguido de uma descrio mais detalhada da mesma.
PET
Tele))
UFF
1.4
Bibliotecas do Matlabr
O Matlabr apresenta uma srie de comandos, operadores e funes primitivas, organizadas por categorias, assim como rotinas especficas de diversas reas da engenharia,
organizadas em bibliotecas denominadas Toolboxes. Estas categorias e bibliotecas so designadas por tpicos primrios. Para a visualizao de todos estes tpicos, basta digitar
o comando help.
Alguns desses tpicos primrios so:
general - comandos gerais
ops - operadores e caracteres especiais
control - biblioteca de sistemas de controles
signal - biblioteca de processamento de sinais
optim - biblioteca de otimizao
Outras bibliotecas abrangem campos variados como aquisio e processamento de
imagem, bio-informtica, telecomunicaes, lgica difusa e realidade virtual.
Para se aprofundar mais em qualquer biblioteca, basta digitar o comando help tpico.
UFF
PET
Tele))
PET
Tele))
Captulo 1. Introduo
UFF
Captulo 2
Variveis
2.1
Declarao
2.2
Manipulao
Existem comandos prprios para manipulao de variveis. Abaixo esto listados os mais
utilizados.
who: Lista os nomes das variveis.
whos: Lista o nome e o tipo das variveis.
clear: Elimina todas as variveis da rea de trabalho. Para se apagar uma ou mais
variveis utiliza-se o comando clear seguido dos nomes das variveis separadas por
espao.
Captulo 2. Variveis
2.3
Variveis pr-definidas
No Matlabr , existem algumas variveis pr-definidas que podem ser teis ao usurio,
as quais so listadas na Tabela 2.1.
Varivel
ans
pi
eps
inf
NaN ou nan
i ou j
nargin
nargout
realmin
realmax
bitmax
Representao
Varivel padro para armazenar resultados.
Razo entre o permetro da circunferncia e o seu dimetro.
Preciso de ponto flutuante, ou distncia entre o 1 e o prximo nmero real.
Infinito (por exemplo, resultado da diviso 1/0).
Not-a-Number ou valor no-numrico (exemplo:
resultado de 0/0).
Caso o usurio defina e utilize uma varivel com o mesmo nome de alguma das variveis
ou das funes pr-definidas, ela funcionar como uma varivel comum, perdendo seu
significado original. Quando apagada, ela retornar ao seu comportamento pr-definido.
>> i=999
i =
999
>> clear i
>> i
ans =
0 + 1.0000i
PET
Tele))
UFF
Captulo 3
Nmeros e matrizes
3.1
Representao numrica
3.2
Comando
format short
format long
format short e
format long e
format short g
format long g
format hex
format +
format bank
format rat
format debug
2
1.4142
1.41421356237310
1.4142e+000
1.414213562373095e+000
1.4142
1.4142135623731
3ff6a09e667f3bcd
+
1.41
1393/985
Structure address = 12ac208
m=1
n=1
pr = 12600c0
pi = 0
1.4142
Comentrio
5 dgitos (ponto fixo).
15 dgitos (ponto fixo).
5 dgitos e expoente (ponto flutuante).
15 dgitos e expoente (ponto flutuante).
O melhor entre short e short e.
O melhor entre long e long e.
Hexadecimal em ponto flutuante.
Positivo +, negativo ou zero .
2 casas decimais representando moeda.
Aproximao racional.
short g e informaes sobre
armazenagem interna.
3.3
Definio de matrizes
Existem diversas formas de se montar uma matriz. A mais simples delas utiliza elementos
denominados aglutinadores, representados simbolicamente por colchetes, [ e ] . A
funo dos aglutinadores consiste em concatenar (encadear), horizontalmente ou verticalmente, dados de um mesmo tipo, podendo formar matrizes numricas ou vetores de
caracteres (strings).
O exemplo abaixo mostra a concatenao de duas palavras com um espao no meio,
todos definidos entre aspas simples (tipo caracter).
>> a=Duas;
>> b= ;
>> c=palavras.;
>> [a b c]
ans =
Duas palavras.
Entendido o conceito de aglutinao, que ser muito utilizado daqui em diante, tornase fcil a tarefa de definir uma matriz. Uma matriz montada linha aps linha, onde
espao ou vrgula indicam transio de coluna e ponto-e-vrgula indica transio de linha.
PET
Tele))
UFF
>> [1,2;3,4]
ans =
1
2
3
4
>> [ans [5;6]]
ans =
1
2
3
4
5
6
11
16
4.7100
5.7100
Uma terceira forma de criar vetores utiliza a funo linspace, que espaa linearmente
um determinado nmero de elementos entre um valor final e um inicial. Sua sintaxe :
linspace(valor_inicial, valor_final, nmero_de_elementos)
>> linspace(0,10,5)
ans =
0
2.5000
5.0000
7.5000
10.0000
3.1623
5.6234
10.0000
Existem muitas outras formas de se criar uma matriz. Apenas a ttulo de curiosidade,
a funo xlsread l uma matriz a partir de um arquivo XLS gerado pelo programa
Microsoft Excelr .
UFF
PET
Tele))
10
3.4
Indexao
O padro de indexao matricial no Matlabr a forma tradicional intuitiva (r, c), onde
r representa o nmero da linha e c representa o nmero da coluna.
>> m=[.1 .2 .3 .4 .5 ; .6 .7 .8 .9 1 ; 1.1 1.2 1.3 1.4 1.5]
m =
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
1.1000
1.2000
1.3000
1.4000
1.5000
>> m(2,5)
ans =
1
Os elementos da matriz tambm podem ser indexados seqencialmente, conforme ilustrado na Tabela 3.2.
1
1
2
3
(1)
(2)
(3)
2
0.1
0.6
1.1
(4)
(5)
(6)
3
0.2
0.7
1.2
(7)
(8)
(9)
4
0.3
0.8
1.3
(10)
(11)
(12)
5
0.4
0.9
1.4
(13)
(14)
(15)
0.5
1.0
1.5
1.2000
1.3000
>> m(1,3:end)
ans =
0.3000
0.4000
0.5000
1.4000
>> m(:,5)
ans =
0.5000
1.0000
1.5000
PET
Tele))
UFF
3.4. Indexao
11
O conceito de indexao pode ser ampliado quando no lugar dos ndices colocam-se
vetores ou matrizes de ndices.
>> m([1 3],[2 4])
ans =
0.2000
0.4000
1.2000
1.4000
>> m([1 5 9; 4 8 12])
ans =
0.1000
0.7000
0.2000
0.8000
1.3000
1.4000
Caso se coloque um ndice que exceda as dimenses da matriz, o resultado ser uma
mensagem de erro. Por outro lado, se for definido um novo elemento que exceda essas
mesmas dimenses, ento a matriz ser redimensionada de forma a incluir esse novo
elemento, sendo as novas posies preenchidas com 0.
>>m(4,6)=2.1
ans =
0.1000
0.6000
1.1000
0
UFF
0.2000
0.7000
1.2000
0
0.3000
0.8000
1.3000
0
0.4000
0.9000
1.4000
0
0.5000
1.0000
1.5000
0
0
0
0
2.1000
PET
Tele))
12
PET
Tele))
UFF
Captulo 4
Operaes com matrizes
4.1
Operaes aritmticas
13
14
4.2
Os operadores relacionais e lgicos so usados em expresses lgicas booleanas para implementar testes de tomadas de deciso, fornecendo respostas do tipo verdadeiro/falso a
perguntas. Para o Matlabr , qualquer nmero diferente de zero representa o valor lgico
verdadeiro, e zero representa o valor lgico falso.
Os operadores relacionais e lgicos so apresentados na Tabela 4.1.
Operador
<
<=
>
>=
==
~=
&
|
Descrio
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a (no confundir com = )
Diferente de
E
OU
NO
PET
Tele))
UFF
15
10
>> y=x>=5
y =
0
UFF
PET
Tele))
16
PET
Tele))
UFF
Captulo 5
Funes matriciais
Qualquer funo no Matlabr tem como sintaxe geral o seguinte padro:
[Sada1, ... , SadaN] = Nome (Entrada1, ... , EntradaN)
Os parmetros de entrada devem ser postos na ordem adequada e representam os
dados fornecidos pelo usurio. Eles so processados pela funo, que gera os parmetros
de sada, os quais so armazenados nas variveis definidas pelo usurio no comando de
chamada da funo. Deve-se ressaltar que os parmetros de entrada so escritos dentro de
parnteses e os de sada dentro de colchetes, segundo a sintaxe geral de funes e matrizes,
respectivamente.
Os parmetros de entrada podem ser fornecidos de duas formas: escrevendo-se diretamente o nmero ou matriz, ou escrevendo-se o nome da varivel correspondente.
Caso as variveis de sada no sejam fornecidas pelo usurio, o programa retorna
apenas a primeira sada (Sada1 ) na varivel padro ans.
Abaixo, so apresentadas algumas das funes mais utilizadas para criao e manipulao de matrizes. Matrizes definidas em alguns dos exemplos podero ser utilizadas em
exemplos posteriores desse mesmo captulo.
A maioria das funes no Matlabr apresenta inmeras opes de funcionamento.
Para cada funo, ser abordado apenas um exemplo simples. Detalhamento das funes
pode ser obtido atravs do comando de ajuda help nome_da_funo.
5.1
Matrizes elementares
ones: cria uma matriz cujos elementos so todos iguais a 1, dados o nmero de
linhas e colunas da matriz, respectivamente.
>> ones(2,3)
ans =
1
1
1
1
1
1
Para se criar uma matriz com todos os elementos iguais a um nmero qualquer N,
basta multiplicar a matriz gerada por N ou multiplicar diretamente o comando por
N (N*ones).
17
18
zeros: cria uma matriz cujos elementos so todos iguais a 0, dados os nmeros de
linhas e colunas.
>> zeros(3,2)
ans =
0
0
0
0
0
0
eye: cria uma matriz identidade, dada sua ordem.
>> eye(3)
ans =
1
0
0
1
0
0
0
0
1
0.6068
0.4860
0.8913
0.7621
0.4565
0.0185
0.8214
0.4447
0.6154
0.7919
0.9218
0.7382
Esta funo muito til para, por exemplo, se fazer testes em programas que vo
trabalhar com dados imprevisveis.
5.2
lgebra linear
PET
Tele))
UFF
19
5.3
0
3.7321
5.4
Manipulao de matrizes
UFF
7
8
9
10
PET
Tele))
20
9
8
7
1
4
7
9
6
3
diag: cria um vetor a partir da diagonal principal de uma matriz de entrada ou cria
uma matriz diagonal a partir de um vetor de entrada.
>> diag(b)
ans =
1
5
9
>> diag(ans)
ans =
1
0
0
5
0
0
PET
Tele))
0
0
9
UFF
21
3
6
9
5.5
0
0
9
Anlise de dados
sum: retorna a soma dos elementos de cada coluna de uma matriz de entrada ou a
soma dos elementos de um vetor de entrada.
>> sum(b)
ans =
12
15
18
>> sum(ans)
ans =
45
prod: retorna o produto dos elementos de cada coluna de uma matriz de entrada
ou o produto dos elementos de um vetor de entrada.
> prod([2 3 1; 2 4 5])
ans =
4
12
5
>> prod(ans)
ans =
240
mean: retorna a mdia aritmtica dos elementos de cada coluna de uma matriz de
entrada ou a mdia aritmtica dos elementos de um vetor de entrada.
>> mean( [1 -2 3 -4; 5 -6 7 -8] )
ans =
3
-4
5
-6
UFF
PET
Tele))
22
PET
Tele))
-2
-4
-6
-8
UFF
Captulo 6
Funes matemticas elementares
O Matlabr possui diversas funes matemticas elementares, as quais podem ser listadas
pelo comando help elfun. Abaixo, esto listadas as mais comumente utilizadas.
6.1
Funes trigonomtricas
sec
sech
asec
csc
csch
acsc
cot
coth
acot
seno
seno hiperblico
arco seno
cosseno
cosseno hiperblico
arco cosseno
tangente
tangente hiperblica
arco tangente
secante
secante hiperblica
arco secante
cossecante
cossecante hiperblica
arco cossecante
cotangente
cotangente hiperblica
arco cotangente
>> cos(pi)
ans =
-1
>> acos(ans)
ans =
3.1416
6.2
Funes exponenciais
exp
log
log10
log2
sqrt
exponencial (ex )
logaritmo neperiano ou natural (ln x)
logaritmo na base 10 (log10 x)
logaritmo na base 2 (log2 x)
raiz quadrada ( x)
23
24
>> log(exp(10))
ans =
10
>> sqrt(log10(ans))
ans =
1
6.3
Funes complexas
abs
angle
conj
real
imag
>> z=4-3*i
z =
4.0000 - 3.0000i
>> abs(z)
ans =
5
>> real(z)+imag(z)*i
ans =
4.0000 - 3.0000i
>> conj(z)
ans =
4.0000 + 3.0000i
6.4
fix: Aproxima para o inteiro de menor valor absoluto, ignorando as casas decimais.
floor: Aproxima para o inteiro antecessor.
ceil: Aproxima para o inteiro sucessor.
round: Arredonda para o inteiro mais prximo.
rem (remainder after division): Resto de diviso inteira, dados respectivamente o
dividendo e o divisor. Para dividendos negativos, sendo x e y inteiros positivos,
rem(-x,y)=-rem(x,y). Mais detalhes em help rem.
PET
Tele))
UFF
25
mod (modulus after division): Resto de diviso inteira, dados respectivamente dividendo e o divisor. Para dividendos negativos, sendo x e y inteiros positivos,
mod(-x,y)=y-mod(x,y) se mod(x,y)6=0, ou mod(-x,y)=0 caso contrrio. Mais detalhes em help mod.
sign: Retorna +1 para nmeros positivos, 1 para nmeros negativos e 0 para
nmeros iguais a zero.
>> x=[-4:4]
x =
-4
-3
-2
-1
>> rem(x,3)
ans =
-1
0
-2
-1
>> mod(x,3)
ans =
2
0
>> sign(x)
ans =
-1
-1
-1
-1
Observaes:
1. REM(x,y) tem o mesmo sinal de x, enquanto MOD(x,y) tem o mesmo sinal de y.
2. REM(x,y) e MOD(x,y) so iguais se x e y possuem o mesmo sinal, mas diferem de
y se x e y possuem sinais opostos.
UFF
PET
Tele))
26
PET
Tele))
UFF
Captulo 7
Funes polinomiais
No Matlabr , um vetor pode ser interpretado como um polinmio quando cada um de
seus elementos associado a cada um dos coeficientes do polinmio, comeando pelos
coeficientes dos termos de maior grau. Assim, por exemplo, [2 -7 1] ser interpretado
como 2x2 7x + 1.
Tendo isso em conta, listam-se abaixo algumas das funes que trabalham com polinmios. Vetores definidos em alguns exemplos podero ser utilizados em exemplos posteriores.
roots: Retorna um vetor com as razes de um polinmio de entrada.
>> a=[1,5,6]
a =
1
5
>> roots(a)
ans =
-3
-2
polyval: Retorna o valor ou a imagem de um polinmio, dados respectivamente o
polinmio e o valor de sua varivel independente.
>> polyval(a,2)
ans =
20
Isto o mesmo que 1(2)2 + 5(2) + 6 = 20.
poly: Cria um polinmio a partir de um vetor de entrada contendo suas razes.
>> poly([-3,-2])
ans =
1
5
6
27
28
32
24
Neste exemplo, mostra-se que (x2 + 5x + 6)(2x + 4) = 2x3 + 14x2 + 32x + 24.
PET
Tele))
UFF
Captulo 8
Grficos
8.1
O Matlabr um software muito eficiente na criao e manipulao de grficos, apresentando diversas funes que auxiliam essas operaes.
Basicamente, os grficos so construdos conforme os passos abaixo:
1. Cria-se um vetor X com as coordenadas do eixo das abscissas;
2. Escreve-se a funo desejada, a partir do vetor X, a qual criar um novo vetor Y das
ordenadas;
3. Desenha-se o grfico, o que ser ensinado mais adiante.
Os pares ordenados (x,y) assim criados so marcados no grfico e ligados por segmentos retas (interpolao linear). Observa-se, portanto, que, quanto menor for o incremento
do vetor X, mais pares ordenados sero criados e, conseqentemente, melhor ser a preciso
do grfico. Em compensao, uma maior quantidade de memria utilizada.
Entre as inmeras funes existentes, esto listadas abaixo apenas as mais usadas.
plot: Desenha grficos de duas dimenses, dados o vetor de abscissas e o vetor de
ordenadas.
>> X=[0:0.2:10];
>> Y=X.^2;
>> plot(X,Y)
A funo plot pode ser tambm usada no desenho de mais de um grfico em uma
mesma figura. Para isso, usa-se a seguinte notao:
plot(X1, Y1, X2, Y2, ... , Xn, Yn) ,
onde X1 e Y1 correspondem s coordenadas do grfico 1, X2 e Y2 correspondem
s coordenadas do grfico 2, e assim sucessivamente.
29
30
Captulo 8. Grficos
Marcador
. ponto
o crculo
x xis
+ cruz
* estrela
s quadrado
d losango
v tringulo p/ baixo
^ tringulo p/ cima
< tringulo p/ esquerda
> tringulo p/ direita
p pentagrama
h hexagrama
Tipo de linha
slida
:
pontilhada
-. trao-ponto
-- tracejada
PET
Tele))
UFF
31
subplot(2,2,1)
plot(X,X.^2)
subplot(2,2,2)
plot(X,10*X)
subplot(2,2,3)
plot(X,log10(X+1))
PET
Tele))
32
Captulo 8. Grficos
>> clf
>> semilogx(X,10*X)
PET
Tele))
UFF
33
8.2
O Matlabr apresenta diversos recursos para apresentao de grficos em 3D. As principais funes so listadas abaixo.
plot3: Plota pontos e linhas em 3D, a partir de trs vetores de coordenadas de
mesmo tamanho.
>> t = 0:0.1:10*pi;
>> plot3(t.*sin(t),t.*cos(t),t);
UFF
PET
Tele))
34
Captulo 8. Grficos
>> x=[0 1]
x =
0
>> y=[2 3 4]
y =
2
>> [X,Y]=meshgrid(x,y)
X =
0
1
0
1
0
1
Y =
2
3
4
2
3
4
PET
Tele))
UFF
35
8.3
Funes auxiliares
Existem diversas funes que auxiliam a visualizao e a formatao dos grficos. As mais
importantes so apresentadas abaixo.
title: Adiciona um ttulo ao grfico corrente. Esse ttulo um texto que deve ser
escrito entre aspas simples, conforme a sintaxe:
title(Ttulo do Grfico)
xlabel: Adiciona um texto ao eixo das abscissas do grfico corrente.
ylabel: Adiciona um texto ao eixo das ordenadas do grfico corrente.
text: Cria um texto posicionado na coordenada fornecida, conforme a sintaxe:
text(X, Y, Texto)
grid: Mostra linhas de grade no grfico corrente.
axis: Delimita os intervalos dos eixos de acordo com a sintaxe:
axis([Xmin Xmax Ymin Ymax])
Essa funo ajusta o grfico para os intervalos delimitados pelo usurio. Outras
aplicaes podem ser vistas em help axis.
hold on: Permite que novos grficos sejam criados na janela corrente sem que os
grficos anteriores sejam apagados.
hold off : Desabilita o comando anterior.
UFF
PET
Tele))
36
Captulo 8. Grficos
x=[-5*pi:0.1:5*pi];
y=sin(x)./x;
plot(x,y);
title(\it{Sample})
xlabel(x);
ylabel(sin(x)/x);
axis([-15 15 -0.3 1.1]);
text(-2*pi, 0, -2\pi);
text(2*pi, 0, 2\pi);
whitebg([0.4057 0.9355 0.9169]);
PET
Tele))
UFF
Propriedade
Tipo de fonte
Tamanho de fonte
Negrito
Itlico
Subscrito
Sobrescrito
Letra grega
37
Sintaxe
\fontname{}
\fontsize{}
\bf{}
\it{}
_{}
^{}
\letra
Exemplo
\fontname{Arial}
\fontsize{14}
\bf{Negrito}
\it{Itlico}
R_{1}
x^{2}
\pi
UFF
PET
Tele))
38
PET
Tele))
Captulo 8. Grficos
UFF
Captulo 9
Funes polinomiais racionais
complexas
Uma funo polinomial racional complexa definida como uma razo de polinmios de
variveis complexas, conforme a equao
H(s) =
bm sm + ... + b1 s + b0
(s + z1 )(s + z2 )...(s + zm )
NH (s)
=
= (k)
,
n
DH (s)
an s + ... + a1 s + a0
(s + p1 )(s + p2 )...(s + pn )
>> den=[1,5,6]
den =
1
5
>> [z,p,g]=tf2zp(num,den)
z =
-1
p =
-3
-2
g =
1
39
40
PET
Tele))
UFF
41
bode: Desenha os grficos de mdulo |H(j)|dB e ngulo de fase H(j) da resposta em frequncia H(j) = H(s)|s=j , dado o objeto relativo funo de transferncia H(s).
>> bode(H)
O comando bode(H,) desenha o grfico para um dado vetor de frequncias ,
enquanto o comando bode(H,{min ,max }) desenha-o para a faixa de frequncias
[min ; max ].
>> bode(H,{1e-1,1e2})
UFF
clf;
w=logspace(-1,2,101);
Hjw=freqs(num,den,w);
moddb=20*log10(abs(Hjw));
fase=180*angle(Hjw)/pi;
subplot(2,1,1), semilogx(w,moddb);
title(Resposta em freqncia), ylabel(|H(j\omega)|_{dB});
subplot(2,1,2), semilogx(w,fase);
ylabel(\angle H(j\omega) (graus)), xlabel(\omega (rad/s));
PET
Tele))
42
PET
Tele))
UFF
Captulo 10
Programao
10.1
Funes e scripts
43
44
Aps escrito o cdigo, o arquivo dever ser salvo com o mesmo nome da funo e com
a extenso .m (no exemplo, complexo.m).
Uma condio necessria para a execuo de arquivos M que eles estejam no diretrio corrente do Matlabr . Para execuo de um script, feita na barra de ferramentas
da janela de edio pela opo Debug>Run ou File>Run Script (dependendo da verso
do Matlabr ), a mudana de diretrio corrente automtica, sendo desnecessria a
interveno do usurio.
A mudana de diretrio corrente pode ser feita clicando-se no boto da janela principal do programa contendo ..., ao lado de Current Directory, ou por um dos seguintes
comandos.
10.2
Controle de fluxo
As linguagens imperativas de programao de computadores caracterizam-se pela execuo sequencial de comandos. Elas possuem ainda recursos que permitem o controle de
fluxo de execuo de comandos com base em estruturas de tomada de deciso. Nesta
seo, sero vistas as estruturas mais comuns.
10.2.1
Estruturas condicionais
Uma estrutura condicional permite a seleo de um conjunto de comandos a serem executados quando uma dada condio for ou no satisfeita, podendo assim modificar o fluxo
natural de comandos. As trs estruturas condicionais bsicas do Matlabr esto listadas
a seguir.
PET
Tele))
UFF
Estrutura if 1
if condio
comandos
end
45
Estrutura if 2
if condio1
comandos1
else
comandos2
end
Estrutura if 3
if condio1
comandos1
elseif condio2
comandos2
elseif condio3
comandos3
...
else
comandosN
end
A=2; B=3;
if A==B
display(A e B iguais.) % Exibe texto na Janela de Comando.
else
display(A e B diferentes.)
end
Quando se faz uso repetido de testes de igualdade com apenas um argumento comum,
costuma-se usar a estrutura switch-case. Essa estrutura tem a seguinte forma:
switch var_teste
case expresso_teste1
comandos1
case {expresso_teste2, expresso_teste3, expresso_teste4 }
comandos2
otherwise
comandos3
end
PET
Tele))
46
clear all
num=input(Escreva um inteiro: ); % Exibe texto e l valor para a varivel.
switch num
case 1
y=1
case {2, 2.5}
y=2
case tres
y=3
case {quatro, Quatro, QUATRO }
y=4
otherwise
y=0
end
10.2.2
Estruturas de repetio
Uma estrutura de repetio faz com que uma sequncia de comandos seja executada repetidamente enquanto se satisfaa uma dada condio. O Matlabr possui duas estruturas
de repetio: for e while.
Estrutura for
for varivel =inic:incr:fim
comandos
end
Estrutura while
while condio
comandos
end
A condio da estrutura for que varivel seja menor ou igual a fim. Enquanto
satisfeita essa condio, ao trmino de cada loop de comandos, varivel incrementada
de incr. O incremento incr considerado unitrio caso seja omitido.
Abaixo, segue um exemplo de clculo de mdia, usando-se, de forma comparativa, as
duas estruturas.
PET
Tele))
UFF
47
clear all
x=input(Vetor de amostras: );
compr=length(x); % retorna o comprimento do vetor
soma_f=0;
for k=1:compr
soma_f=soma_f+x(k);
end
media_f=soma_f./compr;
soma_w=0;
k=1;
while k<=compr
soma_w=soma_w+x(k);
k=k+1;
end
media_w=soma_w./compr;
disp(Media do for: ); % Exibe string
disp(media_f); % Exibe valor da varivel
disp(Media do while: );
disp(media_w);
UFF
PET
Tele))
48
PET
Tele))
UFF
Apndice A
Funes relativas a aproximaes para
filtros seletores em frequncia
Este captulo contm os principais comandos do Matlabr , para o projeto de filtros
analgicos e digitais. Existem vrias tcnicas de aproximao para a construo de filtros.
Cada tcnica usada de acordo com as especificaes do sistema a ser projetado.
A seguir, so apresentados os comandos com as opes utilizadas no projeto de filtros
analgicos. Para os filtros digitais, consulte o manual, atravs do comando help comando.
A.1
Butterworth
Wp
Wp
Wp
Wp
=
=
=
=
x
y
[x1 x2]
[y1 y2]
Ws
Ws
Ws
Ws
=
=
=
=
y
x
[y1 y2]
[x1 x2]
49
50
A.2
Chebyshev
Wp
Wp
Wp
Wp
=
=
=
=
x
y
[x1 x2]
[y1 y2]
Ws
Ws
Ws
Ws
=
=
=
=
y
x
[y1 y2]
[x1 x2]
PET
Tele))
Wp = x
Ws = y
UFF
passa-alta:
banda de passagem:
banda de rejeio:
51
Wp = y
Wp = [x1 x2]
Wp = [y1 y2]
Ws = x
Ws = [y1 y2]
Ws = [x1 x2]
A.3
Elptico (Cauer)
Wp
Wp
Wp
Wp
=
=
=
=
x
y
[x1 x2]
[y1 y2]
Ws
Ws
Ws
Ws
=
=
=
=
y
x
[y1 y2]
[x1 x2]
UFF
PET
Tele))
52
PET
Tele))
UFF