Aula 1 Matlab
Transcript of 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'.
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 =
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
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
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
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
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 =
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
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
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
>>
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
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))
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 13/39
ans =
65
Criação de graficos
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
>>
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 15/39
Formatação de graficos
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 16/39
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
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
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 19/39
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 20/39
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)
>>
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 22/39
Comando hold
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)
>>
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)
>>
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 25/39
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 26/39
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 27/39
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 28/39
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
>>
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
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
>>
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
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
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)
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
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)
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;
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 38/39
5/14/2018 Aula 1 Matlab - slidepdf.com
http://slidepdf.com/reader/full/aula-1-matlab 39/39