37
CURSO BÁSICO DE MATLAB CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected] [email protected] Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. [email protected] [email protected] UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT – Departamento de Engenharia IT – Departamento de Engenharia ÁREA DE MECANIZAÇÃO AGRÍCOLA ÁREA DE MECANIZAÇÃO AGRÍCOLA Ambiente de computação para desenvolvimento de sistemas sofisticados

CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected] [email protected] Keilla Boehler, Aluna do Curso de Engenharia

Embed Size (px)

Citation preview

Page 1: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

CURSO BÁSICO DE MATLABCURSO BÁSICO DE MATLAB

Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. [email protected]@ufrrj.brKeilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. Keilla Boehler, Aluna do Curso de Engenharia Agrícola, UFRRJ. [email protected]@ig.com.br

UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIROUNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIROIT – Departamento de EngenhariaIT – Departamento de Engenharia

ÁREA DE MECANIZAÇÃO AGRÍCOLAÁREA DE MECANIZAÇÃO AGRÍCOLA

Ambiente de computação para desenvolvimento de sistemas sofisticados

Page 2: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

ConteúdoConteúdoIntroduçãoIntroduçãoPrincipais Recursos do ProgramaPrincipais Recursos do ProgramaJanela Principal do ProgramaJanela Principal do ProgramaPrincipais Sub-janelas do ProgramaPrincipais Sub-janelas do ProgramaManipulação de MatrizesManipulação de MatrizesMatrizes e gráficos para análise de dadosMatrizes e gráficos para análise de dadosGráficos para análise de dadosGráficos para análise de dadosJanelas e FerramentasJanelas e FerramentasCarregando algoritmo práticoCarregando algoritmo práticoOperações com VetoresOperações com VetoresFunções MatemáticasFunções MatemáticasMatrizesMatrizesComando forComando forEstrutura switch, case, otherwiseEstrutura switch, case, otherwiseWhileWhilePlotagemPlotagemRepresentações em coordenadas polaresRepresentações em coordenadas polaresArquivos, extensões e rotinasArquivos, extensões e rotinasCriação de uma nova funçãoCriação de uma nova funçãoGráficos tridimensionaisGráficos tridimensionaisCores de MapasCores de Mapas

Page 3: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

IntroduçãoIntrodução

O programa computacional MATLAB é um ambiente de computação O programa computacional MATLAB é um ambiente de computação técnico-científica para o desenvolvimento de sistemas sofisticados técnico-científica para o desenvolvimento de sistemas sofisticados ( MATSUMOTO, 2002); ( MATSUMOTO, 2002);

É extensivamente usado para exploração, análise e resolução de É extensivamente usado para exploração, análise e resolução de problemas em diversas áreas do conhecimento;problemas em diversas áreas do conhecimento;

Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um Apresenta diversos pacotes de ferramentas ‘toolbox’ que são um conjunto de algoritmos especialmente desenvolvidos para conjunto de algoritmos especialmente desenvolvidos para aplicações específicas.aplicações específicas.

Page 4: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Principais Recursos do ProgramaPrincipais Recursos do Programa

Linguagem de alto-nível para computação técnicaLinguagem de alto-nível para computação técnicaAmbiente de desenvolvimento e administração de código, arquivos, e Ambiente de desenvolvimento e administração de código, arquivos, e dados dados Ferramentas interativas para exploração, desígnio e resolução de Ferramentas interativas para exploração, desígnio e resolução de problemas problemas Funções matemáticas para álgebra linear, estatísticas, análise de Funções matemáticas para álgebra linear, estatísticas, análise de Fourier, filtragem, otimização, e integração numérica Fourier, filtragem, otimização, e integração numérica Funções para visualizar dados de gráficos 2-D e 3-D Funções para visualizar dados de gráficos 2-D e 3-D Ferramentas para construção de interfaces com usuário Ferramentas para construção de interfaces com usuário Funções que integram MATLAB funcionam como base de algoritmos Funções que integram MATLAB funcionam como base de algoritmos com aplicações externas e idiomas, como C, C++, Fortran, Java, COM, com aplicações externas e idiomas, como C, C++, Fortran, Java, COM, e Microsoft Excel, e Microsoft Excel,

