Você está na página 1de 37

UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO

IT Departamento de Engenharia
REA DE MECANIZAO AGRCOLA

CURSO BSICO DE MATLAB


A bi t de
Ambiente
d computao
t para desenvolvimento
d
l i
t de
d sistemas
it
sofisticados
fi ti d

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


Keilla Boehler, Aluna do Curso de Engenharia Agrcola, UFRRJ. keillambidao@ig.com.br

Sair

Contedo
Introduo
Introd
o
Principais Recursos do Programa
Janela Principal do Programa
Principais Sub
Sub--janelas do Programa
Manipulao de Matrizes
Matrizes e grficos para anlise de dados
Grficos para anlise de dados
Janelas e Ferramentas
Carregando algoritmo prtico
Operaes com Vetores
Funes Matemticas
Matrizes
Comando for
Estrutura switch, case, otherwise
While
Plotagem
Representaes em coordenadas polares
Arquivos, extenses e rotinas
Criao de uma nova funo
Grficos tridimensionais
Cores de Mapas

Introduo
O programa computacional MATLAB um ambiente de computao
tcnico--cientfica para o desenvolvimento de sistemas sofisticados (
tcnico
MATSUMOTO, 2002);
extensivamente usado para explorao, anlise e resoluo de
problemas em diversas reas do conhecimento;
Apresenta diversos pacotes de ferramentas toolbox
toolbox que so um
conjunto de algoritmos especialmente desenvolvidos para
aplicaes especficas.

Principais
p
Recursos do Programa
g
Linguagem de alto
alto--nvel para computao tcnica
Ambiente de desenvolvimento e administrao de cdigo, arquivos, e
dados
Ferramentas interativas para explorao, desgnio e resoluo de
problemas
Funes matemticas para lgebra linear, estatsticas, anlise de
Fourier, filtragem, otimizao, e integrao numrica
Funes para visualizar dados de grficos 22 -D e 3
3--D
Ferramentas para construo de interfaces com usurio
Funes que integram MATLAB funcionam como base de algoritmos
com aplicaes externas e idiomas, como C, C++, Fortran, Java, COM,
e Microsoft Excel
Excel,

Janela Principal do Programa

Principais SubSub-janelas do Programa


Janela de comando

Workspace

Comand Window

Manipulao de Matrizes
Comando XLSREAD(*.xls)
carrega o arquivo que
contm os valores;
Quantidades de cada item
determinadas em uma
matriz;
Multiplicando as matrizes
pode--se comparar os preos
pode
total ofertado no total por
cada revendedor.
>> precos= XLSREAD('exemplo
novo
novo.xls
xls');
);
>> precos

Automvel

Caminhonete

Caminho

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

Revendedor

18200
17900
19000

46200
47500
48000

3
1
2

156800
161500
160450

Matrizes e grficos para anlise de dados


>> grafico=[precos,escolha]
grafico =
15400
16200
15150

18200
17900
19000

>> bar(grafico)

46200
47500
48000

156800
161500
160450

>> revendedor=[1
[ 2 3];
];

>> p
plot(revendedor,grafico(:,1))
(
,g
( , ))

Grficos para anlise de dados


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

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

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

Janelas e Ferramentas

Carregando varivel salva para ser


usada em outro trabalho

Escolha de diretrio;
Utili ao de ferramenta de
Utilizao
busca para opo de
comando;
L it
Leitura
d
de iimagem em
formato .JPG
Salvar a varivel em arquivo
.m que consta em
workspace .
Amostragem para anlise
da composio da imagem.

Carregando algoritmo prtico


O comando figure um
suporte sempre
necessrio
i quando
d
deseja--se amostrar
deseja
imagem. designado
atra s da interface
atravs
programa--usurio
programa

As linhas de programao ficam gravadas em


arquivos MM-file ou arquivos de extenso .m

Operaes com Vetores


