CURSO BÁSICO DE MATLAB CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected][email protected]Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. [email protected][email protected]UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT – Departamento de Engenharia IT – Departamento de Engenharia ÁREA DE MECANIZAÇÃO AGRÍCOLA ÁREA DE MECANIZAÇÃO AGRÍCOLA Ambiente de computação para desenvolvimento de sistemas sofisticados
37
Embed
CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected][email protected] Keilla Boehler, Aluna do Curso de Engenharia.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CURSO BÁSICO DE MATLABCURSO BÁSICO DE MATLAB
Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected]@ufrrj.brKeilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. [email protected]@ig.com.br
UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIROUNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIROIT – Departamento de EngenhariaIT – Departamento de Engenharia
ÁREA DE MECANIZAÇÃO AGRÍCOLAÁREA DE MECANIZAÇÃO AGRÍCOLA
Ambiente de computação para desenvolvimento de sistemas sofisticados
ConteúdoConteúdoIntroduçãoIntroduçãoPrincipais Recursos do ProgramaPrincipais Recursos do ProgramaJanela Principal do ProgramaJanela Principal do ProgramaPrincipais Sub-janelas do ProgramaPrincipais Sub-janelas do ProgramaManipulação de MatrizesManipulação de MatrizesMatrizes e gráficos para análise de dadosMatrizes e gráficos para análise de dadosGráficos para análise de dadosGráficos para análise de dadosJanelas e FerramentasJanelas e FerramentasCarregando algoritmo práticoCarregando algoritmo práticoOperações com VetoresOperações com VetoresFunções MatemáticasFunções MatemáticasMatrizesMatrizesComando forComando forEstrutura switch, case, otherwiseEstrutura switch, case, otherwiseWhileWhilePlotagemPlotagemRepresentações em coordenadas polaresRepresentações em coordenadas polaresArquivos, extensões e rotinasArquivos, extensões e rotinasCriação de uma nova funçãoCriação de uma nova funçãoGráficos tridimensionaisGráficos tridimensionaisCores de MapasCores de Mapas
IntroduçãoIntrodução
O programa computacional MATLAB é um ambiente de computação O programa computacional MATLAB é um ambiente de computação técnico-científica para o desenvolvimento de sistemas sofisticados técnico-científica para o desenvolvimento de sistemas sofisticados ( MATSUMOTO, 2002); ( MATSUMOTO, 2002);
É extensivamente usado para exploração, análise e resolução de É extensivamente usado para exploração, análise e resolução de problemas em diversas áreas do conhecimento;problemas em diversas áreas do conhecimento;
Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um conjunto de algoritmos especialmente desenvolvidos para conjunto de algoritmos especialmente desenvolvidos para aplicações específicas.aplicações específicas.
Principais Recursos do ProgramaPrincipais Recursos do Programa
Linguagem de alto-nível para computação técnicaLinguagem de alto-nível para computação técnicaAmbiente de desenvolvimento e administração de código, arquivos, e Ambiente de desenvolvimento e administração de código, arquivos, e dados dados Ferramentas interativas para exploração, desígnio e resolução de Ferramentas interativas para exploração, desígnio e resolução de problemas problemas Funções matemáticas para álgebra linear, estatísticas, análise de Funções matemáticas para álgebra linear, estatísticas, análise de Fourier, filtragem, otimização, e integração numérica Fourier, filtragem, otimização, e integração numérica Funções para visualizar dados de gráficos 2-D e 3-D Funções para visualizar dados de gráficos 2-D e 3-D Ferramentas para construção de interfaces com usuário Ferramentas para construção de interfaces com usuário Funções que integram MATLAB funcionam como base de algoritmos Funções que integram MATLAB funcionam como base de algoritmos com aplicações externas e idiomas, como C, C++, Fortran, Java, COM, com aplicações externas e idiomas, como C, C++, Fortran, Java, COM, e Microsoft Excel, e Microsoft Excel,
Janela Principal do ProgramaJanela Principal do Programa
Principais Sub-janelas do ProgramaPrincipais Sub-janelas do Programa
Janela de comandoJanela de comando WorkspaceWorkspace
Comando XLSREAD(‘*.xls) Comando XLSREAD(‘*.xls) carrega o arquivo que carrega o arquivo que contém os valores;contém os valores;
Quantidades de cada item Quantidades de cada item determinadas em uma determinadas em uma matriz;matriz;
Multiplicando as matrizes Multiplicando as matrizes pode-se comparar os preços pode-se comparar os preços total ofertado no total por total ofertado no total por cada revendedor.cada revendedor.
Matrizes e gráficos para análise de dadosMatrizes e gráficos para análise de dados>> grafico=[precos,escolha]>> grafico=[precos,escolha]
As linhas de programação ficam gravadas em As linhas de programação ficam gravadas em arquivos M-file ou arquivos de extensão .m arquivos M-file ou arquivos de extensão .m
O comando figure é um O comando figure é um suporte sempre suporte sempre necessário quando necessário quando deseja-se amostrar deseja-se amostrar imagem. É designado imagem. É designado através da interface através da interface programa-usuárioprograma-usuário
Operações com VetoresOperações com VetoresCriaçãoCriação
Grand total is 22 elements using 176 bytesGrand total is 22 elements using 176 bytes
Funções MatemáticasFunções Matemáticas
17252
3
2
xyyxt
233 4235 yxyyxxw
Para facilmente escrever linhas de expressão matemática, Matlab Para facilmente escrever linhas de expressão matemática, Matlab disponibiliza bloco de códigos que realizam tarefas específicas.disponibiliza bloco de códigos que realizam tarefas específicas.
Contém funções padrão como sin, cos, tan, sec, exp, log, sqrt,sum, mean. 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, Constantes geralmente usadas como pi, e i ou j para a raiz quadrada de -1, também está incorporado em Matlab. também está incorporado em Matlab.
Encontra-se todas as funções matemáticas elementares Encontra-se todas as funções matemáticas elementares listadas através do comando: >> help elfunlistadas através do comando: >> help elfun
Livro de algebra linear exercícioLivro de algebra linear exercício
O cálculo de transpostas, O cálculo de transpostas, inversas, inversas, determinantes,diagonais, determinantes,diagonais, covariâncias resume-se a covariâncias resume-se a comandos como: comandos como:
>> inv(x)>> inv(x)
>> b=rand(6)>> b=rand(6)
>> var(b)>> var(b)
>> cov(b)>> cov(b)
Sendo a matriz de variância Sendo a matriz de variância diagonal da matriz de covânciadiagonal da matriz de covância
Funções para MatrizesFunções para Matrizes>> ones(3) matriz de uns>> ones(3) matriz de uns
>> zeros(5) matriz de zeros>> zeros(5) matriz de zeros
>> rand(3) matriz com elementos aleatórios distribuídos >> rand(3) matriz com elementos aleatórios distribuídos uniformementeuniformemente
>> randn(4) matriz com elementos aleatórios distribuídos normalmente>> randn(4) matriz com elementos aleatórios distribuídos normalmente
comando que concatena matrizes verticalmentecomando que concatena matrizes verticalmente
>> repmat(a,2,3)>> repmat(a,2,3)
>> m = size(rand(2,3,4),2) >> m = size(rand(2,3,4),2)
em que o ultimo algarismo responde sobre a dimensão dois, 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.a das colunas. Poderia ser 3, a das linhas. E 4, a das bandas.
>>d=peaks(25);>>d=peaks(25);
c =input('cotas das amostras ordenadas na sequencia da malha:')c =input('cotas das amostras ordenadas na sequencia da malha:')
Sistematização de terreno pelo ‘Método do Plano Único’Sistematização de terreno pelo ‘Método do Plano Único’
Programação simplesProgramação simples
Comando forComando for
>> for a=1:10>> for a=1:10
a<=3; C(a)=a^2;a<=3; C(a)=a^2;
a=3:7; C(a)=a+5;a=3:7; C(a)=a+5;
a=7:10; C(a)=a;a=7:10; C(a)=a;
endend
>> stem(C)>> stem(C)
A forma básica do comando for é:A forma básica do comando for é:
for índice = começa:incremento:parafor índice = começa:incremento:para
declaraçõesdeclarações
endend
>> for m=1:10>> for m=1:10
x(m)=m^2;x(m)=m^2;
end;end;
>> x(3)>> x(3)
ans =ans =
99
Estruturas if-else-endEstruturas if-else-end
Matlab tem quatro tipos de afirmações Matlab tem quatro tipos de afirmações são if, elseif, else,endsão if, elseif, else,end
Elas fazem o controle de fluxo baseadas Elas fazem o controle de fluxo baseadas no teste lógico.no teste lógico.
Em sua forma básica:Em sua forma básica:
If testeIf teste
declaraçõesdeclarações
EndEnd
function retorno=posneg(ent)function retorno=posneg(ent)
if all(ent>0)if all(ent>0)
retorno=1;retorno=1;
elseif all (ent<0)elseif all (ent<0)
retorno=-1;retorno=-1;
else else
retorno=0;retorno=0;
end end
O teste é uma expressão em que há 1(verdadeiro) ou 0(falso) é executado 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 entre o if e end e retorna se o teste der verdadeiro, quando falso são ignoradas as declarações.ignoradas as declarações.
Testes adicionais podem ser feitos usando elseif e else.Testes adicionais podem ser feitos usando elseif e else.
disp('x is not 1, 2, 3, 4 or 5');disp('x is not 1, 2, 3, 4 or 5');
endend
>> x=5;>> x=5;
Pressione o botão run:Pressione o botão run:
>> x is 5>> x is 5
M-file switchx.mM-file switchx.mA forma básica de parâmetros do A forma básica de parâmetros do switch e´: switch e´:
switch testeswitch teste
case resultado1case resultado1
declaraçãodeclaração
case resultado2case resultado2
declaraçãodeclaração
......
otherwiseotherwise
declaraçãodeclaração
endend
A expressão em switch case só pode A expressão em switch case só pode ser um escalar ou uma string.ser um escalar ou uma string.
WhileWhile
while testewhile teste
declaraçãodeclaração
endend
n = 1;n = 1;
while sum(1:n)<=1000while sum(1:n)<=1000
n = n+1;n = n+1;
endend
As declarações são executadas repetidamente enquanto o valor de 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 teste for igual a 1, por exemplo, achar o primeiro inteiro n para qual 1+2+· · ·+n é maior que 1000:1+2+· · ·+n é maior que 1000:
Área de um Polígono com WhileÁrea de um Polígono com Whilemat=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;endm=1;soma2=0;while m<a;mult2=x(m+1,1)*y(m,1);soma2=soma2+mult2;m=m+1;endarea=abs((soma-soma2)/2)
PlotagemPlotagem
O comando axis ajusta a escala do gráfico às coordenadas dos pontos O comando axis ajusta a escala do gráfico às coordenadas dos pontos plotados.plotados.
Sendo o primeiro índice o número de eixos na Sendo o primeiro índice o número de eixos na vertical, o segundo número de eixos na vertical, o segundo número de eixos na horizontal e o último o número de ordem ou horizontal e o último o número de ordem ou posição. posição.
subplot 221subplot 221
plot(1:10)plot(1:10)
subplot 222subplot 222
plot(0,’*’)plot(0,’*’)
subplot 212subplot 212
plot([1 0 1 0])plot([1 0 1 0])
Propriedades de Gráficos Propriedades de Gráficos Para colocar rótulos em gráficos pode-se usar a função xlabel, ylabel, Para colocar rótulos em gráficos pode-se usar a função xlabel, ylabel, and titleand title
>> xlabel(‘eixo x'); ylabel(‘eixo y'); title(‘pontos no plano')>> xlabel(‘eixo x'); ylabel(‘eixo y'); title(‘pontos no plano')
Inserir texto em ponto de sua escolha no gráfico Inserir texto em ponto de sua escolha no gráfico
Pode-se especificar o estilo de linha, o símbolo que marca o ponto e cor do Pode-se especificar o estilo de linha, o símbolo que marca o ponto e cor do gráfico ainda pelo prompt.gráfico ainda pelo prompt.
Matlab apresenta um gráfico Matlab apresenta um gráfico tridimensional com plot3:tridimensional com plot3:
>> x1=3; y1=4; z1=5;>> x1=3; y1=4; z1=5;
>> plot3(x1,y1,z1,'*')>> plot3(x1,y1,z1,'*')
>> th=[0:.01:2]*2*pi;>> th=[0:.01:2]*2*pi;
x=cos(th);x=cos(th);
y=sin(th);y=sin(th);
z=th;z=th;
plot3(x,y,z)plot3(x,y,z)
Representações em coordenadas polaresRepresentações em coordenadas polares
>> th=0:2*pi/100:2*pi;rho=3*th;polar(th,rho)
Arquivos, extensões e rotinasArquivos, extensões e rotinas
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])>>xlabel('xaxis')>>ylabel('yaxis')>>title('3points in a plane')
As rotinas para automação de atividades também são gravados em arquivos de extensão .m e carregados sempre que necessário;
File>New>M-File Copiar as linhas de programação com sintaxe correta e salvar;
File>Open>(escolha) Desde que o arquivo esteja no diretório corrente;
Botão para compilação ou prompt digitando o nome do arquivo.
Já 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.
Criação de uma nova funçãoCriação de uma nova função
É necessário criar um arquivo .m denominado da mesma forma É necessário criar um arquivo .m denominado da mesma forma que a função;que a função;
Em sua primeira linha escreve-se o comando function e segue a Em sua primeira linha escreve-se o comando function e segue a descrição dos parâmetros da nova função.descrição dos parâmetros da nova função.
Para a amostragem geométrica da função em seu domínio usa-se o Para a amostragem geométrica da função em seu domínio usa-se o comando fplot delimitando os intervaloscomando fplot delimitando os intervalos
Outros tipos de representaçõesOutros tipos de representações
>> contourf(x,y,z)
>> surfc(x,y,z)
Outros tipos de representaçõesOutros tipos de representações
Cores de MapasCores de MapasPode-se criar seu próprio traço ou usar qualquer mapa de cores Pode-se criar seu próprio traço ou usar qualquer mapa de cores predefinidas disponíveispredefinidas disponíveis
hsv hot gray bone copper pink white flag lines colorcube jet prism cool autumn spring winter summer
>> colormap (‘hot’)>> colormap ([.5 .5 .5])
Colormap. Matlab usa matrizes para Colormap. Matlab usa matrizes para aplicar cores em mapas imagens e aplicar cores em mapas imagens e superfícies tendo elas as superfícies tendo elas as especificações:especificações:
Red Red GreenGreen BlueBlue ColourColour
00 00 00 BlackBlack
11 11 11 WhiteWhite
11 00 00 RedRed
00 11 00 GreenGreen
00 00 11 BlueBlue
11 11 00 YellowYellow
11 00 11 MagentaMagenta
00 11 11 CyanCyan
.5.5 .5.5 .5.5 GrayGray
.5.5 00 00 Dark redDark red
11 .62.62 .4.4 Dark orangeDark orange
.49.49 11 .83.83 AquamarineAquamarine
.95.95 .9.9 .8.8 ParchmentParchment
>> gray(8)
Data FormatsData Formats CommandCommand ReturnsReturns
MAT - MATLAB workspaceMAT - MATLAB workspace LOADLOAD Variables in fileVariables in file
XLS - Excel worksheet XLS - Excel worksheet XLSREAD XLSREAD Double array and cell arrayDouble array and cell array
WK1 - Lotus 123 worksheet WK1 - Lotus 123 worksheet WK1READWK1READ Double array and cell arrayDouble array and cell array
Scientific Data Formats Scientific Data Formats Command Command ReturnsReturns
CDF - Common Data Format CDF - Common Data Format CDFREAD CDFREAD Cell array of CDF recordsCell array of CDF records
FITS - Flexible Image Transport SystemFITS - Flexible Image Transport System FITSREADFITSREAD Primary or extension table dataPrimary or extension table data
HDF - Hierarchical Data Format HDF - Hierarchical Data Format HDFREAD HDFREAD HDF or HDF-EOS data set HDF or HDF-EOS data set
Alguns comandos do MATLABAlguns comandos do MATLAB