Você está na página 1de 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'.

>> 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 =

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. - Pontuaes na programao: , : a virgula separa os comando em uma mesma linha. >> sin(0),cos(0) ans = 0

ans = 1

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

ans = 1

ans = 12

; O ponto e virgula no apresenta na tela a impresso do resultado (no 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

ans = 5 65 >>

>> format short >> cos(pi/4) ans = 0.7071 >> format long >> cos(pi/4) ans = 0.707106781186548 >>

Criao de variveis: Pode ser realizada com letras (a, b, c, d, ...), nmeros (1,2, 3, ...) ou utilizando o handerline ( - ) porem: Letras: podem iniciar ou terminar uma varivel independente da posio na varivel; Numeros: somente aps o primeiro caracter: a1bada ou aa332 Handerline: somente no meio da varivel, nunca pode estar no inicio ou no final

>> pi=2 pi = 2 >> pi pi = 2

>> clear pi >> pi ans = 3.141592653589793

- Menor passo possvel: eps o menor valor que pode ser atribudo 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 (==) Criao de vetores: >> x=1:10 x= 1

9 10

>> y=1:0.1:2 y= Columns 1 through 6

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

Criao de vetores >> x=[1;2;3] x= 1 2 3 >> x=[1 2 3; 4 4 6] x= 1 4 2 4 3 6

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

x= 1 2 3 >> x>1 ans =

0 falso 1 verdadeiro 1 verdadeiro

Comando syms: define smbolos

>> 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 grficos

>> y=[1 1 1] definio dos coefeciente do polinmio y= 1 1 1

>> polyval(y,1) ans = 3 >> y=[2 1 1 1] y= 2 1 1 1

>> polyval(y,1) ans = 5

>> y=[1 2 3 ; 4 5 6; 7 8 9] definio de uma matriz 3 x 3 y= 1 4 7 2 5 8 3 6 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 >> >> m=[1 2 3; 4 5 6; 7 8 9] define uma matriz m= 1 4 7 2 5 8 3 6 9 2 3

>> interp1(m(:,1) ,m(:,2),3) ir fazer uma interpolao 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 >>

>> 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 0 0 0

>> calendar Jul 2011 S M Tu W Th 0 0 0 0 0 1 3 4 5 6 7 8 10 11 12 13 14 17 18 19 20 21 24 25 26 27 28 31 0 0 0 0 0 >>

F 2 9 15 22 29 0

16 23 30

>> date ans = 21-Jul-2011 >> clock ans = 1.0e+003 * 2.0110 0.0070 0.0210 0.0110 0.0590 0.0419

>> format rat >> clock ans = 2011 7 21 12 1 8964/509

>> calendar(2030,11) Nov 2030 S M Tu W Th F 0 0 0 3 4 5 10 11 12 17 18 19 24 25 26 0 0 0

S 0 6 13 20 27 0

0 7 14 21 28 0

1 8 15 22 29 0

2 9 16 23 30 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 14 15 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 aleatrio no repete >> rand(1) ans = 0.9595 >> floor(100*rand(1))

ans = 65 Criao de graficos

>> 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.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.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 >> 0 0.0100 0.0400 0.0900 0.1600 0 0.1000 0.2000 0.3000 0.4000

Formatao de graficos

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

Plotando grficos para duas funes com cores diferente

y3=1./x; >> subplot(2,2,1) a area de plotagem do grafico ter duas linhas e com duas colunas na localizao 1 >> plot(x,y) >> subplot(2,2,2) o grafico ficar localizado na posio 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) >>

Comando hold

>> syms x >> y=x^2; >> y y= x^2

>> ezplot(y) >>

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

>> ezplot(y) >>

>> hold on >> ezplot(y) >> ezplot(sin(x)) >> hold off >> figure (1) >> hold on >> ezplot(sin(x)) >> ezplot(cos(x)) >> hold off >> figure (1) >>

MODULO 3 E 4
MODULO 3: PROGRAMAO DE SCRIPT Programa que verifica os nmeros impares menores que o numero fornecido pelo usurio
%Este programa calcula e demonstra os numeros impares a partir de um numero %fornecido na tela diretamente clc; x=input('fornea 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 diviso 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

Criao de um vetor de 1 linha e 5 colunas >> v=zeros(1,5) v= 0

>> v=ones(1,5) v= 1 >>


%Este programa calcula e demonstra os numeros impares a partir de um numero %fornecido na tela diretamente clc; x=input('fornea 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 diviso 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

fornea um numero: 10 1 3 5 7 9 >>

%Este programa calcula e demonstra os numeros impares a partir de um numero %fornecido na tela diretamente clc; x=input('fornea 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

fornea um numero: 10 2 4 6 8 10 >>

CRIAO DE FUNES Permite criar funes e armazen-las na memria para posterior utilizao em outros programas. Exemplo: >> impares(10) ??? Attempt to execute SCRIPT Impares as a function: C:\Users\Otavio\Documents\MATLAB\Impares.m Esta funo no existe. Ento precisamos cri-la. Uma funo no um programa (script) ela uma chamada para execuo. Barra de tarefas: File => new => function

Nesta funo, o varivel de entrada o x e a varivel de sada o v. No existe entrada de varivel dentro de funo. >> 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 diviso 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

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

>> 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 >> Exerccios: Criar 6 funes para transformar temperaturas de Celsius para Faranaid, etc... Transformar Kelvin para Celsius Celsius para Faranait Faranait Tabela de converso 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) Reviso do MDULO 2 Mtodo do Newton para clculo de razes de uma funo
clc; x=input('fornea 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

9 11 13 15 17 19

disp(['Total de iteraes: ',num2str(n)]);%o colchete transforma o conteudo de n em string(texto)

fornea o chute inicial: 2 n= 0

x= 1.9129

x= 1.8895

x= 1.8834

x= 1.8818 Total de iteraes: 4

clc; x=input('fornea 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 iteraes: ',num2str(n)]);%o colchete transforma o conteudo de n em string(texto)

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 GRFICAS

% --- 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. Poderia ser usada strig t=get(handles.tempo,'string'); t=str2double(t); su=get(handles.listbox1,'Value');%==>value indica a posio da medida no listbox. Ex. 1 metro, 2 centrimetro tu=get(handles.listbox2,'Value'); if su==2 %se unidade de espao igual a posio "2" (cm) s=cm2m(s); %A variavel "s" recebe o resultado da funo cm2m end if su==3%se unidade de espao do listbox1 igual a posio "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 posio 2 (min) t=min2s(t); %a variavel "t" recebe o resultado da funo min2s end if tu==3 t=h2s(t); end v=s/t; v=num2str(v); %==>converte a variavel "v" em texto para apresentar na tela set(handles.velocidade,'string',v)

%Inicio das funes para converso das unidades function s = cm2m(e) %"e" indica apenas que uma entrada e o "s" a saida s = e/100; function s = km2m(e) s = e*1000; function s = ft2m(e) s = e/3.2808; %ft a unidade de ps

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;

Você também pode gostar