Sie sind auf Seite 1von 37

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
z Introdução
z Principais Recursos do Programa
z Janela Principal do Programa
z Principais Sub-janelas do Programa
z Manipulação de Matrizes
z Matrizes e gráficos para análise de dados
z Janelas e Ferramentas
z Comandos de alto nível
z Operações com Vetores
z Funções Matemáticas
z Matrizes
z Comando for-switch-case-otherwise-while
z Plotagem de gráficos
z Representações em coordenadas polares
z Arquivos, extensões e rotinas
z Criação de uma nova função
z Gráficos tridimensionais
z Mapa de Cores
Introdução
z O programa computacional MATLAB é um ambiente de computação
técnico-científica para o desenvolvimento de sistemas sofisticados (
MATSUMOTO, 2002);
z É extensivamente usado para exploração, análise e resolução de
problemas em diversas áreas do conhecimento;
z Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um
conjunto de algoritmos especialmente desenvolvidos para
aplicações específicas.
Principais Recursos do Programa

z Linguagem de alto-nível para computação técnica


z Ambiente de desenvolvimento e administração de código, arquivos, e
dados
z Ferramentas interativas para exploração, desígnio e resolução de
problemas
z Funções matemáticas para álgebra linear, estatísticas, análise de
Fourier, filtragem, otimização, e integração numérica
z Funções para visualizar dados de gráficos 2-D e 3-D
z Ferramentas para construção de interfaces com usuário
z 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
Principais Sub-janelas do Programa
Janela de comando Workspace

Comand Window
Manipulação de Matrizes
™ Comando XLSREAD(‘*.xls) Revendedor Automóvel Caminhonete Caminhão
carrega o arquivo que
contém os valores; Revendedor 15400 18200 46200
A
™ Quantidades de cada item
determinadas em uma Revendedor 16200 17900 47500
B
matriz;
Revendedor 15150 19000 48000
™ Multiplicando as matrizes C
pode-se comparar os preços
total ofertado no total por
cada revendedor. >> escolha=precos*quantidade
>> precos= XLSREAD('exemplo
novo.xls'); escolha =
>> precos >> quantidade=[3;1;2]
156800
precos = quantidade = 161500
160450
15400 18200 46200 3
16200 17900 47500 1
15150 19000 48000 2
Matrizes e gráficos para análise de dados
>> grafico=[precos,escolha]

grafico =

15400 18200 46200 156800


16200 17900 47500 161500
15150 19000 48000 160450
>> revendedor=[1 2 3];

>> bar(grafico) >> plot(revendedor,grafico(:,1))


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

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

>> plot(revendedor,grafico(:,4))
Janelas e Ferramentas ™ 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.

™ Carregando variável salva para ser


usada em outro trabalho
Comandos de alto nível
w O comando figure é um
suporte sempre
necessário quando
deseja-se amostrar
imagens. É designado
através da interface
programa-usuário

w As linhas de programação ficam gravadas em


arquivos M-file ou arquivos de extensão .m
Operações com Vetores
Criação Manipulação
>> h1=h+2
>>t=[0 2 4 6 8 10 12 14 16 18 20]
>> v=t+h
Ou >> t1=t*5
>>t1= 0:2:20 >> b=t*h‘
>> b1=t.*h
>> h=1:3:32
>> b2=t/h

>> who

Your variables are:

h t

>> whos
Name Size Bytes Class

h 1x11 88 double array


t 1x11 88 double array

Grand total is 22 elements using 176 bytes


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
(sin w3 − t 4 10 + tan w)(− 3t + 1)
q=
12 w

t= 2 x 2
− 5y
2 y 3+x + 17
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] >> b=[1 2 2;3 2 4; 5 2 1];
>> a1 = [1 2 3 >> d=[b,a]
456
7 8 9]
>> a2 = [1 2 3,4 5 6,7 8 9] >> b=rand(6)
>> var(b)
>> cov(b)
O cálculo de transpostas,
Sendo a matriz de variância
inversas,
diagonal da matriz de
determinantes,diagonais,
covância
covariâncias resume-se a
comandos como:
>> inv(x)
™ 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-case-
otherwise-while
A forma básica do comando for é: >> for a=1:10
a<=3; C(a)=a^2;
for índice = começa:incremento:para a=3:7; C(a)=a+5;
declarações a=7:10; C(a)=a;
end end
>> stem(C)
>> for m=1:10
x(m)=m^2;
end;
>> x(3)

ans =

9
Estruturas if-else-end
™ Matlab tem quatro tipos de afirmações function retorno=posneg(ent)
são if, elseif, else,end if all(ent>0)
™ Elas fazem o controle de fluxo baseadas retorno=1;
no teste lógico. elseif all (ent<0)
™ Em sua forma básica: retorno=-1;
™ If teste else
™ declarações retorno=0;
™ End end

™ 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.
™ Testes adicionais podem ser feitos usando elseif e else.
Estrutura switch, case, otherwise
™ A forma básica de parâmetros do
M-file switchx.m
switch e´:
switch x
™ switch teste
case 1
™ case resultado1
disp('x is 1');
™ declaração
case {2,3,4}
™ case resultado2
disp('x is 2, 3 or 4');
™ declaração
case 5
™ ...
disp('x is 5');
™ otherwise
otherwise
™ declaração
disp('x is not 1, 2, 3, 4 or 5');
™ end
end

™ A expressão em switch case só pode >> x=5;


ser um escalar ou uma string. Pressione o botão run:
>> x is 5
While
z while teste
n = 1;
z declaração
while sum(1:n)<=1000
z end
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
z O comando axis ajusta a escala do gráfico às coordenadas dos pontos
plotados.
z 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 221
subplot(2,2,1)
plot(1:10)
plot(cos(t),sin(t))
subplot 222
subplot(2,2,2)
plot(0,’*’)
plot(cos(t),sin(2*t))
subplot 212
subplot(2,2,3)
plot([1 0 1 0])
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.
Propriedades de Gráficos
z 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')
z 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])
z 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
z É necessário criar um arquivo .m denominado da mesma forma
que a função;
z 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) ... [x,y,z] = peaks;


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

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

>> imagesc(z)
>> contour(x,y,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 ™ Colormap especificado


hsv hot gray bone copper pink Red Green Blue Colour
white flag lines colorcube jet 0 0 0 Black
prism cool autumn spring winter 1 1 1 White
summer
1 0 0 Red
0 1 0 Green
>> colormap (‘hot’) 0 0 1 Blue
>> colormap ([.5 .5 .5]) 1 1 0 Yellow
1 0 1 Magenta
>> gray(8) 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

Das könnte Ihnen auch gefallen