Sei sulla pagina 1di 37

UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT Departamento de Engenharia REA DE MECANIZAO AGRCOLA

CURSO BSICO DE MATLAB


Ambiente d A bi t de computao para desenvolvimento de sistemas sofisticados t d l i t d it fi ti d

Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br UFRRJKeilla Boehler, Aluna do Curso de Engenharia Agrcola, UFRRJ. keillambidao@ig.com.br

Sair

Contedo
Introduo Introd o Principais Recursos do Programa Janela Principal do Programa Principais Sub-janelas do Programa SubManipulao de Matrizes Matrizes e grficos para anlise de dados Grficos para anlise de dados Janelas e Ferramentas Carregando algoritmo prtico Operaes com Vetores Funes Matemticas Matrizes Comando for Estrutura switch, case, otherwise While Plotagem Representaes em coordenadas polares Arquivos, extenses e rotinas Criao de uma nova funo Grficos tridimensionais Cores de Mapas

Introduo
O programa computacional MATLAB um ambiente de computao tcnicotcnico-cientfica para o desenvolvimento de sistemas sofisticados ( MATSUMOTO, 2002); extensivamente usado para explorao, anlise e resoluo de problemas em diversas reas do conhecimento; Apresenta diversos pacotes de ferramentas toolbox que so um toolbox conjunto de algoritmos especialmente desenvolvidos para aplicaes especficas.

Principais Recursos do Programa p g


Linguagem de alto-nvel para computao tcnica altoAmbiente de desenvolvimento e administrao de cdigo, arquivos, e dados Ferramentas interativas para explorao, desgnio e resoluo de problemas Funes matemticas para lgebra linear, estatsticas, anlise de Fourier, filtragem, otimizao, e integrao numrica Funes para visualizar dados de grficos 2-D e 3-D 23Ferramentas para construo de interfaces com usurio Funes que integram MATLAB funcionam como base de algoritmos com aplicaes externas e idiomas, como C, C++, Fortran, Java, COM, e Microsoft Excel Excel,

Janela Principal do Programa

Principais Sub-janelas do Programa SubJanela de comando Workspace

Comand Window

Manipulao de Matrizes
Comando XLSREAD(*.xls) carrega o arquivo que contm os valores; Quantidades de cada item determinadas em uma matriz; Multiplicando as matrizes podepode-se comparar os preos total ofertado no total por cada revendedor.
>> precos= XLSREAD('exemplo novo xls'); novo.xls ); >> precos precos = 15400 16200 15150 18200 17900 19000 46200 47500 48000 Revendedor Revendedor A Revendedor B Revendedor C Automvel 15400 16200 15150 Caminhonete 18200 17900 19000 Caminho 46200 47500 48000

>> escolha=precos*quantidade escolha = >> quantidade=[3;1;2] quantidade = 3 1 2 156800 161500 160450

Matrizes e grficos para anlise de dados


>> grafico=[precos,escolha] grafico = 15400 16200 15150 18200 17900 19000 46200 47500 48000 156800 161500 160450

>> revendedor=[1 2 3]; [ ];

>> bar(grafico)

>> plot(revendedor,grafico(:,1)) p ( ,g ( , ))

Grficos para anlise de dados


>> plot(revendedor,grafico(:,2))

>> plot(revendedor,grafico(:,3))

>> plot(revendedor,grafico(:,4))

Janelas e Ferramentas

Escolha de diretrio; Utilizao Utili ao de ferramenta de busca para opo de comando; Leitura d i L it de imagem em formato .JPG Salvar a varivel em arquiv .m que consta em workspace . Amostragem para anlise da composio da imagem.

Carregando varivel salva para ser usada em outro trabalho

Carregando algoritmo prtico


O comando figure um suporte sempre necessrio quando i d desejadeseja-se amostrar imagem. designado atra s da interface atravs programaprograma-usurio

As linhas de programao ficam gravadas em arquivos M-file ou arquivos de extenso .m M-

Operaes com Vetores