Page 5: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Janela Principal do ProgramaJanela Principal do Programa

Page 6: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Principais Sub-janelas do ProgramaPrincipais Sub-janelas do Programa

Janela de comandoJanela de comando WorkspaceWorkspace

Comand WindowComand Window

Page 7: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Manipulação de MatrizesManipulação de Matrizes

>> precos= XLSREAD('exemplo >> precos= XLSREAD('exemplo novo.xls');novo.xls');

>> precos>> precos

precos =precos =

15400 18200 4620015400 18200 46200

16200 17900 4750016200 17900 47500

15150 19000 4800015150 19000 48000

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

quantidade =quantidade =

33

11

22

>> escolha=precos*quantidade>> escolha=precos*quantidade

escolha =escolha =

156800156800

161500161500

160450160450

RevendedorRevendedor AutomóvelAutomóvel CaminhoneteCaminhonete CaminhãoCaminhão

Revendedor Revendedor AA

1540015400 1820018200 4620046200

Revendedor Revendedor BB

1620016200 1790017900 4750047500

Revendedor Revendedor CC

1515015150 1900019000 4800048000

Comando XLSREAD(‘*.xls) Comando XLSREAD(‘*.xls) carrega o arquivo que carrega o arquivo que contém os valores;contém os valores;

Quantidades de cada item Quantidades de cada item determinadas em uma determinadas em uma matriz;matriz;

Multiplicando as matrizes Multiplicando as matrizes pode-se comparar os preços pode-se comparar os preços total ofertado no total por total ofertado no total por cada revendedor.cada revendedor.

Page 8: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Matrizes e gráficos para análise de dadosMatrizes e gráficos para análise de dados>> grafico=[precos,escolha]>> grafico=[precos,escolha]

grafico =grafico =

15400 18200 46200 15680015400 18200 46200 156800

16200 17900 47500 16150016200 17900 47500 161500

15150 19000 48000 16045015150 19000 48000 160450

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

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

Page 9: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Gráficos para análise de dadosGráficos para análise de dados

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

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

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

Page 10: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Janelas e FerramentasJanelas e Ferramentas Escolha de diretório;Escolha de diretório;

Utilização de ferramenta de Utilização de ferramenta de busca para opção de busca para opção de comando;comando;

Leitura de imagem em Leitura de imagem em formato .JPGformato .JPG

Salvar a variável em arquivo Salvar a variável em arquivo .m que consta em .m que consta em workspace .workspace .

Amostragem para análise Amostragem para análise da composição da imagem. da composição da imagem.

Carregando variável salva Carregando variável salva para eventual outro trabalhopara eventual outro trabalho

Page 11: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Carregando algoritmo práticoCarregando algoritmo prático

As linhas de programação ficam gravadas em As linhas de programação ficam gravadas em arquivos M-file ou arquivos de extensão .m arquivos M-file ou arquivos de extensão .m

O comando figure é um O comando figure é um suporte sempre suporte sempre necessário quando necessário quando deseja-se amostrar deseja-se amostrar imagem. É designado imagem. É designado através da interface através da interface programa-usuárioprograma-usuário

Page 12: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Operações com VetoresOperações com VetoresCriaçãoCriação

>>t>>t=[0 2 4 6 8 10 12 14 16 18 20]=[0 2 4 6 8 10 12 14 16 18 20]

OuOu

>>t1= 0:2:20>>t1= 0:2:20

>> h=1:3:32>> h=1:3:32

ManipulaçãoManipulação

>> h1=h+2>> h1=h+2

>> v=t+h>> v=t+h

>> t1=t*5>> t1=t*5

>> b=t*h‘>> b=t*h‘

>> b1=t.*h>> b1=t.*h

>> b2=t/h>> b2=t/h

>> who>> who

Your variables are:Your variables are:

h t h t

>> whos>> whos

