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. [email protected]
Joseph Kalil Khoury Junior, Prof. UFRRJ-IT/DE. [email protected]
Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. [email protected]
Conteúdo


















Introdução
Principais Recursos do Programa
Janela Principal do Programa
Principais Sub-janelas do Programa
Manipulação de Matrizes
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



O programa computacional MATLAB é um ambiente
de computação técnico-científica para o
desenvolvimento de sistemas sofisticados (
MATSUMOTO, 2002);
É extensivamente usado para exploração, análise e
resolução de problemas em diversas áreas do
conhecimento;
Apresenta diversos pacotes de ferramentas ‘toolbox’
que são um conjunto de algoritmos especialmente
desenvolvidos para aplicações específicas.
Principais Recursos do Programa







Linguagem de alto-nível para computação técnica
Ambiente de desenvolvimento e administração de código,
arquivos, e dados
Ferramentas interativas para exploração, desígnio e resolução
de problemas
Funções matemáticas para álgebra linear, estatísticas, análise
de Fourier, filtragem, otimização, e integração numérica
Funções para visualizar dados de gráficos 2-D e 3-D
Ferramentas para construção de interfaces com usuário
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
clc – limpa tela
whos – exibe variáveis
memória
clear – limpa varáveis memória
Principais Sub-janelas do Programa
Janela de comando
Workspace
Comand Window
Manipulação Matrizes
 Comando xlsread(‘*.xls)
carrega o arquivo Excel;
 Quantidades de cada
item determinadas em
uma matriz;
 Valores de brix
Matrizes e gráficos
>> plot(x,y,'r.')
Gráficos para análise de dados
>> plot(revendedor,grafico(:,2))
>> plot(revendedor,grafico(:,3))
>> plot(revendedor,grafico(:,4))
Janelas e Ferramentas
 Carregando variável salva para ser
usada em outro trabalho
 Escolha de diretório;
 Utilização de ferramenta de
busca para opção de
comando;
 Leitura de imagem em
formato .JPG
 Salvar a variável em arquivo
.m que consta em
workspace .
 Amostragem para análise
da composição da imagem.
Comandos de alto nível
 O comando figure é um
suporte sempre
necessário quando
deseja-se amostrar
imagens. É designado
através da interface
programa-usuário
 As linhas de programação ficam gravadas em
arquivos M-file ou arquivos de extensão .m
Operações com Vetores
Criação
>>t=[0 2 4 6 8 10 12 14 16 18 20]
Ou
>>t1= 0:2:20
>> h=1:3:32
>> 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
Manipulação
>> h1=h+2
>> v=t+h
>> t1=t*5
>> b=t*h‘
>> b1=t.*h
>> b2=t/h
Funções Matemáticas
 Para facilmente escrever linhas de expressão matemática, Matlab
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.
Constantes geralmente usadas como pi, e i ou j para a raiz quadrada de -1,
também está incorporado em Matlab.
 Encontra-se todas as funções matemáticas elementares
listadas através do comando: >> help elfun
x3
y4
w  5x  3  x3  y3 2 y  x  4 y 2
q
2
2
x
 5y
t
(sin w3  t 4 10  tan w)( 3t  1)
2 y3x  17
12w
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]
>> a1 = [1 2 3
456
7 8 9]
>> a2 = [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
 Livro de algebra linear exercício
 help matfun
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
 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.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
00,10.
%7500,10.7800];
a=size(c,1);b=size(c,2);
N=a*b;
Hc=(sum(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:para
declarações
end
%Exemplo_for.m
for i = 1:1:10
A(i) = 1/(i+1);
end
Estruturas if-else-end
Exemplo
if I == J
A(I,J) = 2;
elseif abs(I-J) == 1
A(I,J) = -1;
else
A(I,J) = 0;
end
%Exemplo_if.m
for i = 1:1:10
A(i) = 1/(i+1);
if i == 3
A(i) = -1;
elseif abs(i) == 1
A(i) = -1;
else
A(i) = 0;
end
end
Estrutura switch, case, otherwise
 A forma básica de parâmetros do
switch e´:









switch teste
case resultado1
declaração
case resultado2
declaração
...
otherwise
declaração
end
 A expressão em switch case só pode
ser um escalar ou uma string.
M-file switchx.m
%switch.m
switch x
case 1
disp('x is 1');
end
>> x=1;
Pressione o botão run:
>> x is 1
While



while teste
declaração
end
n = 1;
while sum(1:n)<=1000
n = n+1;
end
 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 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;
soma2=0;
while m<a;
mult2=x(m+1,1)*y(m,1);
soma2=soma2+mult2;
m=m+1;
end
area=abs((soma-soma2)/2)
Plotagem de Gráficos


O comando axis ajusta a escala do gráfico às coordenadas
dos pontos plotados.
Sintaxe: axis([xmin xmax ymin ymax])
>> x1=-1;y1=-1;x2=1;y2=-1;x3=-1;y3=1;x4=1;y4=1;
>> plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o')
>> axis([-2 2 -2 2])
>> 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])
 subplot trabalha com multiplicidade de
gráficos
 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
))
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))

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


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')
Inserir texto em ponto de sua escolha no gráfico
>>gtext('P1');gtext('P2');gtext('P3');gtext('P4')
 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])
 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.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 gráfico
tridimensional com plot3:
>> x1=3; y1=4; z1=5;
>> plot3(x1,y1,z1,'*')
>> th=[0:.01:2]*2*pi;
x=cos(th);
y=sin(th);
z=th;
plot3(x,y,z)
Representações em coordenadas polares
>> th=0:2*pi/100:2*pi;
rho=3*th;
polar(th,rho)
Arquivos, extensões e rotinas
 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.
 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
>>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')
Criação de uma nova função


É necessário criar um arquivo .m denominado da mesma
forma que a função;
Em sua primeira linha escreve-se o comando function e
segue a descrição dos parâmetros da nova função.
 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.^2);
>> mesh(x,y,z)
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,z)
>> shading flat
>> contour(x,y,z)
>> imagesc(z)
>> axis xy
Outros tipos de representações
>> surfc(x,y,z)
>> contourf(x,y,z)
Mapa de Cores
 Pode-se usar ‘colormap’ predefinido ou criar seu próprio colormap;
 Matlab usa matrizes para aplicar cores em mapas, imagens e
superfícies.
 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)
 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
.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
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
WK1 - Lotus 123 worksheet
WK1READ
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 – 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
Download

Trabalhando com Matrizes