+ All Categories
Home > Documents > Aula 1 Matlab

Aula 1 Matlab

Date post: 17-Jul-2015
Category:
Upload: reyler
View: 221 times
Download: 0 times
Share this document with a friend
39
  No matlab numero decimal é sempre com ponto. Virgula indica vetor. >> fix(1.5) ans = 1 >> fix(2.33) ans = 2 >> fix(-1.5) ans = -1 >> flor(1.5) ??? Undefined function or method 'flor' for input arguments of type 'double'.
Transcript
Page 1: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 1/39

 

 

No matlab numero decimal é sempre com ponto.

Virgula indica vetor.

>> fix(1.5)

ans =

1

>> fix(2.33)

ans =

2

>> fix(-1.5)

ans =

-1

>> flor(1.5)

??? Undefined function or method 'flor' for input arguments of type 'double'.

Page 2: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 2/39

 

>> floor(1.5)

ans =

1

>> floor(-1.5)

ans =

-2

>> floor(1.5)

ans =

1

>> floor(1.7)

ans =

1

>> fix(1.8)

ans =

1

>> fix(1.3)

ans =

1

>> fix(-1.3)

ans =

-1

>> ceil(1.5)

ans =

Page 3: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 3/39

 

 

2

>> ceil(1.1)

ans =

2

>> ceil(1.7)

ans =

2

>> rem(20,3)

ans =

2

>> sen(pi/2)

??? Undefined function or method 'sen' for input arguments of type 'double'.

>> sin(pi/2)

ans =

1

Comando (Ctrl C) => ele aborta o comando.

- Pontuações na programação:

, : a virgula separa os comando em uma mesma linha.

>> sin(0),cos(0)

ans =

0

ans =

1

Page 4: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 4/39

 

 

>> sin(0),cos(0),lcm(3,4)

ans =

0

ans =

1

ans =

12

; O ponto e virgula não apresenta na tela a impressão do resultado (não deixa visualizar o

resultado do programa)

>> a=[5 60]

a =

5 60

>> a=[5 60];

>>

>> a=[5 60]

a =

5 60

>> a=[5 60];

>>

>> a+b

Page 5: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 5/39

 

ans =

5 65

>>

>> format short

>> cos(pi/4)

ans =

0.7071

>> format long>> cos(pi/4)

ans =

0.707106781186548

>>

Criação de variáveis:

Pode ser realizada com letras (a, b, c, d, ...), números (1,2, 3, ...) ou utilizando o handerline ( - )

porem:

Letras: podem iniciar ou terminar uma variável independente da posição na variável;

Numeros: somente após o primeiro caracter: a1bada ou aa332

Handerline: somente no meio da variável, nunca pode estar no inicio ou no final

>> pi=2

pi =

2

>> pi

pi =

2

Page 6: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 6/39

 

 

>> clear pi

>> pi

ans =

3.141592653589793

- Menor passo possível: eps

É o menor valor que pode ser atribuído a um numero com crescimento à direita (infinito

positivo).

> eps

ans =

2.220446049250313e-016

- Realmin: Menor valor de um numero real

- Realmax: Maior valor de um numero real

Primes - Numeros primos

>> primes (10) vai apresentar os numeros primos menores que 10.

ans =

2 3 5 7

Operadores relacionais: Maior (>), menor (<), recebe (=), igual (==)

Criação de vetores:

>> x=1:10

x =

1 2 3 4 5 6 7 8 9 10

>> y=1:0.1:2

y =

Columns 1 through 6

Page 7: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 7/39

 

1.000000000000000 1.100000000000000 1.200000000000000 1.300000000000000

1.400000000000000 1.500000000000000

Columns 7 through 11

1.600000000000000 1.700000000000000 1.800000000000000 1.900000000000000

2.000000000000000

Criação de vetores

>> x=[1;2;3]

x =

12

3

>> x=[1 2 3; 4 4 6]

x =

1 2 3

4 4 6

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

x =

1 2

3 4

5 6

7 8

>>

x =

1

2

3

>> x>1

ans =

Page 8: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 8/39

 

0 falso

1 verdadeiro

1 verdadeiro

Comando syms: define símbolos

>> syms q

>> syms

'q'

>> syms a>> syms

'a' 'q'

>> syms b c d

>> syms

'a' 'b' 'c' 'd' 'q'

>>

Comando fontool abre uma calculadora com gráficos

