UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT

  • Slides: 37
Download presentation
UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT – Departamento de Engenharia LABORATÓRIO DE

UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT – Departamento de Engenharia LABORATÓRIO DE MECANIZAÇÃO AGRÍCOLA INTRODUÇÃO AO USO DO PROGRAMA COMPUTACIONAL MATLAB Ambiente de computação para desenvolvimento de sistemas sofisticados Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj. br Joseph Kalil Khoury Junior, Prof. UFRRJ-IT/DE. kalil@ufrrj. br Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. keillambidao@ig. com. br

Conteúdo l l l l l Introdução Principais Recursos do Programa Janela Principal do

Conteúdo l l l l l Introdução Principais Recursos do Programa Janela Principal do Programa Principais Sub-janelas do Programa Manipulação de Matrizes e gráficos para análise de dados Janelas e Ferramentas Comandos de alto nível Operações com Vetores Funções Matemáticas Matrizes Comando for-switch-case-otherwise-while Plotagem de gráficos Representações em coordenadas polares Arquivos, extensões e rotinas Criação de uma nova função Gráficos tridimensionais Mapa de Cores

Introdução l O programa computacional MATLAB é um ambiente de computação técnico-científica para o

Introdução l O programa computacional MATLAB é um ambiente de computação técnico-científica para o desenvolvimento de sistemas sofisticados ( MATSUMOTO, 2002); l É extensivamente usado para exploração, análise e resolução de problemas em diversas áreas do conhecimento; l Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um conjunto de algoritmos especialmente desenvolvidos para aplicações específicas.

Principais Recursos do Programa l Linguagem de alto-nível para computação técnica l Ambiente de

Principais Recursos do Programa l Linguagem de alto-nível para computação técnica l Ambiente de desenvolvimento e administração de código, arquivos, e dados l Ferramentas interativas para exploração, desígnio e resolução de problemas l Funções matemáticas para álgebra linear, estatísticas, análise de Fourier, filtragem, otimização, e integração numérica l Funções para visualizar dados de gráficos 2 -D e 3 -D l Ferramentas para construção de interfaces com usuário l Funções que integram MATLAB funcionam como base de algoritmos com aplicações externas e idiomas, como C, C++, Fortran, Java, COM, e Microsoft Excel,

Janela Principal do Programa

Janela Principal do Programa

Principais Sub-janelas do Programa Janela de comando Workspace Comand Window

Principais Sub-janelas do Programa Janela de comando Workspace Comand Window

Manipulação de Matrizes v Comando XLSREAD(‘*. xls) carrega o arquivo que contém os valores;

Manipulação de Matrizes v Comando XLSREAD(‘*. xls) carrega o arquivo que contém os valores; v Quantidades de cada item determinadas em uma matriz; v Multiplicando as matrizes pode-se comparar os preços total ofertado no total por cada revendedor. >> precos= XLSREAD('exemplo novo. xls'); >> precos Y Caminhonete Caminhão Revendedor A 15400 18200 46200 Revendedor B 16200 17900 47500 Revendedor C 15150 19000 48000 >> escolha=precos*quantidade escolha = >> quantidade=[3; 1; 2] quantidade = precos = 15400 16200 15150 X 18200 17900 19000 46200 47500 48000 3 1 2 156800 161500 160450

Matrizes e gráficos para análise de dados >> grafico=[precos, escolha] grafico = 15400 16200

Matrizes e gráficos para análise de dados >> grafico=[precos, escolha] grafico = 15400 16200 15150 18200 17900 19000 >> bar(grafico) 46200 47500 48000 156800 161500 160450 >> revendedor=[1 2 3]; >> plot(revendedor, grafico(: , 1))