Name Size Bytes ClassName Size Bytes Class

h 1x11 88 double arrayh 1x11 88 double array

t 1x11 88 double arrayt 1x11 88 double array

Grand total is 22 elements using 176 bytesGrand total is 22 elements using 176 bytes

Page 13: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Funções MatemáticasFunções Matemáticas

17252

3

2

xyyxt

233 4235 yxyyxxw

Para facilmente escrever linhas de expressão matemática, Matlab Para facilmente escrever linhas de expressão matemática, Matlab disponibiliza bloco de códigos que realizam tarefas específicas.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. 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, Constantes geralmente usadas como pi, e i ou j para a raiz quadrada de -1, também está incorporado em Matlab. também está incorporado em Matlab.

Encontra-se todas as funções matemáticas elementares Encontra-se todas as funções matemáticas elementares listadas através do comando: >> help elfunlistadas através do comando: >> help elfun

wtwtwq 12)13)(tan10sin( 43

3x 4y

Page 14: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Implementação de FunçõesImplementação de Funções

>> x=4; y=3;>> x=4; y=3;

>> t=(2*x^2-5*y)/(sqrt(2*y^(3-x)+17))>> t=(2*x^2-5*y)/(sqrt(2*y^(3-x)+17))

t =t =

4.04464.0446

>> w=(5*x+3-x^3-y^3)/(2*y-x-4*y^2)>> w=(5*x+3-x^3-y^3)/(2*y-x-4*y^2)

w =w =

22

>> q=(sin(w)^3-t^4/10+tan(w))*(-sqrt(t*3+1))/12*w>> q=(sin(w)^3-t^4/10+tan(w))*(-sqrt(t*3+1))/12*w

q =q =

17.028917.0289

Page 15: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

MatrizesMatrizes

>> a = [1 2 3;4 5 6;7 8 9]>> a = [1 2 3;4 5 6;7 8 9]

>> a1 = [1 2 3>> a1 = [1 2 3

4 5 64 5 6

7 8 9]7 8 9]

>> a2 = [1 2 3,4 5 6,7 8 9]>> a2 = [1 2 3,4 5 6,7 8 9]

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

>> d=[b,a]>> d=[b,a]

help matfunhelp matfun

Livro de algebra linear exercícioLivro de algebra linear exercício

O cálculo de transpostas, O cálculo de transpostas, inversas, inversas, determinantes,diagonais, determinantes,diagonais, covariâncias resume-se a covariâncias resume-se a comandos como: comandos como:

>> inv(x)>> inv(x)

>> b=rand(6)>> b=rand(6)

>> var(b)>> var(b)

>> cov(b)>> cov(b)

Sendo a matriz de variância Sendo a matriz de variância diagonal da matriz de covânciadiagonal da matriz de covância

Page 16: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Funções para MatrizesFunções para Matrizes>> ones(3) matriz de uns>> ones(3) matriz de uns

>> zeros(5) matriz de zeros>> zeros(5) matriz de zeros

>> rand(3) matriz com elementos aleatórios distribuídos >> rand(3) matriz com elementos aleatórios distribuídos uniformementeuniformemente

>> randn(4) matriz com elementos aleatórios distribuídos normalmente>> randn(4) matriz com elementos aleatórios distribuídos normalmente

>> eye(3) matriz identidade>> eye(3) matriz identidade

>> ones(3,1,2) matriz de uns com especificação da dimensão>> 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) >> a=ones(2,5); b=zeros(2,5); c=ones(1,5)*3;vertcat(a,b,c)

comando que concatena matrizes verticalmentecomando que concatena matrizes verticalmente

>> repmat(a,2,3)>> repmat(a,2,3)

>> m = size(rand(2,3,4),2) >> m = size(rand(2,3,4),2)

em que o ultimo algarismo responde sobre a dimensão dois, 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.a das colunas. Poderia ser 3, a das linhas. E 4, a das bandas.

>>d=peaks(25);>>d=peaks(25);

Page 17: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

c =input('cotas das amostras ordenadas na sequencia da malha:')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.3%[10.0000,10.2800,10.2000,10.3000,10.3100;10.3000,10.3200,10.2800,10.3100,1100,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.8000,10.00,10.

%7500,10.7800];%7500,10.7800];