Page 9: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 9/39

 

 

>> y=[1 1 1] definição dos coefeciente do polinômio

y =

1 1 1

>> polyval(y,1)

ans =

3

>> y=[2 1 1 1]

y =

2 1 1 1

>> polyval(y,1)

ans =

5

Page 10: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 10/39

 

>> y=[1 2 3 ; 4 5 6; 7 8 9] definição de uma matriz 3 x 3

y =

1 2 3

4 5 6

7 8 9

>> y(:,1) seleciona todos os elementos da coluna 1

ans =

1

4

7

>> y(1,:) seleciona todos os elementos da linha 1

ans =

1 2 3

>>

>> m=[1 2 3; 4 5 6; 7 8 9] define uma matriz

m =

1 2 3

4 5 6

7 8 9

>> interp1(m(:,1) ,m(:,2),3) irá fazer uma interpolação de todos os elementos da coluna 1 com

a coluna 2 para um valor “3” pois existem apenas os valores 1, 4 e 7 (que no exemplo seriam

temperaturas)

ans =

4

>>

Page 11: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 11/39

 

>> zeros(4)

ans =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

>> zeros(3,2)

ans =

0 0

0 00 0

>> calendar

Jul 2011

S M Tu W Th F S

0 0 0 0 0 1 2

3 4 5 6 7 8 9

10 11 12 13 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 3031 0 0 0 0 0 0

>>

>> date

ans =

21-Jul-2011

>> clock

ans =

1.0e+003 *

2.0110 0.0070 0.0210 0.0110 0.0590 0.0419

Page 12: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 12/39

 

>> format rat

>> clock

ans =

2011 7 21 12 1 8964/509

>> calendar(2030,11)

Nov 2030

S M Tu W Th F S

0 0 0 0 0 1 2

3 4 5 6 7 8 9

10 11 12 13 14 15 16

17 18 19 20 21 22 2324 25 26 27 28 29 30

0 0 0 0 0 0 0

>> format short

>> calendar(2031,6)

Jun 2031

S M Tu W Th F S

1 2 3 4 5 6 7

8 9 10 11 12 13 1415 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 0 0 0 0 0

0 0 0 0 0 0 0

Comando rand: gera numerous aleatorios

>> rand(1)

ans =

0.7922 como é aleatório não repete

>> rand(1)

ans =

0.9595

>> floor(100*rand(1))

Page 13: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 13/39

 

 

ans =

65

Criação de graficos

Page 14: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 14/39

 

 

>> x=-2:0.1:2

x =

Columns 1 through 15

-2.0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000

Columns 16 through 30

-0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000

0.5000 0.6000 0.7000 0.8000 0.9000

Columns 31 through 41

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

2.0000

>> y=x.^2

y =

Columns 1 through 15

4.0000 3.6100 3.2400 2.8900 2.5600 2.2500 1.9600 1.6900 1.4400 1.2100

1.0000 0.8100 0.6400 0.4900 0.3600

Columns 16 through 30

0.2500 0.1600 0.0900 0.0400 0.0100 0 0.0100 0.0400 0.0900 0.1600

0.2500 0.3600 0.4900 0.6400 0.8100

Columns 31 through 41

1.0000 1.2100 1.4400 1.6900 1.9600 2.2500 2.5600 2.8900 3.2400 3.6100

4.0000

>>

Page 15: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 15/39

 

 

Formatação de graficos

Page 16: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 16/39

 

 

Page 17: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 17/39

 

>> xlabel('x')

>> ylabel('y')

>> plot(x,y,'r.:')

>> plot(x,y,'r.:') os dois pontos indicam o ponto mais grosso do grafico - r indica linha vemelha

Page 18: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 18/39

 

 

Plotando gráficos para duas funções com cores diferente

Page 19: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 19/39

 

 

Page 20: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 20/39

 

 

Page 21: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 21/39

 

 

y3=1./x;

>> subplot(2,2,1) a area de plotagem do grafico terá duas linhas e com duas colunas na

localização 1

>> plot(x,y)

>> subplot(2,2,2) o grafico ficará localizado na posição 2

>> plot(x,y1)

>> subplot(2,2,3)

>> plot(x,y2)

>> subplot(2,2,4)

>> plot(x,y3)

>> figure(1)

>> grid on

>> figure(1)

>> figure(1)>> figure(2)

>> figure(1)

>>

