Вы находитесь на странице: 1из 33

Eng. Me. Mrcio Ferreira UFRGS - Departamento de Eng.

Qumica Julho de 2006


Curso de Matlab

Cronograma
Aula 1
Introduo
Histrico Interface (Janela, Botes) Arquitetura (Workspace, Toolbox, Funes) Funes de Ajuda (Helpdesk, Help, Lookfor) Funes (who, what, whos, clear) Demo

Cronograma
Aula 3
Vetores
Polinmios (razes, avaliao) Endereamento Funes de operao com vetores

Aula 4
Matrizes
Dimenses Funes de operao com Matrizes Sistemas Lineares Estruturas de Dados

Aula 2
Variveis
Diretrio de Trabalho Tipos de Arquivos Funes de Salvamento de Dados (save, diary, load) Funes Matemticas
Eng. Mrcio Ferreira Curso de Matlab 2

Eng. Mrcio Ferreira

Curso de Matlab

Cronograma
Aula 5
Grficos
Grficos bidimensionais Grficos tridimensionais Funes de operao com grficos Efeitos Grficos

Cronograma
Aula 7
Arquivos .m
M-files Criao de funes debug

Aula 8
Anlise de Sinais
fft Ajuste de Curvas Interpolao

Aula 6
Controle de Fluxo
Operadores for end if elseif end

Aula 9
Anlise de Sinais
Excel LinkInterpolao Autocorrelao Excel Link Importao e exportao de ASCII

Eng. Mrcio Ferreira

Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

Cronograma
Aula 10
Interfaces Grficas
Apresentao do GUIDE Elaborao de interfaces

Login no Computador
Login nos computadores da Sala Braskem
username: curso password: dequi2006

Tpicos Especiais
Tpicos Especiais
Otimizao sem restries Otimizao com restries Programao Linear Programao Quadrtica Integrao Matemtica Simblica

Iniciar o Matlab
Programas Matlab Matlab 5.3

Eng. Mrcio Ferreira

Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

Aula 1 - Introduo
Histrico
MATLAB Laboratrio de Matrizes
1970 Universidade do Novo Mxico, baseado em rotinas de FORTRAN

Aula 1 - Introduo
Histrico
Funes de alto nvel (linguagem mais compreensvel) Anlise de dados Grficos Clculos Matemticos Modelagem e Simulao Aplicaes e Interfaces GUI

Eng. Mrcio Ferreira

Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

Aula 1 - Introduo
Histrico
Mais de 40 anos de pesquisa e desenvolvimento de funes matemticas, a partir do trabalho de centenas de cientistas de diferentes reas. Ao contrrio de linguagens clssicas como C e Fortran, no ambiente MATLAB o usurio no se preocupa com:
declarao de variveis, alocao de memria, utilizao de ponteiros outras tarefas de rotina.

Aula 1 - Introduo
Histrico
Campo gigantesco de aplicabilidade de recursos computacionais em reas fora da engenharia.
Medicina: Diagnstico de cncer de cordas vocais utilizando redes neurais. Anlise de cardiopatias atravs da anlise de freqncias, inteligncia artificial auxiliando nos diagnsticos... Biologia: Modelos de ciclos de vida de bactrias, ciclos de temperatura... Ed. Fsica: Anlise da mecnica dos movimentos, tratamento de dados, anlise de grficos de tendncias...

Eng. Mrcio Ferreira

Curso de Matlab

10

Eng. Mrcio Ferreira

Curso de Matlab

11

Aula 1 - Introduo
Interface
Barra Padro Barra de Ferramentas Linha de Comando

Aula 1 - Introduo
Arquitetura
Editor Simulink

Workspace Grficos e Interfaces Toolbox


Eng. Mrcio Ferreira Curso de Matlab 12 Eng. Mrcio Ferreira Curso de Matlab 13

Aula 1 - Introduo
Toolboxes
C:\Matlab\toolbox C:\ Matlab\
Data Acquisition Toolbox Ref. Ref. Financial Toolbox Frequency Domain Identification Toolbox GARCH Toolbox Image Processing Toolbox Ref. Ref. Neural Networks Toolbox Ref. Ref. Optimization Toolbox Ref. Ref. Partial Differential Equations (PDE) Signal Processing Toolbox Ref. Ref. Spline Toolbox Ref. Ref. Statistics Toolbox Ref. Ref. Symbolic Math Toolbox Ref. Ref. System Identification Toolbox Ref. Ref. Wavelet Toolbox Ref. Ref.

Aula 1 - Introduo
Funes de Ajuda
A AJUDA do MATLAB extremamente til e indispensvel no seu uso.
9% Programas e Executveis 36% Toolboxes e Funes 55% de Arquivos de Ajuda e Tutoriais

9%

EXE

As Toolboxes so diretrios que contm funes agrupadas por diferentes tipos ou objetivos.
(Anlogo a uma caixa de ferramentas)
Eng. Mrcio Ferreira

As Toolboxes permitem que voc se apoie nos ombros dos cientistas mais famosos do mundo em cada rea.
14

A ajuda do Matlab, bem como seus guias de referncia, so bastante completos e apresentam o contedo de forma didtica e compreensvel, atravs de exemplos prticos.

36%

Toolbox e Funes

Ajuda e Tutoriais

55%

Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

15

Aula 1 - Introduo
Funes de Ajuda
helpdesk: Ajuda para todas as helpdesk funes do Matlab com exemplos. helpwin: Janela de ajuda parecida helpwin com helpdesk, s que mais rpida. helpdesk help: Ajuda para os tpicos help separados por assunto no workspace help <funo>: Ajuda para a <fun o> funo especificada. lookfor: Procura por uma funo lookfor: desconhecida
Eng. Mrcio Ferreira
Curso de Matlab

Aula 1 - Introduo
Funes de Ajuda
help sqrt help sqrt (Comando) (Comando)
m se se U U

aula01a.m

A AJUDA do MATLAB extremamente til e indispensvel no seu uso.