a=size(c,1);b=size(c,2);a=size(c,1);b=size(c,2);

N=a*b;N=a*b;

Hc=(sum(sum(c,1)))/N;Hc=(sum(sum(c,1)))/N;

dif=c-Hc;dif=c-Hc;

inda=find(dif < 0);indc=find(dif > 0);inda=find(dif < 0);indc=find(dif > 0);

dist=input('distancia entre pontos da malha:');dist=input('distancia entre pontos da malha:');

area=dist^2;area=dist^2;

volcorte= sum(dif(indc))*area;volcorte= sum(dif(indc))*area;

volaterro=sum(dif(inda))*area;volaterro=sum(dif(inda))*area;

Sistematização de terreno pelo ‘Método do Plano Único’Sistematização de terreno pelo ‘Método do Plano Único’

Programação simplesProgramação simples

Page 18: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Comando forComando for

>> for a=1:10>> for a=1:10

a<=3; C(a)=a^2;a<=3; C(a)=a^2;

a=3:7; C(a)=a+5;a=3:7; C(a)=a+5;

a=7:10; C(a)=a;a=7:10; C(a)=a;

endend

>> stem(C)>> stem(C)

A forma básica do comando for é:A forma básica do comando for é:

for índice = começa:incremento:parafor índice = começa:incremento:para

declaraçõesdeclarações

endend

>> for m=1:10>> for m=1:10

x(m)=m^2;x(m)=m^2;

end;end;

>> x(3)>> x(3)

ans =ans =

99

Page 19: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Estruturas if-else-endEstruturas if-else-end

Matlab tem quatro tipos de afirmações Matlab tem quatro tipos de afirmações são if, elseif, else,endsão if, elseif, else,end

Elas fazem o controle de fluxo baseadas Elas fazem o controle de fluxo baseadas no teste lógico.no teste lógico.

Em sua forma básica:Em sua forma básica:

If testeIf teste

declaraçõesdeclarações

EndEnd

function retorno=posneg(ent)function retorno=posneg(ent)

if all(ent>0)if all(ent>0)

retorno=1;retorno=1;

elseif all (ent<0)elseif all (ent<0)

retorno=-1;retorno=-1;

else else

retorno=0;retorno=0;

end end

O teste é uma expressão em que há 1(verdadeiro) ou 0(falso) é executado 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 entre o if e end e retorna se o teste der verdadeiro, quando falso são ignoradas as declarações.ignoradas as declarações.

Testes adicionais podem ser feitos usando elseif e else.Testes adicionais podem ser feitos usando elseif e else.

Page 20: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Estrutura switch, case, otherwiseEstrutura switch, case, otherwise

switch xswitch x

case 1case 1

disp('x is 1');disp('x is 1');

case {2,3,4}case {2,3,4}

disp('x is 2, 3 or 4');disp('x is 2, 3 or 4');

case 5case 5

disp('x is 5');disp('x is 5');

otherwiseotherwise

disp('x is not 1, 2, 3, 4 or 5');disp('x is not 1, 2, 3, 4 or 5');

endend

>> x=5;>> x=5;

Pressione o botão run:Pressione o botão run:

>> x is 5>> x is 5

M-file switchx.mM-file switchx.mA forma básica de parâmetros do A forma básica de parâmetros do switch e´: switch e´:

switch testeswitch teste

case resultado1case resultado1

declaraçãodeclaração

case resultado2case resultado2

declaraçãodeclaração

......

otherwiseotherwise

declaraçãodeclaração

endend

A expressão em switch case só pode A expressão em switch case só pode ser um escalar ou uma string.ser um escalar ou uma string.

Page 21: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

WhileWhile

while testewhile teste

declaraçãodeclaração

endend

n = 1;n = 1;