Page 22: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 22/39

 

 

Comando hold

Page 23: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 23/39

 

>> syms x

>> y=x^2;

>> y

y =

x^2

>> ezplot(y)

>>

>> y=x^2/(x-1)

y =

x^2/(x-1)

>> ezplot(y)

>>

Page 24: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 24/39

 

 

>> hold on

>> ezplot(y)

>> ezplot(sin(x))

>> hold off 

>> figure (1)

>> hold on

>> ezplot(sin(x))

>> ezplot(cos(x))

>> hold off 

>> figure (1)

>>

Page 25: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 25/39

 

 

Page 26: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 26/39

 

 

Page 27: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 27/39

 

 

Page 28: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 28/39

 

 

Page 29: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 29/39

 

MODULO 3 E 4

MODULO 3: PROGRAMAÇÃO DE SCRIPT

Programa que verifica os números impares menores que o numero fornecido pelo usuário

%Este programa calcula e demonstra os numeros impares a partir de umnumero %fornecido na tela diretamente clc; x=input('forneça um numero: '); j=1; %a variavel "j" define uma posicao para o vetor v for i=1:x %para "i" variando de 1 até x 

if rem(i,2)==1 %se o resto da divisão de "i" por 2 for igual a 1 v(j)=i; %vetor "v" na posicao "j" recebe o valor de "i" j=j+1; %incremeta o valor 1 na variavel "j" 

end end disp(v)%apresenta o vetor "v" com os numeros impares 

Criação de um vetor de 1 linha e 5 colunas

>> v=zeros(1,5)

v =

0 0 0 0 0

>> v=ones(1,5)

v =

1 1 1 1 1

>>

%Este programa calcula e demonstra os numeros impares a partir de umnumero %fornecido na tela diretamente clc; 

x=input('forneça um numero: '); v=zeros(1,ceil(x/2)); %comando "ceil" aredonda para cima j=1; %a variavel "j" define uma posicao para o vetor v for i=1:x %para "i" variando de 1 até x 

if rem(i,2)==1 %se o resto da divisão de "i" por 2 for igual a 1 v(j)=i; %vetor "v" na posicao "j" recebe o valor de "i" j=j+1; %incremeta o valor 1 na variavel "j" 

end end disp(v)%apresenta o vetor "v" com os numeros impares 

forneça um numero: 10

1 3 5 7 9

>>

Page 30: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 30/39

 

%Este programa calcula e demonstra os numeros impares a partir de umnumero %fornecido na tela diretamente clc; x=input('forneça um numero: '); v=zeros(1,ceil(x/2)); %comando "ceil" aredonda para cima 

j=1; %a variavel "j" define uma posicao para o vetor v for i=1:x %para "i" variando de 1 até x if ~rem(i,2)==1 %o simbolo "~" inverte a logica pegando apenas os

pares v(j)=i; %vetor "v" na posicao "j" recebe o valor de "i" j=j+1; %incremeta o valor 1 na variavel "j" 

end end disp(v)%apresenta o vetor "v" com os numeros impares 

forneça um numero: 10

2 4 6 8 10

>>

CRIAÇÃO DE FUNÇÕES

Permite criar funções e armazená-las na memória para posterior utilização em outros

programas.

Exemplo:

>> impares(10)??? Attempt to execute SCRIPT Impares as a function:

C:\Users\Otavio\Documents\MATLAB\Impares.m

Esta função não existe. Então precisamos criá-la.

Uma função não é um programa (script) ela é uma chamada para execução.

Barra de tarefas: File => new => function

Page 31: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 31/39

 

 Nesta função, o variável de entrada é o “x” e a variável de saída é o “v”. Não existe entrada de

variável dentro de função.

>> func_impares

??? Input argument "x" is undefined.

function v = func_impares(x) v=zeros(1,ceil(x/2)); %comando "ceil" aredonda para cima j=1; %a variavel "j" define uma posicao para o vetor v for i=1:x %para "i" variando de 1 até x 

if rem(i,2)==1 %se o resto da divisão de "i" por 2 for igual a 1 v(j)=i; %vetor "v" na posicao "j" recebe o valor de "i" j=j+1; %incremeta o valor 1 na variavel "j" 

end end 

>> func_impares(10)

ans =

1 3 5 7 9

>>

Page 32: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 32/39

 

