Escolar Documentos
Profissional Documentos
Cultura Documentos
Pgina 1 de 12
Apostila de MatLab
INTRODUO
O que o MATLAB (MATrix LABoratory)?
um ambiente de computao tcnico-cientfico
desenvolvimento de sistemas sofisticados e eficientes.
para
Pgina 2 de 12
Apostila de MatLab
CONTEDO
Variveis .................................................................................................................... 05
Matrizes ...................................................................................................................... 08
Pgina 3 de 12
Apostila de MatLab
Matemtica elementar
Trabalha como se fosse uma calculadora:
>> 4+6+2
ans =
12
>> 4*25 + 6*52 + 2*99
ans =
610
>>
Podemos armazenar os resultados em variveis:
>> borrachas = 4
borrachas =
4
>> blocos = 6;
>> fitas = 2;
>> itens = borrachas + blocos + fitas
itens =
12
>> custo = borrachas*25 + blocos*52 + fitas*99
custo =
610
Pgina 4 de 12
Apostila de MatLab
>>
Operaes Aritmticas Elementares:
Operao
Smbolo
Adio
+
Subtrao
Multiplicao
*
Diviso
/ ou \
Potenciao
^
Exemplo
3 + 22
54.4 - 16.5
3.14 * 6
19.54/7 ou 7\19.54
2^8
Espao de trabalho
Todos os comandos e as variveis criadas na janela de comando esto no Espao de Trabalho do MATLAB.
Para saber quais variveis existem basta usar o comando:
>> fitas
fitas =
2
Para saber quais variveis existem basta usar o comando:
>> who
Your variables are:
ans
custo
blocos
fitas
borrachas itens
>>
Variveis
- As variveis distinguem letras maisculas de minsculas. Ex.: Custo, custo, CuStO e CUSTO.
- No existe limitao no tamanho do nome da varivel, mas o MATLAB apenas considera os primeiros 31
caracteres.
- Os nomes devem comear com uma letra, seguida de um nmero qualquer de letra, algarismos ou sublinhados.
- Caracteres de pontuao no so permitidos.
- No podem ser usadas as palavras-chaves: for, end, if, while, function, return, elseif, case, otherwise, switch,
continue, else, try, catch, global, persistent e break.
Existem as seguintes variveis especiais:
ans
padro usado para resultados
beep o computador emiti um bip
pi
3.14159265...
inf
infinito
nan
valor no-numrico (ex.: 0/0)
i ou j valor para
Tambm existem as variveis: eps, nargin, nargout, realmin, realmax, bitmax, varargin e
vararout.
Caso os valores dessas variveis sejam alterados, o comando clear <varivel> volta ao valor inicial.
Comentrios e Pontuao
Comentrios:
>> fitas = 2;
>>
Vrgula e Ponto-e-Vrgula:
>> borrachas = 6, blocos = 6; fitas = 2
borrachas =
6
Pgina 5 de 12
Apostila de MatLab
fitas =
2
>>
CTRL+C para interromper
Nmeros Complexos
s
>> fitas = 2;
>>
Funes Existentes
Funes Trigonomtricas:
sin, cos, tan, asin, acos, atan, sec, asec, csc,
acsc, ...
Funes Exponenciais:
^, exp, log, log10, log2, pow2, sqrt, nextpow2
Funes Complexas:
abs, angle, conj, imag, real, complex, ...
Funes de Arredondamento e Resto:
fix, floor, ceil, round, mod, rem, sign
Outras Funes:
factor, isprime, besselj, gamma, cross, ...
Ajuda: help <funo>
Vetores Simples
Como calcular y = sen(x) em 0xx pois existem infinitos pontos nesta faixa?
Soluo: escolher um nmero finito de pontos. Estamos fazendo uma amostragem da funo.
>> x = [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x =
Columns 1 through 6
0
0.3142
0.6283
0.9425
1.2566
1.5708
Columns 7 through 11
1.8850
2.1991
2.5133
2.8274
3.1416
>> y = sin(x)
y =
Columns 1 through 6
0
0.3090
0.5878
0.8090
0.9511
1.0000
Pgina 6 de 12
Apostila de MatLab
Columns 7 through 11
0.9511
0.8090
0.5878
>>
0.3090
0.0000
Endereamento Vetorial
Podemos acessar s componentes usando ndices:
>> x(3)
% o terceiro elemento de x
ans =
0.6283
>> y(5)
% o quinto elemento de x
ans =
0.9511
>> x(1:5)
% notao de dois-pontos
ans =
0
0.3142
0.6283
0.9425
>> x(7:end)
% at o fim do vetor
ans =
1.8850
2.1991
2.5133
2.8274
1.2566
3.1416
Construo de Vetores
Como construir vetores grandes?
>> x = (0:0.1:1)*pi
x =
Columns 1 through 6
0
0.3142
0.6283
Columns 7 through 11
1.8850
2.1991
2.5133
>> x = linspace(0,pi,11)
x =
Columns 1 through 6
0
0.3142
0.6283
Columns 7 through 11
1.8850
2.1991
2.5133
0.9425
1.2566
2.8274
3.1416
0.9425
1.2566
2.8274
3.1416
1.5708
1.5708
Pgina 7 de 12
Apostila de MatLab
>>
>> a = (1:7)'
a =
1
2
3
4
5
6
7
>>
Matrizes
>> g = [1 2 3 4;5 6 7 8]
g =
1
2
3
4
5
6
7
8
>> g = [ 1 2 3 4
5 6 7 8
9 10 11 12]
g =
1
2
3
4
5
6
7
8
9
10
11
12
>>
Matemtica Vetor-Escalar
>> g-2
ans =
-1
3
7
>> 2*g/5 +
ans =
1.4000
3.0000
4.6000
>>
0
4
8
1
1
5
9
1.8000
3.4000
5.0000
2
6
10
2.2000
3.8000
5.4000
2.6000
4.2000
5.8000
Matemtica Vetor-Vetor
>> g = [1 2 3 4;5 6 7 8;9 10 11 12];
>> h = [1 1 1 1;2 2 2 2;3 3 3 3];
>> g + h
% soma h e g, elemento por elemento
ans =
2
3
...
>> ans - h
% subtrai h de ans elemento por elemento
ans =
1
2
...
>> 2*g - h
% multiplica g por 2 e subtrai h do resultado
ans =
1
3 ...
>> 2*(g h) % parnteses p/ alterar a ordem das operaes
ans =
0
2 ...
Pgina 8 de 12
Apostila de MatLab
Matrizes Padro
>> ones(3) % matriz 3x3, todos elementos = 1
>> zeros(2,5) % matriz 2x5, todos elementos = 0
>> size(g) % diz as dimenses da matrix
>> ones(size(g))
>> eye(4) % matriz identidade
>> eye(4,2)
>> rand(3) % matriz 3x3 de nmeros aleatrios
>> rand(size(eye(3)))
>> randn(2,5) % n aleatrios com distribuio normal
% mdia zero e varincia igual a um.
>> a = 1:4 % vetor simples
>> diag(a) % coloca elementos na diagonal principal
Pgina 9 de 12
Apostila de MatLab
A = [1 2 3;4 5 6;7 8 9]
A(3,3) = 0 % atribui zero ao elemento L=3, C=3
A(2,6) = 6 % atribui 1 a L=2, C=6, ampliando a matriz
A(:,4) = 4 % atribui 4 para C=4
A(:,4) = [4;4;4] % item ao anterior
A = [1 2 3;4 5 6;7 8 9]
B = A(3:-1:1,1:3) % inverte as linhas
B = A(3:-1:1,:) % dois-pontos indica todas as colunas
C = [A B(:,[1 3])]
B = A(1:2,2:3)
Grfico 2D e 3D
Gerando um grfico das funes seno e cosseno:
>> x = 0:0.1:2*pi; % vetor das ordenadas
>> y = sin(x); % vetor da absissas
>> plot(x,y); % plota o grfico na janela figura 1
>> xlabel('x');
>> ylabel('y');
>> title('Grfico f(x) = sen(x)');
>> legend('sen(x)');
>> figure(2); % segunda janela
>> y1 = cos(x);
>> plot(x,y);
>> xlabel('x');
>> ylabel('y');
>> title('Grfico f(x) = cos(x)');
>> legend('cos(x)');
Pgina 10 de 12
Apostila de MatLab
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
x = -2*pi:0.1:2*pi;
y = x .* cos(2*x);
figure(1);
plot(x,y,'r+');
axis([-pi pi -2 2]);
grid
title('Grfico f(x) = x*cos(2x)')
xlabel('Eixo X')
ylabel('Eixo Y')
legend('x*cos(2x)')
legend('cos(x)');
Programao
Para automatizar as tarefas o MATLAB possui dois recursos:
- Scripts
- Funes
Os scripts permitem a automao de tarefas. Eles utilizam o mesmo espao de variveis.
As funes tambm vo permitir a automao de tarefas, mas durante a sua execuo ter o seu prprio espao
de variveis, alem de aceitar parmetros de entrada e ter uma sada.
Funes importantes:
>> beep % faz o computador emitir um bip
>> disp(varivel) % mostra o contedo da varivel
>> disp('texto') % mostra o texto
>> a = input('texto'); % mostra o texto e l o teclado
% colocando o valor na varivel a
>> echo on % habilita modo de depurao
>> echo off % desabilita modo de depurao
>> pause(n) % suspende a execuo por n segundos
>> waitforbuttonpress % suspende a execuo at que o
% usurio pressione uma tecla
Pgina 11 de 12
Apostila de MatLab
Bibliografia
Hanselman, D.; Littlefield, B.; MATLAB 6 Curso Completo; Prentice Hall; 2003
Matsumoto, . Y.; MATLAB 6.5 Fundamentos de Programao; Editora rica; 2002
Matsumoto, . Y.; Simulink 5 Fundamentos; Editora rica; 2003
Pgina 12 de 12