while sum(1:n)<=1000while sum(1:n)<=1000

n = n+1;n = n+1;

endend

As declarações são executadas repetidamente enquanto o valor de 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 teste for igual a 1, por exemplo, achar o primeiro inteiro n para qual 1+2+· · ·+n é maior que 1000:1+2+· · ·+n é maior que 1000:

Page 22: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Área de um Polígono com WhileÁrea de um Polígono com Whilemat=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;endm=1;soma2=0;while m<a;mult2=x(m+1,1)*y(m,1);soma2=soma2+mult2;m=m+1;endarea=abs((soma-soma2)/2)

Page 23: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

PlotagemPlotagem

O comando axis ajusta a escala do gráfico às coordenadas dos pontos O comando axis ajusta a escala do gráfico às coordenadas dos pontos plotados.plotados.

Sintaxe: axis([xmin xmax ymin ymax]) Sintaxe: axis([xmin xmax ymin ymax])

>> x1=-1;y1=-1;x2=1;y2=-1;x3=-1;y3=1;x4=1;y4=1;>> 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')>> plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o')

>> axis([-2 2 -2 2])>> axis([-2 2 -2 2])

>> axis square %forma quadrada >> axis normal ou>> axis square %forma quadrada >> axis normal ou

>> x=[-1 1 -1 1] ; >> x=[-1 1 -1 1] ; y=[-1; -1; 1; 1] ; plot(x,y,'.r');axis([-2 2 -2 2])y=[-1; -1; 1; 1] ; plot(x,y,'.r');axis([-2 2 -2 2])

subplot trabalha com multiplicidade de subplot trabalha com multiplicidade de gráficos gráficos

renda= [3.2 4.1 5.0 5.6];renda= [3.2 4.1 5.0 5.6];

gastos= [2.5 4.0 3.35 4.9];gastos= [2.5 4.0 3.35 4.9];

subplot(2,1,1); plot(renda)subplot(2,1,1); plot(renda)

subplot(2,1,2); plot(gastos)subplot(2,1,2); plot(gastos)

Page 24: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Comando subplotComando subplot

>> t = 0:.1:2*pi;>> t = 0:.1:2*pi;

subplot(2,2,1)subplot(2,2,1)

plot(cos(t),sin(t))plot(cos(t),sin(t))

subplot(2,2,2)subplot(2,2,2)

plot(cos(t),sin(2*t))plot(cos(t),sin(2*t))

subplot(2,2,3)subplot(2,2,3)

plot(cos(t),sin(3*t))plot(cos(t),sin(3*t))

subplot(2,2,4)subplot(2,2,4)

plot(cos(t),sin(4*t))plot(cos(t),sin(4*t))

Sendo o primeiro índice o número de eixos na Sendo o primeiro índice o número de eixos na vertical, o segundo número de eixos na vertical, o segundo número de eixos na horizontal e o último o número de ordem ou horizontal e o último o número de ordem ou posição. posição.

subplot 221subplot 221

plot(1:10)plot(1:10)

subplot 222subplot 222

plot(0,’*’)plot(0,’*’)

subplot 212subplot 212

plot([1 0 1 0])plot([1 0 1 0])

Page 25: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Propriedades de Gráficos Propriedades de Gráficos Para colocar rótulos em gráficos pode-se usar a função xlabel, ylabel, Para colocar rótulos em gráficos pode-se usar a função xlabel, ylabel, and titleand title

>> xlabel(‘eixo x'); ylabel(‘eixo y'); title(‘pontos no plano')>> xlabel(‘eixo x'); ylabel(‘eixo y'); title(‘pontos no plano')

Inserir texto em ponto de sua escolha no gráfico Inserir texto em ponto de sua escolha no gráfico

>>gtext('P1');gtext('P2');gtext('P3');gtext('P4')>>gtext('P1');gtext('P2');gtext('P3');gtext('P4')

Pode-se especificar o estilo de linha, o símbolo que marca o ponto e cor do Pode-se especificar o estilo de linha, o símbolo que marca o ponto e cor do gráfico ainda pelo prompt.gráfico ainda pelo prompt.