function v = multiplo(x,y) %calculo os multiplos de x até 10 v=zeros(1,floor(y/x)); %o comando floor arredonda para baixo j=1; for i=1:y 

if ~rem(i,x) v(j)=i; 

j=j+1; end end 

>> multiplo(4,10)

ans =

4 8

Criando matriz com (linhas) ou (linhas,colunas)

>> ones(2,1)

ans =

1

1

>> ones(2)

ans =

1 1

1 1

>> zeros(2)

ans =

0 0

0 0

Page 33: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 33/39

 

>> multiplo(2,20)

ans =

2 4 6 8 10 12 14 16 18 20

>> multiplo(2,20)-pares(20)

ans =

0 0 0 0 0 0 0 0 0 0

>> multiplo(2,20)-ones(1,10)

ans =

1 3 5 7 9 11 13 15 17 19

>>

Exercícios: Criar 6 funções para transformar temperaturas de Celsius para Faranaid, etc...

Transformar Kelvin para Celsius

Celsius para Faranait

Faranait

Tabela de conversão

C/5 = (F-32)/9 = k-273.15

Criar um programa para transformar de polar para cartesiano

Lembrete: O Matlab trabalha em radianos

Pol2car(10,30)

Revisão do MÓDULO 2

Método do Newton para cálculo de raízes de uma função

clc; 

x=input('forneça o chute inicial: '); n=0 while abs(x^3-x^2+x-5)>0.01 

x=(5-x+x^2)^(1/3)

n=n+1; 

end 

Page 34: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 34/39

 

disp(['Total de iterações: ',num2str(n)]);%o colchete transforma oconteudo de n em string(texto) 

forneça o chute inicial: 2

n =

0

x =

1.9129

x =

1.8895

x =

1.8834

x =

1.8818

Total de iterações: 4

clc; 

x=input('forneça o chute inicial: '); n=0 c1=clock; while abs(x^3-x^2+x-5)>0.01 

x=(5-x+x^2)^(1/3)

n=n+1; pause(1) end c2=clock; t=abs(c2(6)-c1(6)) %o "6" inidica a posicao do dado no clock disp(['Total de iterações: ',num2str(n)]);%o colchete transforma oconteudo de n em string(texto) 

Page 35: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 35/39

 

disp(['tempo: ',num2str(sprintf('%.4f', t))]) 

>> clock

ans =

1.0e+003 *

2.0110 0.0080 0.0060 0.0120 0.0030 0.0549

>>

MODULO 4: CRIANDO INTERFACES GRÁFICAS

Page 36: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 36/39

 

 

% --- Executes on button press in calcular. function calcular_Callback(hObject, eventdata, handles) % hObject handle to calcular (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) s=get(handles.espaco,'string'); 

s=str2double(s);%==>double indica que o numero é um escalar. Poderiaser usada strig t=get(handles.tempo,'string'); t=str2double(t); su=get(handles.listbox1,'Value');%==>value indica a posição da medidano listbox. Ex. 1 é metro, 2 é centrimetro tu=get(handles.listbox2,'Value'); if su==2 %se unidade de espaço igual a posição "2" (cm) 

s=cm2m(s); %A variavel "s" recebe o resultado da função cm2m end if su==3%se unidade de espaço do listbox1 é igual a posição "3" (cm) 

s=km2m(s); end 

if su==4 s=ft2m(s); end if su==5 

s=in2m(s); end if tu==2 %se unidade de tempo do listbox2 é igual a posição 2 (min) 

t=min2s(t); %a variavel "t" recebe o resultado da função min2s end if tu==3 

t=h2s(t); end v=s/t; 

v=num2str(v); %==>converte a variavel "v" em texto para apresentar natela set(handles.velocidade,'string',v) 

Page 37: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 37/39

 

 

%Inicio das funções para conversão das unidades function s = cm2m(e) %"e" indica apenas que é uma entrada e o "s" asaida s = e/100; 

function s = km2m(e) s = e*1000; 

function s = ft2m(e) %ft é a unidade de pés s = e/3.2808; 

function s = in2m(e) %in é a unidade de polegadas s = e/(3.2808*12); 

function t = min2s(e) t = e*60; 

function t = h2s(e) t = e*3600; 

Page 38: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 38/39

 

 

Page 39: Aula 1 Matlab

5/14/2018 Aula 1 Matlab - slidepdf.com

http://slidepdf.com/reader/full/aula-1-matlab 39/39

 

 


Recommended