Criao
>>t=[0
>>t
=[0 2 4 6 8 10 12 14 16 18 20]
O
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

Manipulao
>> h1=h+2
>> v=t+h
>> t1=t*5
>> b=t*h
>> b1=t.*h
>> b2=t/h
b2 t/h

Funes Matemticas
Para facilmente escrever linhas de expresso matemtica, Matlab
disponibiliza bloco de cdigos que realizam tarefas especficas.
Contm funes padro 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,
tambm est incorporado em Matlab.
Encontra-se todas as funes matemticas elementares
Encontralistadas atravs do comando: >> help elfun

x=3

y=4

w = 5x + 3 x3 y3 2 y x 4 y 2
q=
2
x
5y
2
t=

(sin w3 t 4 10 + tan w)( 3t + 1)

2 y 3+x + 17

12w

Implementao de Funes
>> x=4; y=3;
>> t=(2*x^2t=(2*x^2-5*y)/(sqrt(2*y^(3
5*y)/(sqrt(2*y^(3--x)+17))
t=
4.0446
>> w=(5*x+3
w=(5*x+3--x^3x^3-y^3)/(2*y
y^3)/(2*y--x-4*y^2)
w=
2
>> q=(sin(w)^3q=(sin(w)^3-t^4/10+tan(w))*(
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
3,4
456
6,7
7 8 9]

O clculo de transpostas
transpostas,
inversas,
determinantes,diagonais,
resume-se a
covarincias resumecomandos como:
>> inv(x)

>> b=[1 2 2;3 2 4; 5 2 1];


>> d=[b,a]

>> b
b=rand(6)
rand(6)
>> var(b)
>> cov(b)
Sendo a matriz de varincia
diagonal da matriz de
covncia

Li
Livro
d
de algebra
l b lilinear exerccio
i

h l matfun
help
tf

Funes para Matrizes


>> ones(3)
matriz de uns
>> zeros(5)
matriz de zeros
>> rand(3)
matriz com elementos aleatrios distribudos
uniformemente
>> randn(4)
matriz com elementos aleatrios distribudos normalmente
>> eye(3)
(3)
matriz
t i identidade
id tid d
>> ones(3,1,2)
matriz de uns com especificao da dimenso
>> 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)
size(rand(2 3 4) 2)
em que o ultimo algarismo responde sobre a dimenso dois,
a das colunas. Poderia ser 3, a das linhas. E 4, a das bandas.
>>d
>>d=peaks(25);
k (25)

Programao simples
Sistematizao de terreno pelo Mtodo do Plano nico
c =input('cotas
input( cotas das amostras ordenadas na sequencia da malha:')
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
%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;
dif=c
inda=find(dif < 0);indc=find(dif > 0);
dist inp t('distancia entre pontos da malha:');
dist=input('distancia
malha ')
area=dist^2;
volcorte= sum(dif(indc))*area;
volaterro=sum(dif(inda))*area;

Comando for
A forma bsica do comando for :
for ndice = comea:incremento:para
declaraes
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 ifif-elseelse-end
Matlab tem quatro tipos de afirmaes
so if, elseif, else,end
Elas fazem o controle de fluxo baseadas
no teste lgico.
Em sua forma bsica:
If teste
declaraes
E d
End

function retorno=posneg(ent)
if all(ent>0)
all(ent 0)
retorno=1;
elseif all (ent<0)
retorno=retorno=
t
-1;
1
else
retorno=0;
end

O teste uma expresso em que h 1(verdadeiro) ou 0(falso) executado


entre o if e end e retorna se o teste der verdadeiro, quando falso so
ignoradas as declaraes.
Testes adicionais podem ser feitos usando elseif e else.

Estrutura switch, case, otherwise


A forma bsica de parmetros do
switch e
e:

M-file switchx.m

switch teste
case resultado1
declarao
case resultado2
declarao
d l

...
otherwise
declarao
end

switch x
case 1
di (' iis 1')
disp('x
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

A expresso em switch case s pode


ser um escalar ou uma string
string.

>> x=5;
Pressione o boto run:
>> x is 5

While
while teste
declarao
end

n = 1;
while
hil sum(1:n)<=1000
(1 ) 1000
n = n+1;
end

As declaraes so executadas repetidamente enquanto o valor de


teste for igual a 1, por exemplo, achar o primeiro inteiro n para qual
1+2+ +n
1+2+
+n maior que 1000:

rea de um Polgono 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);
i ( 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;
soma2=0;
while m<a;
mult2=x(m+1,1)*y(m,1);
soma2 soma2 mult2;
soma2=soma2+mult2;
m=m+1;
end
area=abs((soma-soma2)/2)
((
) )

Plotagem
O comando axis ajusta a escala do grfico s coordenadas dos pontos
plotados.
Sintaxe: axis([xmin
([
xmax ymin
y
ymax])
y
])
>> x1=x1=-1;y1=
1;y1=--1;x2=1;y2=
1;x2=1;y2=--1;x3=
1;x3=--1;y3=1;x4=1;y4=1;
>> plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o')
>> axis([axis([
i ([-2 2 -2 2])
>> axis square %forma quadrada >> axis normal ou
>> x=[x=[-1 1 -1 1] ; y=[y=[-1; -1; 1; 1] ; plot(x,y,'.r');axis([
plot(x,y,'.r');axis([--2 2 -2 2])
subplot trabalha com multiplicidade de
grficos
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))
l t(
(t) i (t))
subplot(2,2,2)
plot(cos(t),sin(2*t))
s bplot(2 2 3)
subplot(2,2,3)
plot(cos(t),sin(3*t))
subplot(2,2,4)
plot(cos(t) sin(4*t))
plot(cos(t),sin(4
t))

Sendo o primeiro ndice o nmero de eixos na


vertical o segundo nmero de eixos na
vertical,
horizontal e o ltimo o nmero de ordem ou
posio.

subplot 221
plot(1:10)
subplot 222
plot(0,*)
subplot
p 212
plot([1 0 1 0])

Propriedades de Grficos
Para colocar rtulos em grficos podepode-se usar a funo xlabel, ylabel,
and title
>> xlabel(eixo
(
x');
); ylabel(eixo
y
(
y');
y ); title(pontos
(p
no plano')
p
)
Inserir texto em ponto de sua escolha no grfico
>>gtext('P1');gtext('P2');gtext('P3');gtext('P4')
Em help plot visualiza
visualiza--se as especificaes
das caractersticas do grfico
>> t = 0:.1:2*pi;
plot(t,sin(t),t,sin(1.05*t))
>> g
gtext('frequency
( q
y = 1');gtext('frequency
)g
( q
y
= 1.05');axis([0 max(t) -1 1])
Pode-se especificar o estilo de linha
Podelinha, o smbolo que marca o ponto e
cor do grfico ainda pelo prompt.
>> x=[4 5 6; 1 2 3]; y=(x.^2)
>> plot(x,y,'
plot(x,y,'l t( '-.or')
')
>> plot(x,y,'plot(x,y,'-hk')

Propriedades de Grficos

>> 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 grfico
tridimensional com plot3:
>> x1=3;
1 3 y1=4;
1 4 z1=5;
1 5
>> plot3(x1,y1,z1,'*')

>> th=[0:.01:2]*2*pi;
[
] p;
x=cos(th);
y=sin(th);
z=th;
plot3(x,y,z)

Representaes
p

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

Arquivos, extenses e rotinas


As rotinas para automao de atividades tambm so gravados em
arquivos de extenso .m e carregados sempre que necessrio;
File>New>M-File Copiar as linhas de programao com sintaxe correta e
salvar;
File>Open>(escolha) Desde que o arquivo esteja no diretrio corrente;
Boto
para
prompt
digitando
arquivo.
oto
pa a compilao
co p ao ou p
o pt d
g ta do o nome
o e do a
qu o
J as variveis de trabalho podem ser armazenadas em arquivos de
extenso .mat
As... E carregadas
mat atravs do menu File> Save Workspace As
da mesma maneira que um M_File.
clear, clf
clear
>>x1=1;y1=.5;x2=2;y2=1.5;x3=3;y3=2;
>>plot(x1,y1,'o',x2,y2,'+',x3,y3,'*')
>>axis([0
axis([0 4 0 4])
>>xlabel('xaxis')
>>ylabel('yaxis')
>>title('3points
( p
in a p
plane'))

Criao de uma nova funo


necessrio criar um arquivo .m denominado da mesma forma
que a funo;
Em sua primeira linha escreveescreve-se o comando function e segue a
descrio dos parmetros da nova funo.

Para a amostragem geomtrica da funo em seu domnio usausa-se o


comando
d ffplot
l d
delimitando
li i d os iintervalos
l
andre ,[ 2,7])
>> fplot (('andre',[-2,7])

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

Tipos de representaes

z = 3*(1-x).^2.*exp(-(x.^2)
3*(1 ) ^2 *
( ( ^2) - (y+1).^2)
( 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)
( y )

Outros tipos de representaes


>> surf(x,y,z)
surf(x y z)
>> shading flat

>> surfl(x,y,z)
( y )
>> shading flat

>> contour(x,y,z)

>> imagesc(z)
>> axis xy

Outros tipos de representaes


>> surfc(x,y,z)

>> contourf(x,y,z)
( ,y, )

Cores de Mapas
Pode-se criar seu prprio trao ou usar qualquer mapa de cores
Podepredefinidas disponveis
hsv hot gray bone copper pink
white flag lines colorcube jet
prism cool autumn spring winter
summer
>> colormap
l
(hot)
(h t)
>> colormap ([.5 .5 .5])

>> gray(8)

Colormap. Matlab usa matrizes para


aplicar cores em mapas imagens e
superfcies tendo elas as
especificaes:

Red

Green

Blue

Colour

Black

Whit
White

Red

Green

Blue

Yellow

Magenta

Cyan

.5

.5

.5

Gray

.5

Dark red

.62

.4

Dark orange

.49

.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

Formatos suportados para arquivos de dados


TXT Formatted data in a text file

TEXTREAD

Double array

DAT - Formatted
F
tt d text
t t

IMPORTDATA

D bl array
Double

DLM - Delimited text

DLMREAD

Double array

TAB - Tab separated text

DLMREAD

Double array

Spreadsheet Formats

Command

Returns

XLS - Excel
E
l worksheet
k h t

XLSREAD

D bl array and
Double
d cellll 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)


g ( )

BMP Windows bitmap

IMREAD

Truecolor or indexed image

A di F
Audio
Formats
t

C
Command
d

R t
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

Você também pode gostar