Criao >>t=[0 >>t=[0 2 4 6 8 10 12 14 16 18 20] Ou O >>t1= 0:2:20 >> h=1:3:32
Manipulao >> h1=h+2 >> v=t+h >> t1=t*5 >> b=t*h >> b1=t.*h >> b2=t/h b2 t/h

>> who Your variables are: h t >> whos Name h t

Size 1x11 1x11

Bytes Class 88 double array 88 double array

Grand total is 22 elements using 176 bytes

Funes Matemticas
Para facilmente escrever linhas de expresso matemtica, Matlab disponibiliza bloco de cdigos que realizam tarefas especficas. Contm funes padro como sin, cos, tan, sec, exp, log, sqrt,sum, mean. Constantes geralmente usadas como pi, e i ou j para a raiz quadrada de -1, tambm est incorporado em Matlab. EncontraEncontra-se todas as funes matemticas elementares listadas atravs do comando: >> help elfun

x=3

y=4

w = 5x + 3 x3 y3 2 y x 4 y 2
q=
2x2 5 y t=

(sin w3 t 4 10 + tan w)( 3t + 1)

12w

2 y 3+x + 17

Implementao de Funes
>> x=4; y=3; >> t=(2*x^2-5*y)/(sqrt(2*y^(3-x)+17)) t=(2*x^2-5*y)/(sqrt(2*y^(3t= 4.0446 >> w=(5*x+3-x^3-y^3)/(2*y-x-4*y^2) w=(5*x+3-x^3-y^3)/(2*yw= 2 >> q=(sin(w)^3-t^4/10+tan(w))*(-sqrt(t*3+1))/12*w q=(sin(w)^3-t^4/10+tan(w))*(q= 17.0289

Matrizes
>> a = [1 2 3;4 5 6;7 8 9] >> a1 = [1 2 3 456 7 8 9] >> a2 = [1 2 3 4 5 6 7 8 9] 3,4 6,7 >> b=[1 2 2;3 2 4; 5 2 1]; >> d=[b,a]

O clculo de transpostas transpostas, inversas, determinantes,diagonais, resumecovarincias resume-se a comandos como: >> inv(x)

>> b=rand(6) b rand(6) >> var(b) >> cov(b) Sendo a matriz de varincia diagonal da matriz de covncia

Livro d algebra li Li de l b linear exerccio i

help h l matfun tf

Funes para Matrizes


>> ones(3) matriz de uns >> zeros(5) matriz de zeros >> rand(3) matriz com elementos aleatrios distribudos uniformemente >> randn(4) matriz com elementos aleatrios distribudos normalmente >> eye(3) (3) matriz identidade t i id tid d >> ones(3,1,2) matriz de uns com especificao da dimenso >> a=ones(2,5); b=zeros(2,5); c=ones(1,5)*3;vertcat(a,b,c) comando que concatena matrizes verticalmente >> repmat(a,2,3) >> m = size(rand(2,3,4),2) size(rand(2 3 4) 2) em que o ultimo algarismo responde sobre a dimenso dois, a das colunas. Poderia ser 3, a das linhas. E 4, a das bandas. >>d=peaks(25); >>d k (25)

Programao simples
Sistematizao de terreno pelo Mtodo do Plano nico c =input('cotas das amostras ordenadas na sequencia da malha:') input( cotas malha: ) %[10.0000,10.2800,10.2000,10.3000,10.3100;10.3000,10.3200,10.2800,10. 3100,1 %0.4000;10.4800,10.5000,10.5500,10.4800,10.5500;10.5600,10.7000,10.80 %0 4000;10 4800 10 5000 10 5500 10 4800 10 5500;10 5600 10 7000 10 80 00,10. %7500,10.7800]; a=size(c,1);b=size(c,2); N=a*b; Hc=(sum(sum(c,1)))/N; ( ( ( , ))) ; dif=cdif=c-Hc; inda=find(dif < 0);indc=find(dif > 0); dist=input('distancia dist inp t('distancia entre pontos da malha:'); malha ') area=dist^2; volcorte= sum(dif(indc))*area; volaterro=sum(dif(inda))*area;

Comando for
A forma bsica do comando for : for ndice = comea:incremento:para declaraes end >> for m=1:10 x(m)=m^2; end; >> x(3) ans = 9 >> for a=1:10 a<=3; C(a)=a^2; a=3:7; C(a)=a+5; a=7:10; C(a)=a; end >> stem(C)

Estruturas if-else-end if-elseMatlab tem quatro tipos de afirmaes so if, elseif, else,end Elas fazem o controle de fluxo baseadas no teste lgico. Em sua forma bsica: If teste declaraes End E d function retorno=posneg(ent) if all(ent>0) all(ent 0) retorno=1; elseif all (ent<0) retorno=-1 retorno=-1; t else retorno=0; end

O teste uma expresso em que h 1(verdadeiro) ou 0(falso) executado entre o if e end e retorna se o teste der verdadeiro, quando falso so ignoradas as declaraes. Testes adicionais podem ser feitos usando elseif e else.

Estrutura switch, case, otherwise


A forma bsica de parmetros do switch e: e switch teste case resultado1 declarao case resultado2 declarao d l ... otherwise declarao end M-file switchx.m switch x case 1 disp('x is 1'); di (' i 1') case {2,3,4} disp('x is 2, 3 or 4'); case 5 disp('x is 5'); otherwise disp('x is not 1, 2, 3, 4 or 5'); end >> x=5; Pressione o boto run: >> x is 5

A expresso em switch case s pode ser um escalar ou uma string string.

While
while teste declarao end n = 1; while sum(1:n)<=1000 hil (1 ) 1000 n = n+1; end

As declaraes so executadas repetidamente enquanto o valor de teste for igual a 1, por exemplo, achar o primeiro inteiro n para qual 1+2+ +n 1+2+ +n maior que 1000:

rea de um Polgono com While


mat=input('matriz de coordenadas x e y dos pontos da poligonal:') matr=vertcat(mat,mat(1,:)); x=matr(:,1);y=matr(:,2); a=size(x,1); i ( 1) n=1; soma=0; while n<a; mult=x(n,1)*y(n+1,1); soma=soma+mult; n=n+1; end m=1; soma2 0; soma2=0; while m<a; mult2=x(m+1,1)*y(m,1); soma2 soma2 mult2; soma2=soma2+mult2; m=m+1; end area=abs((soma-soma2)/2) (( ) )

Plotagem
O comando axis ajusta a escala do grfico s coordenadas dos pontos plotados. Sintaxe: axis([xmin xmax ymin ymax]) ([ y y ]) >> x1=-1;y1=-1;x2=1;y2=-1;x3=-1;y3=1;x4=1;y4=1; x1=-1;y1=-1;x2=1;y2=-1;x3=>> plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o') >> axis([-2 2 -2 2]) axis([i ([ >> axis square %forma quadrada >> axis normal ou >> x=[-1 1 -1 1] ; y=[-1; -1; 1; 1] ; plot(x,y,'.r');axis([-2 2 -2 2]) x=[y=[plot(x,y,'.r');axis([subplot trabalha com multiplicidade de grficos renda= [3.2 4.1 5.0 5.6]; gastos= [2.5 4.0 3.35 4.9]; subplot(2,1,1); plot(renda) subplot(2,1,2); plot(gastos)

Comando subplot
>> t = 0:.1:2*pi; subplot(2,2,1) plot(cos(t),sin(t)) l t( (t) i (t)) subplot(2,2,2) plot(cos(t),sin(2*t)) subplot(2,2,3) s bplot(2 2 3) plot(cos(t),sin(3*t)) subplot(2,2,4) plot(cos(t),sin(4 t)) plot(cos(t) sin(4*t)) subplot 221 plot(1:10) subplot 222 plot(0,*) subplot 212 p plot([1 0 1 0])

Sendo o primeiro ndice o nmero de eixos na vertical, vertical o segundo nmero de eixos na horizontal e o ltimo o nmero de ordem ou posio.

Propriedades de Grficos
Para colocar rtulos em grficos pode-se usar a funo xlabel, ylabel, podeand title >> xlabel(eixo x'); ylabel(eixo y'); title(pontos no plano') ( ); y ( y ); (p p ) Inserir texto em ponto de sua escolha no grfico >>gtext('P1');gtext('P2');gtext('P3');gtext('P4') Em help plot visualiza-se as especificaes visualizadas caractersticas do grfico >> t = 0:.1:2*pi; plot(t,sin(t),t,sin(1.05*t)) >> gtext('frequency = 1');gtext('frequency g ( q y )g ( q y = 1.05');axis([0 max(t) -1 1]) PodePode-se especificar o estilo de linha o smbolo que marca o ponto e linha, cor do grfico ainda pelo prompt. >> x=[4 5 6; 1 2 3]; y=(x.^2) >> plot(x,y,''-.or') plot(x,y,'- ') l t( >> plot(x,y,'-hk') plot(x,y,'-

Propriedades de Grficos

>> t = 0:.1:2*pi; plot(t,sin(t),t,sin(1.05*t)) >> gtext('frequency = 1');gtext('frequency = 1.05');axis([0 max(t) -1 1])

>> dt = 2*pi/10; t = dt:dt:10*dt; ; x = cos(t); y = sin(t); plot(x,y) axis equal off for i = 1:10 text(x(i),y(i),int2str(i)) end

Comando plot3
Matlab apresenta um grfico tridimensional com plot3: >> x1=3; y1=4; z1=5; 1 3 1 4 1 5 >> plot3(x1,y1,z1,'*')

>> th=[0:.01:2]*2*pi; [ ] p; x=cos(th); y=sin(th); z=th; plot3(x,y,z)

Representaes em coordenadas p p polares


>> th=0:2*pi/100:2*pi; rho=3 th; rho=3*th; polar(th,rho)

Arquivos, extenses e rotinas


As rotinas para automao de atividades tambm so gravados em arquivos de extenso .m e carregados sempre que necessrio; File>New>M-File Copiar as linhas de programao com sintaxe correta e salvar; File>Open>(escolha) Desde que o arquivo esteja no diretrio corrente; Boto para compilao ou p o pt d g ta do o nome do a qu o prompt digitando arquivo. oto pa a co p ao o e J as variveis de trabalho podem ser armazenadas em arquivos de As... extenso .mat atravs do menu File> Save Workspace As E carregadas mat da mesma maneira que um M_File. clear, clear clf >>x1=1;y1=.5;x2=2;y2=1.5;x3=3;y3=2; >>plot(x1,y1,'o',x2,y2,'+',x3,y3,'*') >>axis([0 4 0 4]) axis([0 >>xlabel('xaxis') >>ylabel('yaxis') >>title('3points in a p ( p plane') )

Criao de uma nova funo


necessrio criar um arquivo .m denominado da mesma forma que a funo; Em sua primeira linha escreve-se o comando function e segue a escrevedescrio dos parmetros da nova funo.

Para a amostragem geomtrica da funo em seu domnio usa-se o usacomando f l d li i d os i d fplot delimitando intervalos l
>> fplot ( andre ,[ 2,7]) ('andre',[-2,7])

Grficos tridimensionais
>> [x,y] = meshgrid(-10:10); z = sqrt( ^2 + y.^2); sqrt(x.^2 ^2) >> mesh(x,y,z)

Tipos de representaes

z = 3*(1 ) ^2 * 3*(1-x).^2.*exp(-(x.^2) - ( 1) ^2) ... ( ( ^2) (y+1).^2) - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2);

[x,y,z] = peaks; colormap(gray)

plot(z)

mesh(x,y,z) ( y )

Outros tipos de representaes


>> surf(x,y,z) surf(x y z) >> shading flat >> surfl(x,y,z) ( y ) >> shading flat

>> contour(x,y,z)

>> imagesc(z) >> axis xy

Outros tipos de representaes


>> surfc(x,y,z)

>> contourf(x,y,z) ( ,y, )

Cores de Mapas
PodePode-se criar seu prprio trao ou usar qualquer mapa de cores predefinidas disponveis
hsv hot gray bone copper pink white flag lines colorcube jet prism cool autumn spring winter summer >> colormap (hot) l (h t) >> colormap ([.5 .5 .5])
Red 0 1 1 0 0 1 1 0 Green 0 1 0 1 0 1 0 1 .5 0 .62 1 .9 Blue 0 1 0 0 1 0 1 1 .5 0 .4 .83 .8 Colour Black White Whit Red Green Blue Yellow Magenta Cyan Gray Dark red Dark orange Aquamarine Parchment

>> gray(8)

.5 .5

Colormap. Matlab usa matrizes para aplicar cores em mapas imagens e superfcies tendo elas as especificaes:

1 .49 .95

Formatos suportados para arquivos de dados


Data Formats MAT - MATLAB workspace CSV - Comma separated numbers TXT Formatted data in a text file DAT - F Formatted text tt d t t DLM - Delimited text TAB - Tab separated text Spreadsheet Formats XLS - E Excel worksheet l k h t WK1 - Lotus 123 worksheet Scientific Data Formats CDF - Common Data Format FITS - Flexible Image Transport System HDF - Hierarchical Data Format Command LOAD CSVREAD TEXTREAD IMPORTDATA DLMREAD DLMREAD Command XLSREAD WK1READ Command CDFREAD FITSREAD HDFREAD Returns Variables in file Double array Double array Double D bl array Double array Double array Returns Double D bl array and cell array d ll Double array and cell array Returns Cell array of CDF records Primary or extension table data HDF or HDF-EOS data set

Formatos suportados para arquivos de dados

Formatos suportados para arquivos de imagem, udio e filme


Image Formats TIFF Tagged image format PNG Portable network graphics HDF Hierarchial data format BMP Windows bitmap Audio Formats A di F t AU Next/Sun Sound SND Next/Sun Sound WAV Microsoft Wave Sound Movie Formats AVI - Movie Command IMREAD IMREAD IMREAD IMREAD Command C d AUREAD AUREAD WAVREAD Command AVIREAD Returns Truecolor, grayscale or indexed image(s) Truecolor, grayscale or indexed image Truecolor or indexed image(s) g ( ) Truecolor or indexed image Returns R t Sound data and sample rate Sound data and sample rate Sound data and sample rate Returns MATLAB movie

Potrebbero piacerti anche