SQRT (Descrio da funo) (Descri SQRT Square root. Square root. root. (Descrio da fun funo) SQRT(X) is the square root of the elements of X. SQRT(X) is the square root of the elements of X. Complex Complex results are produced if X is not positive. results are produced if X is not positive. (Sintaxe da Funo) (Sintaxe da Fun Funo) See also SQRTM. See also SQRTM. Overloaded methods Overloaded methods help sym/sqrt.m help sym/ sqrt.m sym/sqrt.m
! !! p p! el h
16 Eng. Mrcio Ferreira
Curso de Matlab

o !! !! lp el he h

(Funes similares) (Fun (Funes similares)

m em se U o o

17

Aula 1 - Introduo
Funes de Ajuda
helpdesk helpdesk
m s se U U o !! !! lp el he h

Aula 1 - Introduo
Variveis: Qualquer nome que guarda um valor ou nmero. num_students = 25
Maisculas so diferentes de minsculas No so permitidos espaos, acentos nem

A caixa de texto Go to Matlab Function permite a busca imediata da funo procurada, com exemplos, referncias e comentrios bastante completos sobre ela.

Nmeros: Valores representados no matlab com 16 dgitos significativos no intervalo de 1*10E-308 at 1*10E+308

Eng. Mrcio Ferreira

Curso de Matlab

18

Eng. Mrcio Ferreira

Curso de Matlab

19

Aula 1 - Introduo
lgebra
As principais funes matemticas so apresentadas na tabela a seguir:

Aula 1 - Introduo
lgebra
-5/(4.8+5.32)^2 -5/(4.8+5.32)^2 ans = ans = -0.0488 -0.0488 (3+4i)*(3-4i) (3+4i)*(3 (3+4i)*(3-4i) ans = ans = 25 25 cos(pi/2) cos(pi/2) ans = ans = 6.1230e-017 6.1230e6.1230e-017 exp(acos(0.3)) exp( acos(0.3)) exp(acos(0.3)) ans = ans = 3.5470 3.5470 a = 2; a = 2; b = 5; b = 5; a^b a^b ans = ans = 32 32 x = 5/2*pi; x = 5/2*pi; y = sin(x) y = sin(x) sin(x) y = y = 1 1 z = asin(y) z = asin(y) asin(y) z = z = 1.5708 1.5708

+ - Soma Diminuio / * Diviso Multiplicao ^ Potncia .* Multiplicao ponto a ponto ( ) Parnteses [ ] Colchetes {} Chaves . Ponto decimal ... Continuo de comando % Comentrio ' Transposta

Resultado atribudo a ans caso um nome no for especificado ; inibe exibio do resultado

Eng. Mrcio Ferreira

Curso de Matlab

20

Eng. Mrcio Ferreira

Curso de Matlab

21

Aula 1 - Introduo
lgebra
1+3 1+3 4/2 4/2 3*7-1 3*73*7-1 (4/3)/(5/2) (4/3)/(5/2) 2^2 2^2 clc clc 1-3/45.6 1-3/45.6 4/2^6 4/2^6 3*7-1/(45-3) 3*7- 1/(453*7-1/(45-3) (4/3)/(5/2) (4/3)/(5/2) a=1 a=1 b=2 b=2 a+b a+b 3*a 3*a c = a/b c = a/b c^b c^b d = (a+a)*b d = (a+a)*b d-b/2 d-b/2 c^b-68.6598 c^bc^b-68.6598 d = (a+b)^b d = (a+b)^b aula01c.m aula01d.m

Aula 1 - Introduo
lgebra

aula01e.m aula01f.m

ans : resposta mais recente. eps : preciso numrica corrente. Ex: 2.2204e-016. realmax : maior nmero real positivo. Ex:1.7977e+308. realmin : menor nmero real positivo.Ex:2.2251e-308. pi : 3.1415926535897.... i, j : parte imaginria de nmeros complexos. inf : infinito. Ex: 1 / 0. NaN : not a number. . . . : indica que o comando continua na prxima ; : no final da expresso inibe eco na tela, no meio da definio de matriz, delimitador de linha.

Eng. Mrcio Ferreira

Curso de Matlab

22

Eng. Mrcio Ferreira

Curso de Matlab

23

Aula 1 - Introduo
Demo
aula01b.m

Aula 1 - Introduo
Exerccios
type exercicios_01.txt type exercicios_01.txt

Leitura Complementar
C:\MATLABR11\help\pdf_doc\matlab\learningmatlab.pdf

Eng. Mrcio Ferreira

Curso de Matlab

24

Eng. Mrcio Ferreira

Curso de Matlab

25

Aula 2 - Variveis
Diretrio de Trabalho
aula02a.m

Aula 2 - Variveis
Tipos de Arquivos
Arquivos .m podem ser editados com o Editor ou qualquer editor de textos. Arquivos .mat so binrios e podem ser editados apenas com o Matlab.

o diretrio onde se encontram as funes que se deseja utilizar ou onde se deseja salvar as funes ou arquivos criados na sesso. SEMPRE DEFINA O DIRETRIO DE TRABALHO AO INCIAR DO USO DO MATLAB. cd E:\Temp : Torna o E:\ diretrio especificado o diretrio de trabalho. addpath : adiciona um ou mais diretrios lista de diretrios de trabalho.

pcode(funoqualquer.m) pcode( fun oqualquer.m Proteo de cdigo para arquivos .m. Evita edio e visualizao do cdigo.
26 Eng. Mrcio Ferreira
Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

27

Aula 2 - Variveis
Funes de Verificao de Variveis
who: Lista as variveis who existentes no workspace whos: Alm de listar whos informa o tamanho e a classe what: Informa todos os what arquivos presentes no diretrio de trabalho clear all: Apaga as all variveis existentes no workspace.
Curso de Matlab

Aula 2 - Variveis
Funes de Salvamento de Dados
m se U

aula02b.m

save <nome> <var1> <var2>: Salva as variveis do <var2> workspace no arquivo nome.mat no diretrio de trabalho. load <nome>: Carrega as variveis salvas do arquivo <nome> nome.mat

diary: Salva todos os comandos digitados no Workspace diary em um arquivo de texto. diary off: Encerra a gravao dos comandos do off Workspace.
! !! p! el el h
Curso de Matlab

o ! !! p! p! el h

m m se se U U o o

Eng. Mrcio Ferreira

28

Eng. Mrcio Ferreira

29

Aula 2 - Variveis
Funes de Salvamento de Dados
cd d:\temp cd d:\ d:\temp a=1 a=1 b=2 b=2 whos whos save nome save nome clear all clear all whos whos load nome load nome whos whos
Curso de Matlab

Aula 2 - Variveis
Funes Matemticas
aula02d.m As principais funes matemticas so apresentadas na tabela a seguir: Trigonomtricas
sin, sinh Sine and hyperbolic sine cos, cosh Cosine and hyperbolic cosine tan, tanh Tangent and hyperbolic tangent abs Absolute Value sqrt Square root exp Exponential log Natural logarithm log2 Base 2 logarithm log10 Common (base 10) logarithm fix Round towards zero floor Round towards minus infinity round Round to nearest integer ceil Round toward infinity
Curso de Matlab

aula02c.m

m em se U U o o

Reais

Arredondamento

a = sin(3) a = sin(3) b = abs(-3) b = abs(abs(-3) sqrt(4) sqrt(4) c = round(a) c = round(a) round(a)

!! !! lp el h

Eng. Mrcio Ferreira

30

Eng. Mrcio Ferreira

31

Aula 2 - Variveis
Outras Funes
m se U

Aula 2 - Variveis
Exerccios

calendar date tic; toc mkdir warndlg

o o ! !! p! p! el h

type exercicios_02.txt type exercicios_02.txt

Eng. Mrcio Ferreira

Curso de Matlab

32

Eng. Mrcio Ferreira

Curso de Matlab

33

Aula 3 Vetores
Polinmios
Os polinmios so definidos como vetores no matlab
X^2+2*x+3 => [1 2 3] X^5+3*x+1 => [1 0 0 0 3 1] X^6+1 => [6 0 0 0 0 0 1]

Aula 3 Vetores
Polinmios
aula03a.m

2 x2 + 3 x +1 3 x3 + x + 3
a = [2 3 1] a = [2 3 1] b = [3 0 1 3] b = [3 0 1 3] conv(a,b) conv(a,b) conv(a,b) d = polyder(a) d = polyder(a) polyder(a) d = polyval(a,2) d = polyval(a,2) polyval(a,2) e = roots(a) roots(a) e = roots(a)

As principais funes matemticas so apresentadas na tabela a seguir:


conv multiplicao de polinmios poly Polynomial with specified roots polyder Polynomial derivative polyfit Polynomial curve fitting polyval Polynomial evaluation roots Polynomial roots
m m se se U U o o !! !! lp el he h

Eng. Mrcio Ferreira

Curso de Matlab

34

Eng. Mrcio Ferreira

Curso de Matlab

35

Aula 3 Vetores
Endereamento
Exemplo 1 A = [1 3 6 9 12] A(1) [1] A(4) [9] A(1:3) [1 3 6] A(:) [1 3 6 9 12]
Eng. Mrcio Ferreira

Aula 3 Vetores
Endereamento
A = 1:.1:10 Cria um vetor iniciando em 1 e terminando em 10 com incremento de 0.1 unidade A [1 1.1 1.2 1.3 ...9.8 9.9 10] Exemplo 4 - Vetores com espaamento constante A = 1:10 A [1 2 3 4 5 6 7 8 9 10]
aula03c.m

aula03b.m

Exemplo 2 B = [10 15 20 25 30 35] B(3:end) B(3:end) [20 25 30 35] B(end) B(end) [35] B(end-1:end) B(end-1:end) [30 35] B(size(B,2)-3) B(size(B,2)[20]
Curso de Matlab

Exemplo 3 - Vetores com espaamento constante

36

Eng. Mrcio Ferreira

Curso de Matlab

37

Aula 3 Vetores
aula03f.m Funes de Operao com Vetores cumprod Cumulative product cumsum Cumulative sum max Maximum elements of an array mean Average or mean value of arrays median Median value of arrays min Minimum elements of an array prod Product of array elements sort Sort elements in ascending order std Standard deviation sum Sum of array elements var Variance corrcoef Correlation coefficients cov Covariance matrix conv Convolution and polynomial multiplication conv2 Two-dimensional convolution Transposto
m m se se U U o o ! !! p! el el h
Eng. Mrcio Ferreira
Curso de Matlab

Aula 3 Vetores
Funes de Operao com Vetores
B = [10 15 20 25 30 35] B = [10 15 20 25 30 35] m = max(B) m = max(B) max(B) mean(B) mean(B) mean(B) soma = sum(B) soma = sum(B) sum(B) varincia = var(B) varincia = var(B) d = [1.5 9.8 45 0.147 25.6] d = [1.5 9.8 45 0.147 25.6] cresce = sort(d) cresce = sort(d) sort(d) aula03d.m

38

Eng. Mrcio Ferreira

Curso de Matlab

39

Aula 3 Vetores
Concatenao de Vetores
B = [10 15 20 25 30 35] B = [10 15 20 25 30 35] K = [1 2 3] K = [1 2 3] M = [B K] M = [B K] N = [K B] N = [K B] % Vetores Coluna % Vetores Coluna P = [10; 15; 20; 25; 30; 35] P = [10; 15; 20; 25; 30; 35] J = [1; 2; 3] J = [1; 2; 3] W = [B; K] W = [B; K] Z = [K; B] Z = [K; B] aula03e.m

Aula 3 Vetores
Exerccios

type exercicios_03.txt type exercicios_03.txt

Eng. Mrcio Ferreira

Curso de Matlab

40

Eng. Mrcio Ferreira

Curso de Matlab

41

Aula 4 Matrizes
Dimenses
Uma Matriz no Matlab sempre da forma:
A = [a11 a12 a13 a14; a21 a22 a23 a24 ] O ; separa as linhas da matriz A = [1 2 3 4; 5 6 7 8; 9 10 11 12] A(1,1) [1] A(1:3,1:2) [1 2 ;5 6; 9 10] A(:,2) [2; 6; 10] aula04a.m

Aula 4 Matrizes
Dimenses
1 2
1

3
6

4
11

5
16

A=

1 2 3 4

4 8 7.2 0 23

10

1 9 7 4

6 4 1 5 0

21

1.2 7 5
8

12

17

25 22 11
23

13

18

A(1:5,5) A(:,5) A(21:end)'

0.5 9

14

19

56 24 10 25
A([4,5],[2,3]) A([9 14;10 15])

A(3,1) A(3)

83 10 13 15

20

(:) especifica TODOS elementos end especifica o valor de ndice mximo end
Curso de Matlab

Eng. Mrcio Ferreira

42

Eng. Mrcio Ferreira

Curso de Matlab

43

Aula 4 Matrizes
Funes de Operao com Matrizes
aula04e.m

Aula 4 Matrizes
Funes de Operao com Matrizes
A = [1 2 3 4; 5 6 7 8; 9 10 11 12] A = [1 2 3 4; 5 6 7 8; 9 10 11 12] dim = size(A) dim = size(A) size(A) diagonal = diag(A) diagonal = diag(A) diag(A) aleatorios = randn(10,10) aleatorios = randn(10,10) randn(10,10) find(A>5) find(A>5) find(A>5) A(k) A(k) aula04b.m

eye Identity matrix find Localizao de valores em Matrizes ou vetores linspace Generate linearly spaced vectors logspace Generate logarithmically spaced vectors ones Create an array of all ones randn Normally distributed random numbers and arrays size Dimenso de Vetores ou Matrizes zeros Create an array of all zeros : (colon) Regularly spaced vector cat Concatenate arrays diag Diagonal matrices and diagonals of a matrix
m s se U U o

! !! !! lp el he h

Eng. Mrcio Ferreira

Curso de Matlab

44

Eng. Mrcio Ferreira

Curso de Matlab

45

Aula 4 Matrizes
Funes de Operao com Matrizes
Multiplicao matricial e multiplicao ponto a ponto

Aula 4 Matrizes
Concatenao de Matrizes A = [1 2 A = [1 2 B = [10; B = [10; C = [40; C = [40; 3;4 5 6;7 8 9] 3;4 5 6;7 8 9] 20; 30] 20; 30] 50; 60] 50; 60]

a=[1 a=[1 b1 = b1 =

2 3;4 5 6;7 8 9] 2 3;4 5 6;7 8 9] a*a a*a

Matricial b1 = 30 36 42 66 81 96 102 126 150 Ponto a Ponto b2 = 1 16 49 4 9 25 36 64 81


46

b2 = a.*a b2 = a.*a

F = [A B C] F = [A B C] G = [A; B'; C'] G = [A; B'; C'] H = [A F] H = [A F]

Eng. Mrcio Ferreira

Curso de Matlab

Eng. Mrcio Ferreira

Curso de Matlab

47

Aula 4 Matrizes
Sistemas Lineares
Resoluo de Sistemas de Equaes
aula04c.m

Aula 4 Matrizes
Sistemas Lineares
Resoluo de Sistemas de Equaes
-1 banana + 1 limo + 2 laranjas = R$ 2,00 3 bananas - 1 limo + 1 laranja = R$ 6,00 -1 banana + 3 limes + 4laranjas = R$ 4,00

A* X = B X = A 1 * B
a3 x b1 a6 * y = b2 a9 z b3

a1 * x + a2 * y + a3 * z = b1 a4 * x + a5 * y + a6 * z = b2 a7 * x + a8 * y + a9 * z = b3

a1 a 4 a7

a2 a5 a8

-x1 + x2 + 2x3 = 2 3x1 - x2 + x3 = 6 -x1 + 3x2 + 4x3 = 4

x + 3 y+ = 1 5 x + 2 y = 2
Eng. Mrcio Ferreira
Curso de Matlab

A = [1 3; 5 2] A = [1 3; 5 2] B = [1; 2] B = [1; 2] x = inv(A)*B x = inv(A)*B inv(A)*B

A = [-1 1 2; 3 -1 1;-1 3 4]; A = [[-1 1 2; 3 -1 1;1;-1 3 4]; B = [2;6;4]; B = [2;6;4]; x = A\B x = A\ A\B x = x = 1.0000 1.0000 -1.0000 -1.0000 2.0000 2.0000
Curso de Matlab Preo da banana Preo do Limo Preo da Laranja

48

Eng. Mrcio Ferreira

49

Aula 4 Matrizes
Estruturas
Varivel: Marcio
Marcio.sobrenome = 'Ferreira' Marcio.sobrenome = 'Ferreira' Marcio.idade = 28 Marcio.idade = 28 aula04d.m

Aula 4 Matrizes
Workspace Browser

Podem ser utilizadas como um Banco de Dados.

Marcio.peso = 101 Marcio.peso = 101 Marcio.altura = 1.94 Marcio.altura = 1.94 indice = Marcio.peso / (Marcio.altura^2) indice = Marcio.peso / (Marcio.altura^2) Varivel utilizada para armazenar variveis de tipos diferentes de uma forma estruturada. Utilizada por exemplo em Banco de dados com fcil acesso s informaes.
Curso de Matlab Curso de Matlab

O editor de variveis do Matlab um bom recurso para aprender sobre dimenso e indexao de matrizes e vetores.

Eng. Mrcio Ferreira

50

Eng. Mrcio Ferreira

51

Aula 4 Matrizes
Exerccios Grficos Bidimensionais

Aula 5 Grficos
Especificar: x-data e/ou y-data Especificar: cor, estilo de linha e smbolo marcador Sintaxe para grfico com uma curva:

type exercicios_04.txt type exercicios_04.txt

plot(xdata, ydata, 'color_linestyle_marker') plot( xdata, ydata, 'color_linestyle_marker') plot(xdata, ydata, 'color_linestyle_marker')

Sintaxe para grfico com vrias curvas:


plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) plot(x1,

Eng. Mrcio Ferreira

Curso de Matlab

52

Eng. Mrcio Ferreira

Curso de Matlab

53

Aula 5 Grficos
Grficos Bidimensionais
Color y (yellow) m (magenta) c (cyan) r (red) g (green) b (blue) w (white) k (black) Line Style - (solid) : (dotted) -. (dashdot) -- (dashed) Marker . (point) o (circle) x (x-mark) + (plus) * (star) s (square) d (diamond) h (hexagram) p (pentagram) v (triangle down) > (triangle right) < (triangle left) ^ (triangle up)

Aula 5 Grficos
Grficos Bidimensionais
x = [1:.1:10]; x = [1:.1:10]; y = sin(x); y = sin(x); sin(x); figure(1) figure(1) plot(x,y) plot(x,y) plot(x,y) figure(15) figure(15) aula05a.m

plot(x,y,r); plot(x,y, plot(x,y,r); plot(x,y,k:); plot(x,y, k: plot(x,y,k:); plot(x,y,g*); plot(x,y, g* plot(x,y,g*); plot(x,y,mp); plot(x,y, mp plot(x,y,mp);
Curso de Matlab

bar(y) bar(y) bar(y) dado = [10 50 40] dado = [10 50 40] figure(3) figure(3) pie(dado) pie(dado) pie(dado)

figure cria uma nova figura em branco, com handle especificado, para plotar o grfico.
54 Eng. Mrcio Ferreira
Curso de Matlab

Se figure no for especificado, as figuras criadas possuem handle 1, 2, 3 e assim por diante.
55

Eng. Mrcio Ferreira

Aula 5 Grficos
Grficos Bidimensionais
subplot
aula05b.m subplot(2,2,1); subplot(2,2,1); subplot(2,2,1); plot(1:10) plot(1:10) plot(1:10) subplot(2,2,2) subplot(2,2,2) subplot(2,2,2) x = 0:.1:2*pi; x = 0:.1:2*pi; plot(x,sin(x)) plot(x,sin(x)) plot(x,sin(x)) subplot(2,2,3) subplot(2,2,3) subplot(2,2,3) x = 0:.1:2*pi; x = 0:.1:2*pi; plot(x,exp(-x),'r') plot(x,exp( x),' plot(x,exp(-x),'r') subplot(2,2,4) subplot(2,2,4) subplot(2,2,4) plot(peaks) plot( peaks) plot(peaks)
Eng. Mrcio Ferreira
Curso de Matlab

Aula 5 Grficos
Grficos Bidimensionais

cone para liberar edio da tela do Grfico cone para inserir texto no grfico

Funes de zoom Clicando duas vezes na rea do grfico, aps liber-lo para edio, a janela de edio apresentada

Clicando duas vezes na linha edita-se suas propriedades


Curso de Matlab

56

Eng. Mrcio Ferreira

57

Aula 5 Grficos
Grficos Bidimensionais
hold on ativa a preservao da figura hold off desativa a preservao da figura
x = 0:.1:2*pi; x = 0:.1:2*pi; y = sin(x); y = sin(x); sin(x); plot(x,y,'b') plot(x,y,'b') plot(x,y,'b') grid on grid on hold on hold on plot(x,exp(-x),'r:*') plot(x,exp( plot(x,exp(-x),'r:*') aula05c.m

Aula 5 Grficos
Grficos Bidimensionais
bar Vertical bar chart barh Horizontal bar chart hist Plot histograms hold Hold current graph loglog Plot using log-log scales pie Pie plot plot Plot vectors or matrices. plotyy Grfico com duas escalas polar Polar coordinate plot semilogx Semi-log scale plot semilogy Semi-log scale plot subplot Create axes in tiled positions aula05i.m

m m se se U U o o ! !! p! el el h

Eng. Mrcio Ferreira

Curso de Matlab

58

Eng. Mrcio Ferreira

Curso de Matlab

59

Aula 5 Grficos
Exerccio
1. Criar cos(10pt) e sin(10pt) para t = {0,0.5}, com cos() em linha verde slida; sin() em linha preta pontilhada com marcadores quadrados. 2. Legenda X Tempo(seg), legenda Y Resultado, e ttulo Ondas de Transmisso 3. Texto descritivo da curva cos() - Em fase. 4. Texto descritivo da curva sin() - Quadratura 5. Eixo Y deve ser {-1.5,2}

Aula 5 Grficos
Exerccio
aula05d.m

t = 0:.01:.5; t = 0:.01:.5; plot(t,cos(10*pi*t),'g', t,sin(10*pi*t),'k:square'); plot(t,cos(10*pi*t),'g', t,sin(10*pi*t),'k:square'); plot(t,cos(10*pi*t),'g', t,sin(10*pi*t),'k:square'); title('Ondas de Transmisso'); title('Ondas de Transmisso'); title('Ondas xlabel('Tempo(Seg)'); xlabel('Tempo(Seg)'); xlabel('Tempo(Seg)'); ylabel('Resultado'); ylabel('Resultado'); ylabel('Resultado'); gtext('Em Fase'); gtext('Em Fase'); gtext('Em gtext('Quadratura'); gtext('Quadratura'); gtext('Quadratura'); axis([0 0.5 -1.5 2]); axis([0 0.5 -1.5 2]); axis([0

Posicione os textos Em Fase e Quadradura no grfico.


Eng. Mrcio Ferreira
Curso de Matlab

60

Eng. Mrcio Ferreira

Curso de Matlab

61

Aula 5 Grficos
Configurao das opes de plotagem
aula05d.m dica.m title ('PID','FontSize',14,'FontWeight','bold'); title ('PID','FontSize',14,'FontWeight','bold'); ('PID','FontSize',14,'FontWeight','bold'); xlabel ('Tempo','FontSize',12,'FontWeight','bold'); ('Tempo','FontSize',12,'FontWeight','bold'); xlabel ('Tempo','FontSize',12,'FontWeight','bold'); ylabel ('SP & Nvel','FontSize',12,'FontWeight','bold'); ylabel ('SP & N vel','FontSize',12,'FontWeight','bold'); Nvel','FontSize',12,'FontWeight','bold'); axis([0 t(end) 0 25]); axis([0 t(end) 0 25]); axis([0 t(end) set(gca,'FontSize',12,'FontWeight','bold') set(gca,'FontSize',12,'FontWeight','bold') set(gca,'FontSize',12,'FontWeight','bold')

Aula 5 Grficos
Salvamento de figuras para inserir em documentos .doc ou outros
aula05d.m

m em se U U o o !! !! lp el h

h = figure(5) h = figure(5) x = [1:10]; x = [1:10];

Os parmetros Fontsize e FontWeight utilizados nos comandos acima formatam o estilo da fonte utilizada no grfico. O parmetro LineWidth, utilizado no comando plot, faz as plot linhas ficarem mais largas (veja exemplo aula05d).
Eng. Mrcio Ferreira
Curso de Matlab

plot(x,2*x); plot(x,2*x); plot(x,2*x); saveas(5, 'figura1.bmp') saveas(5, 'figura1.bmp') saveas(5, 'figura1.bmp')

Salva a figura plotada no handle h com o nome figura1.bmp no diretrio de trabalho.


62 Eng. Mrcio Ferreira
Curso de Matlab

63

Aula 5 Grficos
Grficos Tridimensionais
bar3h Horizontal 3-D bar chart comet3 3-D comet plot plot3 Plot lines and points in 3-D space waterfall Waterfall plot contour Contour (level curves) plot meshc Combination mesh/contourplot mesh 3-D mesh with reference plane surf 3-D shaded surface graph surfc Combination surf/contourplot surfl 3-D shaded surface with lighting aula05j.m

Aula 5 Grficos
Grficos Tridimensionais
[X,Y] = meshgrid(-2:.2:2, -2:.2:2); [X,Y] = meshgrid( meshgrid(-2:.2:2, -2:.2:2); Z = X .* exp(-X.^2 - Y.^2); Z = X .* exp( exp(-X.^2 - Y.^2); meshc(Z) meshc(Z) meshc(Z) surf(Z) surf(Z) t = 0:pi/50:10*pi; t = 0:pi/50:10*pi; 0:pi/50:10*pi; plot3(sin(t),cos(t),t); plot3(sin(t),cos(t),t); plot3(sin(t),cos(t),t); aula05e.m

m se U o o ! !! p! p! el h

Eng. Mrcio Ferreira

Curso de Matlab

64

Eng. Mrcio Ferreira

Curso de Matlab

65

Aula 5 Grficos
Grficos Tridimensionais
mesh
x=-8:0.5:8; x=x=-8:0.5:8; y=x; y=x; [X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y); R=sqrt(X.^2 + Y.^2)+eps; R=sqrt(X.^2 + Y.^2)+eps; R=sqrt(X.^2 Y.^2)+eps; Z=sin(R)./R; Z=sin(R)./R; Z=sin(R)./R; mesh(X,Y,Z) mesh(X,Y,Z) mesh(X,Y,Z) aula05f.m

Aula 5 Grficos
Grficos Tridimensionais
surf
x=-8:0.5:8; x=x=-8:0.5:8; y=x; y=x; [X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y); R=sqrt(X.^2 + Y.^2)+eps; R=sqrt(X.^2 + Y.^2)+eps; R=sqrt(X.^2 Y.^2)+eps; Z=sin(R)./R; Z=sin(R)./R; Z=sin(R)./R; surf(X,Y,Z) surf(X,Y,Z) shading interp shading interp colorbar colorbar aula05f.m

funo meshgrid : cria matrizes malha a partir de dois vetores.


Eng. Mrcio Ferreira
Curso de Matlab

66

Eng. Mrcio Ferreira

Curso de Matlab

67

Aula 5 Grficos
Efeitos Grficos
clabel Add contour labels to a contour plot grid Grid lines for 2-D and 3-D plots ginput Copia local do clique com o mouse para o workspace gtext Insero com o mouse do texto na figura legend Graph legend for lines and patches title Titles for 2-D and 3-D plots xlabel X-axis labels for 2-D and 3-D plots ylabel Y-axis labels for 2-D and 3-D plots zlabel Z-axis labels for 3-D plots errorbar Plot graph with error bars pareto Pareto char scatter Scatter plot scatter3 3-D scatter plot polyarea Area of polygon
m m se se U U o o ! !! p! el el h

Aula 5 Grficos
Efeitos Grficos Grficos comerciais

Outros tipos

Eng. Mrcio Ferreira

Curso de Matlab

68

Eng. Mrcio Ferreira

Curso de Matlab

69

Aula 5 Grficos
Efeitos Grficos
%% Isosurface, isocaps, coneplot, and streamlines of wind data Isosurface, isocaps, coneplot, and streamlines of wind data load wind load wind spd == sqrt(u.*u ++ v.*v ++ w.*w); spd sqrt(u.*u v.*v w.*w); pp == patch(isosurface(x,y,z,spd, 40)); patch(isosurface(x,y,z,spd, 40)); isonormals(x,y,z,spd, p) isonormals(x,y,z,spd, p) set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); p2 == patch(isocaps(x,y,z,spd, 40)); p2 patch(isocaps(x,y,z,spd, 40)); set(p2, 'FaceColor', 'interp', 'EdgeColor', 'none') set(p2, 'FaceColor', 'interp', 'EdgeColor', 'none') daspect([1 11 1]); daspect([1 1]); [f verts] == reducepatch(isosurface(x,y,z,spd, 30), .2); [f verts] reducepatch(isosurface(x,y,z,spd, 30), .2); h=coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),2); h=coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),2); set(h, 'FaceColor', 'cyan', 'EdgeColor', 'none'); set(h, 'FaceColor', 'cyan', 'EdgeColor', 'none'); [sx sy sz] == meshgrid(80, 20:10:50, 0:5:15); [sx sy sz] meshgrid(80, 20:10:50, 0:5:15); h2=streamline(x,y,z,u,v,w,sx,sy,sz); h2=streamline(x,y,z,u,v,w,sx,sy,sz); set(h2, 'Color', [.4 11 .4]); set(h2, 'Color', [.4 .4]); axis tight; box on axis tight; box on camproj perspective; camva(24); camproj perspective; camva(24); campos([165 -20 65]); camtarget([100 40 -5]) campos([165 -20 65]); camtarget([100 40 -5]) camlight left; lighting phong camlight left; lighting phong colormap(jet) colormap(jet) Curso de Matlab

Aula 5 Grficos
Efeitos Grficos
ginput: captura o ponto de clique do mouse na figura e exibe no workspace (depois de selecionar os pontos clique enter).
x = [1:.1:100] x = [1:.1:100] y = x.^2 y = x.^2 plot(x,y) plot(x,y) plot(x,y) legend('Nome da linha') legend('Nome da linha') legend('Nome xlabel('Nome do eixo X') xlabel('Nome do eixo X') xlabel('Nome ginput ginput aula05h.m

aula05g.m

Eng. Mrcio Ferreira

70

Eng. Mrcio Ferreira

Curso de Matlab

71

Aula 5 Grficos
Exerccios
type exercicios_05.txt type exercicios_05.txt

Aula 6 Controle de Fluxo


Operadores
> Maior que < Menor que <= Menor ou igual a >= maior ou igual a == Igual a ~= Diferente de 1>2 2==2 3<6 4~=4 0 1 1 0 3>=3 2<=3 3~=6 4==5
Curso de Matlab

aula06a.m

As expresses retornam verdadeiro ou falso para as comparaes realizadas. 1 significa verdadeiro 0 significa falso

Leitura Complementar
C:\MATLABR11\help\pdf_doc\matlab\graphg.pdf C:\MATLABR11\help\techdoc\plotedit.chm

1 1 1 0
73

Eng. Mrcio Ferreira

Curso de Matlab

72

Eng. Mrcio Ferreira

Aula 6 Controle de Fluxo


for end
for variable = expression statement ... statement end Exemplo: n=10 for i = 1:n for j = 1:n a(i,j) = i+j; end end aula06b.m

Aula 6 Controle de Fluxo


if elseif end
if expression1 statements elseif expression2 statements elseif expression2 statements end Exemplo: a=1; if a == 1 display('a igual a 1') elseif a == 2 display('a igual a 2') else display('a=outra coisa') end aula06c.m

Eng. Mrcio Ferreira

Curso de Matlab

74

Eng. Mrcio Ferreira

Curso de Matlab

75

Aula 6 Controle de Fluxo


Exerccios m-files
edit: Funo para edio de m-files edit

Aula 7 Arquivos .m

type exercicios_06.txt type exercicios_06.txt

M-files so arquivos de texto com sequncias de comandos do Matlab que sero avaliadas ao executar o arquivo no workspace.

Eng. Mrcio Ferreira

Curso de Matlab

76

Eng. Mrcio Ferreira

Curso de Matlab

77

Aula 7 Arquivos .m
m-files Criao de Funes
Keyword: function

Aula 7 Arquivos .m
media.m Nome da funo (mesmo nome do m-file) Argumento(s) de entrada

Argumento(s) de sada function [y] = mean (x) function [y] = mean (x) % MEAN Average or mean value. % MEAN Average or mean value. edit edit Texto de Help On-Line

% For vectors, MEAN(x) returns the mean value. % For vectors, MEAN(x) returns the mean value. % For matrices, MEAN(x) is a row vector % For matrices, MEAN(x) is a row vector % containing the mean value of each column. % containing the mean value of each column. [m,n] = size(x); [m,n] = size(x);

Cdigo da funo

if m == 1 if m == 1 m = n; m = n; end end y = sum(x)/m; output_value = mean(input_value) y = sum(x)/m;

Eng. Mrcio Ferreira

Curso de Matlab

78

Eng. Mrcio Ferreira

Curso de Matlab

79

Aula 7 Arquivos .m
Criao de Funes
cabecalho.m cabecalho.m

Aula 7 Arquivos .m
Criao de Funes
% Funo para clculo da mdia % Funo para clculo da mdia % Sintaxe: % Sintaxe: % [m] = media(dados) % [m] = media(dados) % Entradas: Dados = vetor % Entradas: Dados = vetor % Sadas: m = mdia % Sadas: m = mdia % $Revision: 1.00 $ $Date: 01/07/2006 % $Revision: 1.00 $ $Date: 01/07/2006 function m = media(dados) function m = media(dados) m = sum(dados)/size(dados,2) m = sum(dados)/size(dados,2)

dados

%About: %% Cabealho padro para arquivos .m. Aqui vai aa descrio da ajuda. %About: Cabealho padro para arquivos .m. Aqui vai descrio da ajuda. %Syntax: [x,y] == padro(k) %Syntax: [x,y] padro(k) %Inputs: %Inputs: %% k:entrada k:entrada

%Outputs: %Outputs: %% x:sada 11 y:sada 22 x:sada y:sada %---------------------------------------------------------------------%---------------------------------------------------------------------%---------------------------------------------------------------------%---------------------------------------------------------------------%% Copyright (c) 2005 by LACIP-DEQUI-UFRGS <<http://www.enq.ufrgs.br>> Copyright (c) 2005 by LACIP-DEQUI-UFRGS <<http://www.enq.ufrgs.br>> %% Author: Marcio Ferreira E-Mail: marf@enq.ufrgs.br Author: Marcio Ferreira E-Mail: marf@enq.ufrgs.br %% $Revision: 1.00 $$ $Date: 15/02/2005 19:28:39 $$ $Revision: 1.00 $Date: 15/02/2005 19:28:39

media.m

%---------------------------------------------------------------------%---------------------------------------------------------------------function [x,y] == padro(k) function [x,y] padro(k) xx == k*2; k*2; yy == 2*x; 2*x;

mdia

Eng. Mrcio Ferreira

Curso de Matlab

80

Eng. Mrcio Ferreira

Curso de Matlab

81

Aula 7 Arquivos .m
Criao de Funes
% Funo para clculo da mdia % Funo para clculo da mdia % e desvio padro % e desvio padro % Sintaxe: % Sintaxe: % [m, s] = medesv(dados) % [m, s] = medesv(dados) % Entradas: Dados = vetor % Entradas: Dados = vetor % Sadas: m = mdia; s = desvio padro % Sadas: m = mdia; s = desvio padro % $Revision: 1.00 $ $Date: 01/07/2006 % $Revision: 1.00 $ $Date: 01/07/2006 function [m, s] = medesv(dados) function [m, s] = medesv(dados) m = sum(dados)/size(dados,2) m = sum(dados)/size(dados,2) s = std(dados) s = std(dados)
Curso de Matlab

Aula 7 Arquivos .m
Criao de Funes
escolha.m

mdesv.m mdesv.m

dados

% Funo sem argumentos para teste do comando menu % Funo sem argumentos para teste do comando menu function escolha function escolha k = menu('Choose a k = menu('Choose a color','Vermelho','Verde','Azul') color','Vermelho','Verde','Azul') if k==1 if k==1 disp('A cor Vermelho') disp('A cor Vermelho') elseif k == 2 elseif k == 2 disp('A cor Verde') disp('A cor Verde')

medesv.m

Mdia e desvio

elseif k == 2 elseif k == 2 disp('A cor Azul') disp('A cor Azul') end end
82 Eng. Mrcio Ferreira
Curso de Matlab

Eng. Mrcio Ferreira

83

Aula 7 Arquivos .m
Criao de Funes Criao de Funes

Aula 7 Arquivos .m
converte.m

Escreva um arquivo script M-File que: Converta temperatura em Fahrenheit para Celsius
function celsius = converte(faren) function celsius = converte(faren) converte(faren) O argumento O argumento de entrada de sada o utilizado no clculo celsius = (5/9)*(faren-32); (5/9)*(farencelsius = (5/9)*(faren-32); calculado disp(['A temperatura em Celsius : ' disp(['A temperatura em Celsius : ' disp(['A num2str(celsius)]); num2str(celsius)]); num2str(celsius)]);

5 TC = *(TF 32) 9

Eng. Mrcio Ferreira

Curso de Matlab

84

Eng. Mrcio Ferreira

Curso de Matlab

85

Aula 7 Arquivos .m
Criao de Funes
x = rand(100,10); x = rand(100,10); for i = 1:size(x,2) for i = 1:size(x,2) figure(i) figure(i) plot(x(:,i),'k:square','LineWidth',2); plot(x(:,i),'k:square','LineWidth',2); title ('Senos','FontSize',14,'FontWeight','bold'); title ('Senos','FontSize',14,'FontWeight','bold'); xlabel ('Tempo','FontSize',12,'FontWeight','bold'); xlabel ('Tempo','FontSize',12,'FontWeight','bold'); ylabel ('Senos','FontSize',12,'FontWeight','bold'); ylabel ('Senos','FontSize',12,'FontWeight','bold'); set(gca,'FontSize',12,'FontWeight','bold') set(gca,'FontSize',12,'FontWeight','bold') saveas(gcf, [num2str(i) '.bmp']) saveas(gcf, [num2str(i) '.bmp']) end end
Curso de Matlab
h1.m m2.m n3.m u4.m f1.m f2.m f3.m f4.m

Aula 7 Arquivos .m
Funes, Toolboxes e Interfaces

dica.m

g1.m

h2.m

i3.m

j4.m

Meu_Toolbox Minha_Interface
A criao de Toolboxes e Interfaces, com as Funes definidas pelo usurio, permitem a documentao e transferncia de conhecimento, de forma padronizada, para outros grupos ou pessoas.
Curso de Matlab

Funes criadas pelo usurio


86 Eng. Mrcio Ferreira

Eng. Mrcio Ferreira

87

Aula 7 Arquivos .m
Exerccios

Aula 8 Anlise de Sinais

type exercicios_07.txt type exercicios_07.txt

Eng. Mrcio Ferreira

Curso de Matlab

88

Eng. Mrcio Ferreira

Curso de Matlab

89

Aula 8 Anlise de Sinais


Java 1.02 version

Aula 8 Anlise de Sinais


Funes de anlise de sinais
FFT Transformada de Fourier

FIR digital filter demo (Java 1.02 version) Filtragem de Sinais (Filtro Dolby) Filtro Passa Banda Fita Cassete Filtrar Rudo de Alta Freqncia

filtro_fft.m filtro_fft.m filtro1.m filtro2.m

Ouvido Humano (20 20.000Hz) Conversa Telefnica Diminuio da

Compresso de Dados Amostragem

Eng. Mrcio Ferreira

Curso de Matlab

90

Eng. Mrcio Ferreira

Curso de Matlab

91

Aula 8 Anlise de Sinais


Ajuste de Curvas
aula08b.m

Aula 8 Anlise de Sinais


Ajuste de Curvas
1.5

aula08c.m
Curve Fitting

polyfit Ajusta um polinmio de ordem n a um conjunto de dados. x = [1 2 3 4 5 6] x = [1 2 3 4 5 6] y = [2 1 5 3 9 5] y = [2 1 5 3 9 5] plot(x,y) plot(x,y) plot(x,y) [p, s] = polyfit(x,y,1) [p, s] = polyfit(x,y,1) polyfit(x,y,1) y2 = polyval(p, x) y2 = polyval(p, x) polyval(p, plot(x,y,x,y2) plot(x,y,x,y2) plot(x,y,x,y2)
m se U
Eng. Mrcio Ferreira

0.5

Usando um polinmio de 3 grau


[p, s] = polyfit(x,y,3) [p, s] = polyfit(x,y,3) polyfit(x,y,3) y2 = polyval(p, x) polyval(p, x) y2 = polyval(p, plot(x,y,x,y2) plot(x,y,x,y2) plot(x,y,x,y2)
x = 0:.1:10; x = 0:.1:10; y = sin(x)+cos(2*x); y = sin(x)+cos(2*x); sin(x)+cos(2*x); coeff1 = polyfit(x,y,5); coeff1 = polyfit(x,y,5); polyfit(x,y,5); y1 = polyval(coeff1, x); y1 = polyval(coeff1, x); polyval(coeff1, coeff2 = polyfit(x,y,11); coeff2 = polyfit(x,y,11); polyfit(x,y,11); y2 = polyval(coeff2, x); y2 = polyval(coeff2, x); polyval(coeff2,

-0.5

-1 Original Curve 5th order 11th order

-1.5

-2

10

o o ! !! p! p! el h
Curso de Matlab

plot(x,y,'g',x,y1,'r',x,y2,'b') plot(x,y,'g',x,y1,'r',x,y2,'b') plot(x,y,'g',x,y1,'r',x,y2,'b')


92 Eng. Mrcio Ferreira
Curso de Matlab

93

Aula 8 Anlise de Sinais


Interpolao
interp1 Interpolao unidimensional
t = 1900:10:1990; t = 1900:10:1990; p = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 p = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 249.633]; 203.212 226.505 249.633]; interp1(t,p,1975, 'linear') interp1(t,p,1975, 'linear')

Aula 8 Anlise de Sinais


Interpolao
interp2 Interpolao bidimensional aula08e.m

aula08d.m

interp2 Interpolao bidimensional


[X,Y] = meshgrid(-3:.25:3); [X,Y] = meshgrid(meshgrid(-3:.25:3); Z = peaks(X,Y); Z = peaks(X,Y); peaks(X,Y); [XI,YI] = meshgrid(-3:.125:3); [XI,YI] = meshgrid(meshgrid(-3:.125:3); ZI = interp2(X,Y,Z,XI,YI); ZI = interp2(X,Y,Z,XI,YI); mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15) mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15) mesh(X,Y,Z), hold off hold off
Curso de Matlab Curso de Matlab

w = interp2(X,Y,Z,-2,-2) w = interp2(X,Y,Z,- 2,interp2(X,Y,Z,-2,-2)


Eng. Mrcio Ferreira 94 Eng. Mrcio Ferreira 95

Aula 8 Anlise de Sinais


Exerccios Excel Link

Aula 9 Anlise de Sinais


aula09a.m Quando o Matlab instalado, ele cria uma pasta de nome toolbox, dentro dessa pasta tem uma sub pasta de nome exlink.O Arquivo excllink.xla permite troca de dados interativos entre o Matlab e o Excel.

type exercicios_08.txt type exercicios_08.txt

putmatrix: Copia a matriz selecionada para o Matlab

Leitura Complementar
C:\MATLABR11\help\pdf_doc\signal\signal_tb.pdf C:\MATLABR11\help\pdf_doc\stats\stats_tb.pdf C:\MATLABR11\help\pdf_doc\wavelet\wavelet_ug.pdf

getmatrix: Copia a matriz do Matlab para o Excel evalstring: Avalia uma funo no Matlab dentro do Excel

Eng. Mrcio Ferreira

Curso de Matlab

96

Eng. Mrcio Ferreira

Curso de Matlab

97

Aula 9 Anlise de Sinais


Importao e Exportao de ASCII dlmread.m
L arquivos ASCII
M = dlmread(filename,delimiter) M = dlmread(filename,delimiter,r,c) aula09b.m

! !! !! lp el he h

Aula 9 Anlise de Sinais


Funo de Autocorrelao
autocorr
aula09d.m

t=linspace(0,2*pi,2^8); t=linspace(0,2*pi,2^8); % Funo senos com rudo de 50Hz % Fun Funo senos com ru rudo de 50Hz y=sin(10*t)+2*cos(2*t)+2*sin(35*t)+sin(50*t); y=sin(10*t)+2*cos(2*t)+2*sin(35*t)+sin(50*t); % Plota o sinal original % Plota o sinal original subplot(2,1,1) subplot(2,1,1) plot(t,y,'b') plot(t,y,'b') plot(t,y,'b') [ACF, Lags, Bounds] = autocorr(y,size(y,2)-1) [ACF, Lags, Bounds] = autocorr(y,size(y,2)autocorr(y,size(y,2)-1) subplot(2,1,2) subplot(2,1,2)

dlmwrite.m
Escreve valores para um arquivo ASCII
dlmwrite(filename,A,delimiter) dlmwrite(filename,A,delimiter,r,c)

aula09c.m

m s se U U o

plot(Lags,ACF,'r') plot(Lags,ACF,'r') plot(Lags,ACF,'r')

Eng. Mrcio Ferreira

Curso de Matlab

98

Eng. Mrcio Ferreira

Curso de Matlab

99

Aula 9 Anlise de Sinais


Aquisio de Dados
ai = analoginput('winsound') ai = analoginput('winsound') analoginput('winsound') addchannel(ai, 1) addchannel(ai, 1) addchannel(ai, set(ai, 'SampleRate', 11025); set(ai, 'SampleRate', 11025); set(ai, 'SampleRate', set(ai, 'SamplesPerTrigger', 11025); set(ai, 'SamplesPerTrigger', 11025); set(ai, 'SamplesPerTrigger', start(ai) start(ai) start(ai) data = getdata(ai); data = getdata(ai); getdata(ai); plot(data) plot(data) plot(data) title('Gravao da placa de som do PC') title('Grava title('Gravao da placa de som do PC')

Aula 9 Anlise de Sinais


Aquisio de Dados
data, fs] = daqrecord(5, 8192, 1); data, fs] = daqrecord(5, 8192, 1); fs] daqplay(data, fs) daqplay(data, fs) daqplay(data, fs)

daq_fft.m daq_fft.m

Eng. Mrcio Ferreira

Curso de Matlab

100

Eng. Mrcio Ferreira

Curso de Matlab

101

Aula 9 Anlise de Sinais


Aquisio de Dados
daqscope daqscope

Aula 9 Anlise de Sinais


Exerccios
type exercicios_09.txt type exercicios_09.txt

daqfcngen daqfcngen

Leitura Complementar
C:\MATLABR11\help\pdf_doc\excel\excelus5.pdf C:\MATLABR11\help\pdf_doc\hosa\hosa.pdf

Eng. Mrcio Ferreira

Curso de Matlab

102

Eng. Mrcio Ferreira

Curso de Matlab

103

Aula 10 Interfaces
Apresentao GUIDE
guide guide funtool funtool

Aula 10 Interfaces
Calculadora gerada pelo guide

Eng. Mrcio Ferreira

Curso de Matlab

104

Eng. Mrcio Ferreira

Curso de Matlab

105

Aula 10 Interfaces
Apresentao GUIDE
Property Editor

Aula 10 Interfaces
Apresentao GUIDE
Callback Editor
Callback: Funo a ser executada ao clicar no boto. A funo pode ser um m-file ou ser escrita no quadro.

Callback: Arquivo .m a ser executada ao clicar no boto String: Texto do boto Tag: Nome identificador do boto Value: Valor padro do boto

Eng. Mrcio Ferreira

Curso de Matlab

106

Eng. Mrcio Ferreira

Curso de Matlab

107

Aula 10 Interfaces
Elaborao de Interfaces Elaborao de Interfaces

Aula 10 Interfaces
GET(object_handle, <Property_Name>):
retorna o valor de uma propriedade especfica do para o objeto indicado por object_handle. Exemplo:

Ler o valor da caixa de texto com tag=caixa1


valor = str2num(get(findobj('Tag', 'caixa1'), 'String')); valor = str2num(get(findobj('Tag', 'caixa1'), 'String')); str2num(get(findobj('Tag', valor = 33.56 valor = 33.56

Ler o texto da caixa de texto com tag=caixa2


texto = get(findobj('Tag', 'caixa1'), 'String'); texto = get( findobj('Tag', 'caixa1'), 'String'); get(findobj('Tag', texto = TEXTO texto = TEXTO
Eng. Mrcio Ferreira
Curso de Matlab

108

Eng. Mrcio Ferreira

Curso de Matlab

109

Aula 10 Interfaces
Elaborao de Interfaces
SET(object_handle, <Property_Name>, < PropertyValue>): retorna os possveis valores para uma propriedade especfica do para o objeto indicado por object_handle. Exemplo:

Aula 10 Interfaces
Elaborao de Interfaces

Escrever valor1 na caixa de texto com tag=caixa2


set(findobj('Tag', 'caixa2'), 'String', 'valor1'); set(findobj('Tag', 'caixa2'), 'String', 'valor1'); set(findobj('Tag',

Eng. Mrcio Ferreira

Curso de Matlab

110

Eng. Mrcio Ferreira

Curso de Matlab

111

Aula 10 Interfaces
Elaborao de Interfaces Elaborao de Interfaces

Aula 10 Interfaces

Aqui vai o clculo ou uma funo

Eng. Mrcio Ferreira

Curso de Matlab

112

Eng. Mrcio Ferreira

Curso de Matlab

113

Aula 10 Interfaces
Elaborao de Interfaces Elaborao de Interfaces
Modo de edio edi

Aula 10 Interfaces

Modo de teste

Eng. Mrcio Ferreira

Curso de Matlab

114

Eng. Mrcio Ferreira

Curso de Matlab

115

Aula 10 Interfaces
Elaborao de Interfaces Elaborao de Interfaces

Aula 10 Interfaces

O comando calcula no workspace abre a interface criada

Eng. Mrcio Ferreira

Curso de Matlab

116

Eng. Mrcio Ferreira

Curso de Matlab

117

Aula 10 Interfaces
Elaborao de Interfaces Elaborao de Interfaces
variaveis={'Sin'; 'Cos'}; variaveis={'Sin'; 'Cos'}; variaveis={'Sin'; 'Cos'};

Aula 10 Interfaces
valor_pop = get(findobj('Tag', 'PopupMenu1'), 'Value'); valor_pop =get( findobj('Tag', 'PopupMenu1'),'Value'); get(findobj('Tag', 'Value'); valor_check1 = get(findobj('Tag', 'Checkbox1'), 'Value'); valor_check1 =get( findobj('Tag', 'Checkbox1'),'Value'); get(findobj('Tag', 'Value'); valor_check2 = get(findobj('Tag', 'Checkbox2'), 'Value'); get( findobj('Tag', 'Checkbox2'),'Value'); valor_check2 = get(findobj('Tag', 'Value'); x=0:.1:2*pi; x=0:.1:2*pi; x=0:.1:2*pi; if valor_pop == 1 if valor_pop == 1 h1 = plot(x,sin(x)); h1 =plot(x,sin(x)); plot(x,sin(x)); elseif valor_pop == 2 elseif valor_pop == 2 h1 = plot(x,cos(x)); plot(x,cos(x)); h1 = plot(x,cos(x)); end end if valor_check1 == 1 if valor_check1 == 1 set(h1,'Color','y'); set(h1,'Color','y'); set(h1,'Color','y'); elseif valor_check1 == 0 elseif valor_check1 == 0 set(h1,'Color','b'); set(h1,'Color','b'); set(h1,'Color','b'); end end if valor_check2 == 0 if valor_check2 == 0 set(h1,'LineStyle','-'); set(h1,'LineStyle','set(h1,'LineStyle','-'); elseif valor_check2 == 1 elseif valor_check2 == 1 set(h1,'LineStyle','--'); set(h1,'LineStyle','--'); set(h1,'LineStyle','--'); end end

Eng. Mrcio Ferreira

Curso de Matlab

118

Eng. Mrcio Ferreira

Curso de Matlab

119

Tpicos Especiais
Unconstrained optimization min f (x) = x ex
2 1 (4x1 +

Tpicos Especiais
Constrained optimization min f (x) = x ex
2 1 (4x1 +

objfun.m objfun.m topicos1.m

objfun.m objfun.m topicos2.m

2x22 +

4x1x2 + 2x2 +1)

2x22 +

4x1x2 + 2x2 +1)

function f = objfun (x) function f = objfun (x) f = 3*(1-x(1)).^2.*exp(-(x(1).^2) f = 3*(1- x(1)).^2.*exp(3*(1-x(1)).^2.*exp(-(x(1).^2) (x(2)+1).^2) ... (x(2)+1).^2) ... - 10*(x(1)/5 - x(1).^3 - 10*(x(1)/5 - x(1).^3 x(2).^5).*exp(-x(1).^2-x(2).^2) ... x(2).^5).*exp(- x(1).^2x(2).^5).*exp(-x(1).^2-x(2).^2) ... - 1/3*exp(-(x(1)+1).^2 - x(2).^2); - 1/3*exp(1/3*exp(-(x(1)+1).^2 - x(2).^2);

Sujeito a: x1>=

0
function [c, ceq] = confun (x) function [c, ceq] = confun (x) ceq] c=[x(1)]; c=[x(1)]; ceq=[]; ceq=[]; ceq=[];

x=[0 -2]; x=[0 -2]; op=optimset('LargeScale','off'); op= optimset('LargeScale','off'); op=optimset('LargeScale','off'); [x,fval,exitflag,output]=fminunc('objfun',x0,op); [x,fval,exitflag,output]=fminunc('objfun',x0,op); [x,fval,exitflag,output]=fminunc('objfun',x0,op);

x0=[0 0]; x0=[0 0]; op=optimset('LargeScale','off'); op= optimset('LargeScale','off'); op=optimset('LargeScale','off'); [x,fval]=fmincon('objfun',x0,[],[],[],[],[],[],'confun',op) [x,fval]=fmincon('objfun',x0,[],[],[],[],[],[],'confun',op) [x,fval]=fmincon('objfun',x0,[],[],[],[],[],[],'confun',op)

Eng. Mrcio Ferreira

Curso de Matlab

120

Eng. Mrcio Ferreira

Curso de Matlab

121

Tpicos Especiais
Programao Linear min f T x x
Sujeito a: A

Tpicos Especiais
Programao Quadrtica
topicos4.m Se funo objetivo quadrtica e as restries so lineares, podemos utilizar quadprog do Matlab. Exemplo: min S = x12 + 2 x22 + 3x32 + 4 x42 + 5 x52 s.a. 2 0 0 2 x1 + x2 4 x3 + x4 x5 = 0
5 x1 2 x3 + x4 x5 = 0

. x <= b Aeq . x = beq lb <= x <= ub

topicos3.m

[x,fval,flag]=linprog(f,A,b,Aeq,bea,lb,ub,x0,op) [x,fval,flag]=linprog(f,A,b,Aeq, bea, lb, ub,x0,op) [x,fval,flag]=linprog(f,A,b,Aeq,bea,lb,ub,x0,op)

Exemplo: min f(x) = -5x1 - 4x2 - 6x3 Sujeito a: x1 - x2 + x3 <= 20 3x1 + 2x2 + 4x3 <= 42 3 x1 + 2x2 <= 30 0 <= x1; 0 <= x2 ; 0 <= x3
Eng. Mrcio Ferreira

f=[-5;-4;-6]; f=[- 5;- 4;f=[-5;-4;-6]; A=[1 -1 1;3 2 4;3 2 0]; A=[1 -1 1;3 2 4;3 2 0]; b=[20;42;30]; b=[20;42;30]; lb=zeros(3,1); lb=zeros(3,1); [x,fval]=linprog(f,A,b,[],[],lb) x,fval]=linprog(f,A,b,[],[],lb) [x,fval]=linprog(f,A,b,[],[],lb) Optimization terminated Optimization terminated successfully. successfully. x = x = 0.0000 0.0000 15.0000 15.0000 3.0000 3.0000 fval = fval = -78.0000 -78.0000
122

x1 + 2 x2 + x3 6
4 x3 + x4 2 x5 0

0 H = 0 0 0

0 0 0 0 0 6 0 0 0 0 8 0 0 0 0 10 4 0

A funo objetivo deve ser escrita na forma: S=0.5*x'*H*x + f'*x


f ' = [0 0 0 0 0]
2 1 4 1 1 Aeq = 5 0 2 1 1 1 2 1 0 0 A= 0 4 1 2 0 0 beq = 0

6 b= 0

[x,S]=quadprog(H,f,A,b,Aeq,beq) x=[0.4812 2.4962 0.5263 -0.6023 0.7514]


Eng. Mrcio Ferreira
Curso de Matlab

S=17.7989
123

Curso de Matlab

Tpicos Especiais
Integrao Numrica
% Aproximao or trapzios (grosseira) grosseira) % Aproxima Aproximao or trap trapzios (grosseira) x = 0:.2:pi; x = 0:.2:pi; y = minhafun(x); y = minhafun(x); minhafun(x); plot(x,y,'-r') plot(x,y,'plot(x,y,'-r') hold on hold on area = trapz(x,y) area = trapz(x,y) trapz(x,y)

Tpicos Especiais
Manipulao Simblica

topicos5.m minhafun.m minhafun.m

help symbolic help symbolic help sym help sym help syms help syms syms x y %cria x e y como var. simblicas syms x y %cria x e y como var. simb simblicas f=x+2*y f=x+2*y g=x*y g=x*y f+g; f+g; f*g; f*g; f/g; f/g;

% Aproximao or quadratura(preciso) % Aproxima Aproximao or quadratura(preciso) area2 = quad('minhafun',0,pi) area2 = quad('minhafun',0,pi) quad('minhafun',0,pi) ezplot('minhafun',0,pi) ezplot('minhafun',0,pi) ezplot('minhafun',0,pi) % Aproximao or quadratura(mais preciso) % Aproxima Aproximao or quadratura(mais preciso) area3 = quad8('minhafun',0,pi) area3 = quad8('minhafun',0,pi) quad8('minhafun',0,pi)

Eng. Mrcio Ferreira

Curso de Matlab

124

Eng. Mrcio Ferreira

Curso de Matlab

125

Tpicos Especiais
Manipulao Simblica - Simplificao
O produto das operaes pode resultar em expresses matemticas complicadas: simple; coloca a expresso na forma mais simples simple simplify; simplifica a expresso simplify pretty; exibe a expresso de uma forma mais visual pretty
eq = x-cos(x/2)^(log(45*x/2))/45^x*9.45 cos(x/2)^(log(45*x/2))/45^x*9.45 eq = x-cos(x/2)^(log(45*x/2))/45^x*9.45 pretty(eq) pretty( eq) pretty(eq)

Tpicos Especiais
Manipulao Simblica - Simplificao
Aps a manipulao e simplificao pode-se desejar substituir valores para as variveis simblicas:

subs(f,2); %substitui em f x=2 subs(f,2); %substitui em f x=2 subs(f,2); subs(f,x,2); %substitui em f x=2 se f funo multivarivel subs(f,x,2); %substitui em f x=2 se f fun subs(f,x,2); funo multivari multivarivel subs(f,x,y); %substitui em f x=y subs(f,x,y); %substitui em f x=y subs(f,x,y);

Eng. Mrcio Ferreira

Curso de Matlab

126

Eng. Mrcio Ferreira

Curso de Matlab

127

Tpicos Especiais
Manipulao Simblica Diferenciao e Integrao
help diff help diff syms x y syms x y f= 2*x + x*y + 2*y; f= 2*x + x*y + 2*y; diff(f, x); derivada parcial em relao a x diff(f, x); derivada parcial em rela diff(f, relao a x help int help int int(f,x); %integra g em relao a x com constante de int=0 int(f,x); %integra g em rela relao a x com constante de int=0 int(f,x,a,b); %integral definida entre a e b int(f,x,a,b); %integral definida entre a e b

Links
http://www.mathworks.com/products/matlab/ http://www.mathworks.co.uk/matlabcentral/link_exc hange/index.html C:\MATLABR11\help\pdf_doc\matlab\quickref.pdf C:\MATLABR11\help\pdf_doc\matlab\using_ml.pdf C:\MATLABR11\help\pdf_doc\matlab\gui\buildgui.pdf

Se a constante de integrao diferente de zero, devemos somar essa constante soluo obtida

Eng. Mrcio Ferreira

Curso de Matlab

128

Eng. Mrcio Ferreira

Curso de Matlab

129

Вам также может понравиться