>> x=[4 5 6; 1 2 3]; y=(x.^2)>> x=[4 5 6; 1 2 3]; y=(x.^2)

>> plot(x,y,'-.or')>> plot(x,y,'-.or')

>> plot(x,y,'-hk')>> plot(x,y,'-hk')

Em help plot visualiza-se as especificações Em help plot visualiza-se as especificações das características do gráficodas características do gráfico

>> t = 0:.1:2*pi;>> t = 0:.1:2*pi;

plot(t,sin(t),t,sin(1.05*t))plot(t,sin(t),t,sin(1.05*t))

>> gtext('frequency = 1');gtext('frequency = >> gtext('frequency = 1');gtext('frequency = 1.05');axis([0 max(t) -1 1])1.05');axis([0 max(t) -1 1])

Page 26: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Propriedades de GráficosPropriedades de Gráficos

>> dt = 2*pi/10;>> dt = 2*pi/10;

t = dt:dt:10*dt;t = dt:dt:10*dt;

x = cos(t);x = cos(t);

y = sin(t);y = sin(t);

plot(x,y)plot(x,y)

axis equal offaxis equal off

for i = 1:10for i = 1:10

text(x(i),y(i),int2str(i))text(x(i),y(i),int2str(i))

endend

>> t = 0:.1:2*pi;>> t = 0:.1:2*pi;

plot(t,sin(t),t,sin(1.05*t))plot(t,sin(t),t,sin(1.05*t))

>> gtext('frequency = 1');gtext('frequency = >> gtext('frequency = 1');gtext('frequency = 1.05');axis([0 max(t) -1 1])1.05');axis([0 max(t) -1 1])

Page 27: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Comando plot3Comando plot3

Matlab apresenta um gráfico Matlab apresenta um gráfico tridimensional com plot3:tridimensional com plot3:

>> x1=3; y1=4; z1=5;>> x1=3; y1=4; z1=5;

>> plot3(x1,y1,z1,'*')>> plot3(x1,y1,z1,'*')

>> th=[0:.01:2]*2*pi;>> th=[0:.01:2]*2*pi;

x=cos(th);x=cos(th);

y=sin(th);y=sin(th);

z=th;z=th;

plot3(x,y,z)plot3(x,y,z)

Page 28: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Representações em coordenadas polaresRepresentações em coordenadas polares

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

Page 29: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Arquivos, extensões e rotinasArquivos, extensões e rotinas

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')

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.

Page 30: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Criação de uma nova funçãoCriação de uma nova função

É necessário criar um arquivo .m denominado da mesma forma É necessário criar um arquivo .m denominado da mesma forma que a função;que a função;

Em sua primeira linha escreve-se o comando function e segue a Em sua primeira linha escreve-se o comando function e segue a descrição dos parâmetros da nova função.descrição dos parâmetros da nova função.

Para a amostragem geométrica da função em seu domínio usa-se o Para a amostragem geométrica da função em seu domínio usa-se o comando fplot delimitando os intervaloscomando fplot delimitando os intervalos

>> fplot ('andre',[-2,7])

Page 31: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Gráficos tridimensionaisGráficos tridimensionais

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

Page 32: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Tipos de representaçõesTipos 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);

[x,y,z] = peaks;colormap(gray)

plot(z) mesh(x,y,z)

Page 33: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

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

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

>> contour(x,y,z)>> imagesc(z)>> axis xy

Outros tipos de representaçõesOutros tipos de representações

Page 34: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

>> contourf(x,y,z)

>> surfc(x,y,z)

Outros tipos de representaçõesOutros tipos de representações

Page 35: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Cores de MapasCores de MapasPode-se criar seu próprio traço ou usar qualquer mapa de cores Pode-se criar seu próprio traço ou usar qualquer mapa de cores predefinidas disponíveispredefinidas 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])

