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. [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
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)
carrega o arquivo que
contém os valores;
Quantidades de cada item
determinadas em uma
matriz;
Multiplicando as matrizes
pode-se comparar os preços
total ofertado no total por
cada revendedor.
>> precos= XLSREAD('exemplo
novo.xls');
>> precos
Automóvel
Caminhonete
Caminhão
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 gráficos para análise de dados
>> grafico=[precos,escolha]
grafico =
15400
16200
15150
18200
17900
19000
>> bar(grafico)
46200
47500
48000
156800
161500
160450
>> revendedor=[1 2 3];
>> 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
Carregando variável salva
para eventual 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.
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
>>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  y 3 2 y  x  4 y 2
q
2
2
x
 5y
t
(sin w3  t 4 10  tan w)(  3t  1)
2 y 3x  17
12 w
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;
Comando for
A forma básica do comando for é:
for índice = começa:incremento:para
declarações
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 if-else-end
Matlab tem quatro tipos de afirmações
são if, elseif, else,end
Elas fazem o controle de fluxo baseadas
no teste lógico.
Em sua forma básica:
If teste
declarações
End
function retorno=posneg(ent)
if all(ent>0)
retorno=1;
elseif all (ent<0)
retorno=-1;
else
retorno=0;
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
switch e´:
M-file switchx.m
switch teste
case resultado1
declaração
case resultado2
declaração
...
otherwise
declaração
end
switch x
case 1
disp('x is 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 expressão em switch case só pode
ser um escalar ou uma string.
>> x=5;
Pressione o botão run:
>> x is 5
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
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.
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) ...
- 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)
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
white flag lines colorcube jet
prism cool autumn spring winter
summer
>> colormap (‘hot’)
>> colormap ([.5 .5 .5])
>> gray(8)
Colormap. Matlab usa matrizes para
aplicar cores em mapas imagens e
superfícies tendo elas as
especificações:
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
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
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
TIFF – Tagged image format
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
AVI - Movie
Command
AVIREAD
Returns
MATLAB movie
Download

Curso básico matlab