Gráficos para análise de dados >> plot(revendedor, grafico(: , 2)) >> plot(revendedor, grafico(: ,

Gráficos para análise de dados >> plot(revendedor, grafico(: , 2)) >> plot(revendedor, grafico(: , 3)) >> plot(revendedor, grafico(: , 4))

Janelas e Ferramentas v Carregando variável salva para ser usada em outro trabalho v

Janelas e Ferramentas v Carregando variável salva para ser usada em outro trabalho v Escolha de diretório; v Utilização de ferramenta de busca para opção de comando; v Leitura de imagem em formato. JPG v Salvar a variável em arquivo. m que consta em workspace. v Amostragem para análise da composição da imagem.

Comandos de alto nível • • As linhas de programação ficam gravadas em arquivos

Comandos de alto nível • • As linhas de programação ficam gravadas em arquivos M-file ou arquivos de extensão. m O comando figure é um suporte sempre necessário quando deseja-se amostrar imagens. É designado através da interface programa-usuário

Operações com Vetores Criação >>t=[0 2 4 6 8 10 12 14 16 18

Operações com Vetores Criação >>t=[0 2 4 6 8 10 12 14 16 18 20] Ou >>t 1= 0: 2: 20 >> h=1: 3: 32 >> who Your variables are: h t >> whos Name h t Size 1 x 11 Bytes Class 88 double array Grand total is 22 elements using 176 bytes Manipulação >> h 1=h+2 >> v=t+h >> t 1=t*5 >> b=t*h‘ >> b 1=t. *h >> b 2=t/h

Funções Matemáticas v Para facilmente escrever linhas de expressão matemática, Matlab disponibiliza bloco de

Funções Matemáticas v Para facilmente escrever linhas de expressão matemática, Matlab disponibiliza bloco de códigos que realizam tarefas específicas. v Contém funções padrão 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, também está incorporado em Matlab. v Encontra-se todas as funções matemáticas elementares listadas através do comando: >> help elfun

Implementação de Funções >> x=4; y=3; >> t=(2*x^2 -5*y)/(sqrt(2*y^(3 -x)+17)) t= 4. 0446 >>

Implementação de Funções >> x=4; y=3; >> t=(2*x^2 -5*y)/(sqrt(2*y^(3 -x)+17)) t= 4. 0446 >> w=(5*x+3 -x^3 -y^3)/(2*y-x-4*y^2) w= 2 >> q=(sin(w)^3 -t^4/10+tan(w))*(-sqrt(t*3+1))/12*w q= 17. 0289

Matrizes >> a = [1 2 3; 4 5 6; 7 8 9] >>

Matrizes >> a = [1 2 3; 4 5 6; 7 8 9] >> a 1 = [1 2 3 456 7 8 9] >> a 2 = [1 2 3, 4 5 6, 7 8 9] O cálculo de transpostas, inversas, determinantes, diagonais, covariâncias resume-se a comandos como: >> inv(x) >> b=[1 2 2; 3 2 4; 5 2 1]; >> d=[b, a] >> b=rand(6) >> var(b) >> cov(b) Sendo a matriz de variância diagonal da matriz de covância v Livro de algebra linear exercício v help matfun

Funções para Matrizes >> ones(3) matriz de uns >> zeros(5) matriz de zeros >>

Funções para Matrizes >> ones(3) matriz de uns >> zeros(5) matriz de zeros >> rand(3) matriz com elementos aleatórios distribuídos uniformemente >> randn(4) matriz com elementos aleatórios distribuídos normalmente >> eye(3) matriz identidade >> ones(3, 1, 2) matriz de uns com especificação da dimensão >> 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) em que o ultimo algarismo responde sobre a dimensão dois, a das colunas. Poderia ser 3, a das linhas. E 4, a das bandas. >>d=peaks(25);

Programação simples v Sistematização de terreno pelo ‘Método do Plano Único’ c =input('cotas das

Programação simples v Sistematização de terreno pelo ‘Método do Plano Único’ c =input('cotas das amostras ordenadas na sequencia da malha: ') %[10. 0000, 10. 2800, 10. 2000, 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 00, 10. %7500, 10. 7800]; a=size(c, 1); b=size(c, 2); N=a*b; Hc=(sum(c, 1)))/N; dif=c-Hc; inda=find(dif < 0); indc=find(dif > 0); dist=input('distancia entre pontos da malha: '); area=dist^2; volcorte= sum(dif(indc))*area; volaterro=sum(dif(inda))*area;

Comandos for-if-else-end-switch-caseotherwise-while A forma básica do comando for é: for índice = começa: incremento:

Comandos for-if-else-end-switch-caseotherwise-while A forma básica do comando for é: for índice = começa: incremento: para declarações 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 v Matlab tem quatro tipos de afirmações são if, else, end v

Estruturas if-else-end v Matlab tem quatro tipos de afirmações são if, else, end v Elas fazem o controle de fluxo baseadas no teste lógico. v Em sua forma básica: v If teste v declarações v End function retorno=posneg(ent) if all(ent>0) retorno=1; elseif all (ent<0) retorno=-1; else retorno=0; end v O teste é uma expressão em que há 1(verdadeiro) ou 0(falso) é executado entre o if e end e retorna se o teste der verdadeiro, quando falso são ignoradas as declarações. v Testes adicionais podem ser feitos usando elseif e else.

Estrutura switch, case, otherwise v A forma básica de parâmetros do switch e´: M-file

Estrutura switch, case, otherwise v A forma básica de parâmetros do switch e´: M-file switchx. m v v v v v switch x case 1 disp('x is 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 switch teste case resultado 1 declaração case resultado 2 declaração. . . otherwise declaração end v A expressão em switch case só pode ser um escalar ou uma string. >> x=5; Pressione o botão run: >> x is 5

While l l l while teste declaração end n = 1; while sum(1: n)<=1000

While l l l while teste declaração end n = 1; while sum(1: n)<=1000 n = n+1; end v As declarações são executadas repetidamente enquanto o valor de teste for igual a 1, por exemplo, achar o primeiro inteiro n para qual 1+2+· · ·+n é maior que 1000:

Área de um Polígono com While mat=input('matriz de coordenadas x e y dos pontos

Área de um Polígono 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); n=1; soma=0; while n<a; mult=x(n, 1)*y(n+1, 1); soma=soma+mult; n=n+1; end m=1; soma 2=0; while m<a; mult 2=x(m+1, 1)*y(m, 1); soma 2=soma 2+mult 2; m=m+1; end area=abs((soma-soma 2)/2)

Plotagem de Gráficos l O comando axis ajusta a escala do gráfico às coordenadas

Plotagem de Gráficos l O comando axis ajusta a escala do gráfico às coordenadas dos pontos plotados. l Sintaxe: axis([xmin xmax ymin ymax]) >> x 1=-1; y 1=-1; x 2=1; y 2=-1; x 3=-1; y 3=1; x 4=1; y 4=1; >> plot(x 1, y 1, 'o', x 2, y 2, 'o', x 3, y 3, 'o', x 4, y 4, 'o') >> axis([-2 2]) >> axis square %forma quadrada >> axis normal ou >> x=[-1 1] ; y=[-1; 1; 1] ; plot(x, y, '. r'); axis([-2 2]) v subplot trabalha com multiplicidade de gráficos v renda= [3. 2 4. 1 5. 0 5. 6]; v gastos= [2. 5 4. 0 3. 35 4. 9]; v subplot(2, 1, 1); plot(renda) v subplot(2, 1, 2); plot(gastos)

Comando subplot >> t = 0: . 1: 2*pi; subplot(2, 2, 1) plot(cos(t), sin(t))

Comando subplot >> t = 0: . 1: 2*pi; subplot(2, 2, 1) plot(cos(t), sin(t)) subplot(2, 2, 2) plot(cos(t), sin(2*t)) subplot(2, 2, 3) plot(cos(t), sin(3*t)) subplot(2, 2, 4) plot(cos(t), sin(4*t)) v Sendo o primeiro índice o número de eixos na vertical, o segundo número de eixos na horizontal e o último o número de ordem ou posição. subplot 221 plot(1: 10) subplot 222 plot(0, ’*’) subplot 212 plot([1 0 1 0])

Propriedades de Gráficos l Para colocar rótulos em gráficos pode-se usar a função xlabel,

Propriedades de Gráficos l Para colocar rótulos em gráficos pode-se usar a função xlabel, ylabel, and title >> xlabel(‘eixo x'); ylabel(‘eixo y'); title(‘pontos no plano') l Inserir texto em ponto de sua escolha no gráfico >>gtext('P 1'); gtext('P 2'); gtext('P 3'); gtext('P 4') v Em help plot visualiza-se as especificações das características do gráfico >> 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]) l Pode-se especificar o estilo de linha, o símbolo que marca o ponto e cor do gráfico ainda pelo prompt. >> x=[4 5 6; 1 2 3]; y=(x. ^2) >> plot(x, y, '-. or') >> plot(x, y, '-hk')

Propriedades de Gráficos >> t = 0: . 1: 2*pi; plot(t, sin(t), t, sin(1.

Propriedades de Gráficos >> 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: 10*dt; x = cos(t); y = sin(t); plot(x, y) axis equal off for i = 1: 10 text(x(i), y(i), int 2 str(i)) end

Comando plot 3 v Matlab apresenta um gráfico tridimensional com plot 3: v >>

Comando plot 3 v Matlab apresenta um gráfico tridimensional com plot 3: v >> x 1=3; y 1=4; z 1=5; v >> plot 3(x 1, y 1, z 1, '*') >> th=[0: . 01: 2]*2*pi; x=cos(th); y=sin(th); z=th; plot 3(x, y, z)

Representações em coordenadas polares >> th=0: 2*pi/100: 2*pi; rho=3*th; polar(th, rho)

Representações em coordenadas polares >> th=0: 2*pi/100: 2*pi; rho=3*th; polar(th, rho)

Arquivos, extensões e rotinas v As rotinas para automação de atividades também são gravados

Arquivos, extensões e rotinas v As rotinas para automação de atividades também são gravados em arquivos de extensão. m e carregados sempre que necessário; v File>New>M-File Copiar as linhas de programação com sintaxe correta e salvar; v File>Open>(escolha) Desde que o arquivo esteja no diretório corrente; v Botão para compilação ou prompt digitando o nome do arquivo. v As variáveis de trabalho podem ser armazenadas em arquivos de extensão. mat através do menu File> Save Workspace As. . . E carregadas da mesma maneira que um M_File. clear, clf >>x 1=1; y 1=. 5; x 2=2; y 2=1. 5; x 3=3; y 3=2; >>plot(x 1, y 1, 'o', x 2, y 2, '+', x 3, y 3, '*') >>axis([0 4 0 4]) >>xlabel('xaxis') >>ylabel('yaxis') >>title('3 points in a plane')

Criação de uma nova função l É necessário criar um arquivo. m denominado da

Criação de uma nova função l É necessário criar um arquivo. m denominado da mesma forma que a função; l Em sua primeira linha escreve-se o comando function e segue a descrição dos parâmetros da nova função. v Para a amostragem geométrica da função em seu domínio usa-se o comando fplot delimitando os intervalos >> fplot ('andre', [-2, 7])

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

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

Tipos de representações z = 3*(1 -x). ^2. *exp(-(x. ^2) - (y+1). ^2). .

Tipos de representações z = 3*(1 -x). ^2. *exp(-(x. ^2) - (y+1). ^2). . . - 10*(x/5 - x. ^3 - y. ^5). *exp(-x. ^2 -y. ^2). . . - 1/3*exp(-(x+1). ^2 - y. ^2); plot(z) [x, y, z] = peaks; colormap(gray) mesh(x, y, z)

Outros tipos de representações >> surf(x, y, z) >> shading flat >> surfl(x, y,

Outros tipos de representações >> surf(x, y, z) >> shading flat >> surfl(x, y, z) >> shading flat >> contour(x, y, z) >> imagesc(z) >> axis xy

Outros tipos de representações >> surfc(x, y, z) >> contourf(x, y, z)

Outros tipos de representações >> surfc(x, y, z) >> contourf(x, y, z)

Mapa de Cores v Pode-se usar ‘colormap’ predefinido ou criar seu próprio colormap; v

Mapa de Cores v Pode-se usar ‘colormap’ predefinido ou criar seu próprio colormap; v Matlab usa matrizes para aplicar cores em mapas, imagens e superfícies. v Colormap predefinido hsv hot gray bone copper pink white flag lines colorcube jet prism cool autumn spring winter summer >> colormap (‘hot’) >> colormap ([. 5. 5. 5]) >> gray(8) v Colormap especificado Red Green Blue Colour 0 0 0 Black 1 1 1 White 1 0 0 Red 0 1 0 Green 0 0 1 Blue 1 1 0 Yellow 1 0 1 Magenta 0 1 1 Cyan . 5 . 5 Gray . 5 0 0 Dark red 1 . 62 . 4 Dark orange . 49 1 . 83 Aquamarine . 95 . 9 . 8 Parchment

Formatos suportados para arquivos de dados Data Formats Command Returns MAT - MATLAB workspace

Formatos suportados para arquivos de dados Data Formats Command Returns MAT - MATLAB workspace LOAD Variables in file CSV - Comma separated numbers CSVREAD Double array TXT – Formatted data in a text file TEXTREAD Double array DAT - Formatted text IMPORTDATA Double array DLM - Delimited text DLMREAD Double array TAB - Tab separated text DLMREAD Double array Spreadsheet Formats Command Returns XLS - Excel worksheet XLSREAD Double array and cell array WK 1 - Lotus 123 worksheet WK 1 READ Double array and cell array Scientific Data Formats Command Returns CDF - Common Data Format CDFREAD Cell array of CDF records FITS - Flexible Image Transport System FITSREAD Primary or extension table data HDF - Hierarchical Data Format HDFREAD HDF or HDF-EOS data set

Formatos suportados para arquivos de imagem, áudio e filme Image Formats Command Returns TIFF

Formatos suportados para arquivos de imagem, áudio e filme Image Formats Command Returns TIFF – Tagged image format IMREAD Truecolor, grayscale or indexed image(s) PNG – Portable network graphics IMREAD Truecolor, grayscale or indexed image HDF – Hierarchial data format IMREAD Truecolor or indexed image(s) BMP – Windows bitmap IMREAD Truecolor or indexed image Audio Formats Command Returns AU – Next/Sun Sound AUREAD Sound data and sample rate SND – Next/Sun Sound AUREAD Sound data and sample rate WAV – Microsoft Wave Sound WAVREAD Sound data and sample rate Movie Formats Command Returns AVI - Movie AVIREAD MATLAB movie