Colormap. Matlab usa matrizes para Colormap. Matlab usa matrizes para aplicar cores em mapas imagens e aplicar cores em mapas imagens e superfícies tendo elas as superfícies tendo elas as especificações:especificações:

Red Red GreenGreen BlueBlue ColourColour

00 00 00 BlackBlack

11 11 11 WhiteWhite

11 00 00 RedRed

00 11 00 GreenGreen

00 00 11 BlueBlue

11 11 00 YellowYellow

11 00 11 MagentaMagenta

00 11 11 CyanCyan

.5.5 .5.5 .5.5 GrayGray

.5.5 00 00 Dark redDark red

11 .62.62 .4.4 Dark orangeDark orange

.49.49 11 .83.83 AquamarineAquamarine

.95.95 .9.9 .8.8 ParchmentParchment

>> gray(8)

Page 36: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Data FormatsData Formats CommandCommand ReturnsReturns

MAT - MATLAB workspaceMAT - MATLAB workspace LOADLOAD Variables in fileVariables in file

CSV - Comma separated numbersCSV - Comma separated numbers CSVREADCSVREAD Double arrayDouble array

TXT – Formatted data in a text fileTXT – Formatted data in a text file TEXTREADTEXTREAD Double arrayDouble array

DAT - Formatted textDAT - Formatted text IMPORTDATAIMPORTDATA Double arrayDouble array

DLM - Delimited textDLM - Delimited text DLMREADDLMREAD Double arrayDouble array

TAB - Tab separated textTAB - Tab separated text DLMREADDLMREAD Double arrayDouble array

Spreadsheet Formats Spreadsheet Formats Command Command ReturnsReturns

XLS - Excel worksheet XLS - Excel worksheet XLSREAD XLSREAD Double array and cell arrayDouble array and cell array

WK1 - Lotus 123 worksheet WK1 - Lotus 123 worksheet WK1READWK1READ Double array and cell arrayDouble array and cell array

Scientific Data Formats Scientific Data Formats Command Command ReturnsReturns

CDF - Common Data Format CDF - Common Data Format CDFREAD CDFREAD Cell array of CDF recordsCell array of CDF records

FITS - Flexible Image Transport SystemFITS - Flexible Image Transport System FITSREADFITSREAD Primary or extension table dataPrimary or extension table data

HDF - Hierarchical Data Format HDF - Hierarchical Data Format HDFREAD HDFREAD HDF or HDF-EOS data set HDF or HDF-EOS data set

Alguns comandos do MATLABAlguns comandos do MATLAB

Page 37: CURSO BÁSICO DE MATLAB Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella@ufrrj.br varella@ufrrj.br Keilla Boehler, Aluna do Curso de Engenharia

Image Formats Image Formats Command Command ReturnsReturns

TIFF – Tagged image format TIFF – Tagged image format IMREAD IMREAD Truecolor, grayscale or indexed Truecolor, grayscale or indexed

image(s)image(s)

PNG – Portable network graphicsPNG – Portable network graphics IMREAD IMREAD Truecolor, grayscale or indexed Truecolor, grayscale or indexed

imageimage

HDF – Hierarchial data format HDF – Hierarchial data format IMREAD IMREAD Truecolor or indexed image(s)Truecolor or indexed image(s)

BMP – Windows bitmap BMP – Windows bitmap IMREAD IMREAD Truecolor or indexed imageTruecolor or indexed image

Audio Formats Audio Formats Command Command ReturnsReturns

AU – Next/Sun Sound AU – Next/Sun Sound AUREAD AUREAD Sound data and sample rateSound data and sample rate

SND – Next/Sun Sound SND – Next/Sun Sound AUREADAUREAD Sound data and sample rateSound data and sample rate

WAV – Microsoft Wave Sound WAV – Microsoft Wave Sound WAVREAD WAVREAD Sound data and sample rateSound data and sample rate

Movie Formats Movie Formats Command Command ReturnsReturns

AVI - Movie AVI - Movie AVIREAD AVIREAD MATLAB movieMATLAB movie

Alguns comandos do MATLABAlguns comandos do MATLAB