Sie sind auf Seite 1von 37

UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO

IT – Departamento de Engenharia
ÁREA DE MECANIZAÇÃO AGRÍCOLA

CURSO BÁSICO DE MATLAB


Ambiente de computação para desenvolvimento de sistemas sofisticados

Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br


Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. keillambidao@ig.com.br
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
Gráficos para análise de dados
Janelas e Ferramentas
Carregando algoritmo prático
Operações com Vetores
Funções Matemáticas
Matrizes
Comando for
Estrutura switch, case, otherwise
While
Plotagem
Representações em coordenadas polares
Arquivos, extensões e rotinas
Criação de uma nova função
Gráficos tridimensionais
Cores de Mapas
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
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
Revendedor 16200 17900 47500
determinadas em uma
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 eventual outro trabalho
Carregando algoritmo prático
O comando figure é um
suporte sempre
necessário quando
deseja-se amostrar
imagem. É 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 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‘
>> h=1:3:32 >> b1=t.*h
>> 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  y 3 2 y  x  4 y 2
(sin w3  t 4 10  tan w)(  3t  1)
q
12w

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;
Comando for
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
while teste
n = 1;
declaração
while sum(1:n)<=1000
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
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 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
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.

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.

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) ... [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)
Cores de Mapas
Pode-se criar seu próprio traço ou usar qualquer mapa de cores
predefinidas disponíveis

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
0 1 1 Cyan
>> gray(8) .5 .5 .5 Gray
.5 0 0 Dark red

1 .62 .4 Dark orange


Colormap. Matlab usa matrizes para
aplicar cores em mapas imagens e .49 1 .83 Aquamarine
superfícies tendo elas as .95 .9 .8 Parchment
especificações:
Alguns comandos do MATLAB
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


Alguns comandos do MATLAB

Image Formats Command Returns


Truecolor, grayscale or indexed
TIFF – Tagged image format IMREAD image(s)
Truecolor, grayscale or indexed
PNG – Portable network graphics IMREAD 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