Você está na página 1de 18

INTRODUO AO MATLAB

AUTORES:
Alan Tavares Miranda
Mrcio Portes de Albuquerque
Marcelo Portes de Albuquerque















CBPF-NT-002/2007

2

SUMRIO

1. Introduo .......................................................................................... 4
2. Interface ............................................................................................. 4
3. Operaes mais freqentes ............................................................... 6
4. Grficos 2D........................................................................................ 7
5. Grficos 3D........................................................................................ 7
6. Linhas de Dados ................................................................................ 8
7. Matrizes e Vetores ............................................................................. 9
7.1 Gerao de Vetores......................................................................... ...9
7.2 Gerao de matrizes ...................................................................... 9
7.3 Selecionando elementos de uma matriz ........................................ 9
7.4 Operaes com Matrizes e alguma funes de gerao ............. 10
8. Sistema de equaes lineares ......................................................... 10
9. Funes ........................................................................................... 11
10. Operadores Relacionais................................................................... 12
11. Operadores Lgicos......................................................................... 12
12. Funes teis (any e all)............................................................. 13
13. Polinmios........................................................................................ 13
14. Mximo e Mnimo absolutos de uma funo.................................... 13
15. Controladores de Fluxo (flow control)............................................... 14
16. Variveis Simblicas ........................................................................ 15
16.1 Somatrios ................................................................................... 16
16.2 Algumas Funes de Calculo....................................................... 16
CBPF-NT-002/2007

3
16.3 Algumas funes de simplificao ou modificao de expresses
simblicas.................................................................................................... ... ...16
16.4 Substituindo valores numricos em expresses simblicas......... 16
16.5 Razes de um polinmio............................................................... 16
16.6 Resoluo de sistemas quaisquer................................................ 16
17. Formatao de dados ...................................................................... 17
17.1 PRINT .......................................................................................... 17
17.2 Gravando dados num arquivo : FID,FPRINTF,FCLOSE.............. 17
17.3 Alguns formatos ........................................................................... 18




























CBPF-NT-002/2007

4
1. Introduo
O MATLAB um software destinado a fazer clculos com matrizes. Os
comandos do MATLAB so muito prximos da forma como escrevemos
expresses algbricas, tornando mais simples o seu uso, podendo ser
incorporados s rotinas pr-definidas, pacotes para clculos especficos.
Esta nota tcnica objetiva dar ao leitor uma viso geral do software
MATLAB (Matrix Laboratory) como uma ferramenta matemtica e uma linguagem
de programao de alto nvel, mostrando suas principais funes bsicas como,
por exemplo: construo de grficos e compilao de funes. Algumas
ferramentas um pouco mais avanadas como, por exemplo, funes especficas
de clculo e variveis simblicas tambm sero apresentadas no decorrer desta
nota tcnica.
A grande vantagem que o MATLAB possui em relao outras linguagens
como, por exemplo, o C e o Fortran consiste no fato de que no MATLAB as
informaes so facilmente armazenveis em matrizes o que proporciona uma
fcil e rpida manipulao de uma grande quantidade de informaes. Alm disso,
o MATLAB possui uma grande quantidade de bibliotecas auxiliares (Toolboxes)
que otimizam o tempo gasto para realizar tarefas, uma vez que, o usurio poder
utilizar muitas funes j definidas, poupando o tempo de cri-las.
Por outro lado, infelizmente, os programas feitos so difceis de serem
executados num ambiente fora do MATLAB.Criar um compilador que torne-o
executvel numa plataforma onde no exista o MATLAB no uma tarefa fcil e
geralmente os programas feitos so dependentes comercialmente devido a isso,
uma vez que, junto venda do aplicativo, indiretamente estar a venda do
MATLAB.
A grande idia deste artigo ser um ponto inicial para leitores no
familiarizados com a ferramenta computacional MATLAB e servir de base para o
estudo de outras reas mais especificas como o processamento digital de
imagens.
2. Interface
O primeiro passo para iniciarmos nosso estudo do MATLAB nos
familiarizarmos com a interface do programa.
CBPF-NT-002/2007

5

a) Command Window: Local onde as operaes podem ser diretamente
feitas.
b) Workspace: espao destinado s variveis que esto salvas na
memria, onde possvel visualizar o nome, valor e classe da mesma.
c) Command History: Lista de comandos realizados, organizados por data
de execuo, permitindo o comando ser realizado novamente com duplo
clique.
Caso se deseje criar procedimentos lgicos serem realizados de forma
que estes fiquem salvos em arquivo deveremos fazer uso do editor atravs do
comando edit no command window.
*prompt do editor
CBPF-NT-002/2007

6
Para maiores informaes basta teclar F1 para abrir o help do MATLAB.
3. Operaes mais freqentes
O MATLAB, alm de uma poderosa ferramenta matemtica, uma prtica e
otimizada linguagem de programao. Abaixo temos algumas funes
importantes:
abs(x) Valor absoluto de x.
log(x) logaritmo de x na base e.
loga(x) logaritmo de x na base a.
rem(x,y) resto da diviso de x por y.
eps menor nmero tal que, quando adicionado a 1, cria um nmero maior
que 1 no computador.
* somado a denominadores de fraes para evitar que se tornem zero,
eliminando problemas com restrio.
inf infinito
help descrio de uma funo .
clc- limpa a tela.
whos mostra e descreve as variveis q esto no workspace.
clear remove todas as variveis do workspace.
std(x) desvio padro.
ceil(x) numero inteiro que corresponde ao arredondamento para cima.
floor(x) - numero inteiro que corresponde ao arredondamento para baixo.
fix(x) arredondamento para o inteiro mais prximo de zero.
round(x) arredondamento para o inteiro mais prximo.
format rat nmeros mostrados na forma de frao.
format short - nmeros mostrados com 5 dgitos
format long - nmeros mostrados com 15dgitos.
CBPF-NT-002/2007

7
format compact - mostra separadamente parte inteira e parte decimal.
load abre no MATLAB um arquivo de dados
* Funes so escritas na forma funo(argumentos), onde os argumentos
variam de acordo com a funo, incluindo o uso dos operadores.
4. Grficos 2D
ezplot(x(t),y(t)) - plota funo 2D parametrizada ou nao sem intervalo
definido.
ezplot(x(t),y(t)),[a,b],[b,c]) - funo 2D parametrizada ou no com intervalo
definido.
* A funo deve ser escrita de forma implcita ou explicita no escrevendo,
neste caso, a varivel dependente.
ezpolar(h(t)) - plota grfico em coordenadas polares; precisa de uma nica
funo.
fplot([f(x),g(x)],[a,b]) - plota vrios grficos num nico plano cartesiano.
necessrio especificar um intervalo de domnio.
5. Grficos 3D
ezplot3(x(t),y(t),z(t)) plota curva 3D parametrizada.
ezsurf(f(x,y)) - plot de superfcie
Argumentos opcionais: colorbar escala de cores
shading interp retira linhas
shading faceted retorna as linhas
* Ezsurf tambm pode plotar grfico de funes parametrizadas.
ezsurfc(f(x,y)) - plota grfico e curva de contorno.
ezmesh(f(x,y)) plota grfico da superfcie com linhas.
ezmeshc(f(x,y)) - plota grfico da superfcie com linhas + curva de
contorno.
CBPF-NT-002/2007

8
ezcontour(f(x,y)) - curva de contorno.
surf([matriz]) Utiliza plotagem atravs da informao de uma matriz de
pixels.
6. Linhas de Dados
Sendo x,y,z e w vetores temos :
plot(x,y,x) plota pontos (no sob a forma de grfico)
plot(x,y) - plota grfico dos pontos
plotyy(x,y,z,w) plota grfico tendo-se referencia num eixo coordenado
esquerda e outro a direita.
plot(y) plota um eixo imaginrio e um real de um nmero complexo.
*Se y for funo plot tambm poder ser usado para plotar grficos, porm
devemos estar atentos aos operadores de diviso, multiplicao e exponenciao
para evitar problemas de dimenses da matriz.
*.*- multiplicao elemento por elemento.
./ - diviso elemento por elemento.
.^- exponenciao elemento por elemento.
semilogx escala logartmica no eixo x.
semilogy - escala logartmica no eixo y.
loglog escala logartmica nos eixos x e y.
legend(L1,L2...LN) coloca caixa de legenda.
axis([a,b],[c,d]) estipula os valores mximos e mnimos dos eixos.
axis tight os limites dos eixos so os limites dos dados.
axis auto restaura os limites padres do MATLAB.
hold on deve ser usado na linha de comando de uma plotagem para
manter o grfico plotado anteriormente e colocar um novo no mesmo plano
cartesiano.
figure(n) coloca um novo grfico em um outro plano cartesiano, figura n.
CBPF-NT-002/2007

9
subplot(a,b,c) plota vrios grficos numa mesma figura, sendo a altura, b
largura e c posio do grfico.
7. Matrizes e Vetores
Definio: Vetor um elemento que armazena valores, podendo ser um
vetor linha ou coluna. Matriz um conjunto de vetores especialmente disposto.
7.1 Gerao de Vetores
O operador : indica da onde ate aonde
v=[a:b] gera vetor com valores de a at b espaados de 1.
v2=[a:c:b] - gera vetor com valores de a at b espaados de c.

v3=linspace(a,b,n) gera vetor linearmente espaado de a at b com n
elementos.
7.2 Gerao de matrizes
Sendo a matriz
(
(
(

=
i h g
f e d
c b a
A ,
Para criar a matriz a fazemos: A=[a,b,c;d,e,f;g,h,i]
Transposta de A: TA=[a,b,c;d,e,f;g,h,i]
7.3 Selecionando elementos de uma matriz
Considerando a matriz A selecionamos elementos da seguinte forma:
B=A(i:m;j:n) seleciona elementos da matriz a que estejam da linha i ate a
linha m e da coluna j at a coluna n e armazena em B.
C= A(:;n) seleciona todos os elementos contidos na coluna n e armazena
em C
D=A(m;:) - seleciona todos os elementos da linha m e armazena em D.
E=A(end,end-n) seleciona o elemento que esteja na ltima linha e na
ltima coluna menos n.
CBPF-NT-002/2007

10
v=A(:) dispe os elementos da matriz A em um vetor , coluna em baixo de
coluna.
7.4 Operaes com Matrizes e alguma funes de gerao
A*B multiplica a matriz A pela B.
n*A multiplica a matriz A pelo escalar n.
det(A) determinante de A.
inv(A) inversa de A.
eye(i,j) cria matriz identidade.
zeros(i,j) cria matriz de zeros.
ones(i,j) - cria matriz de uns.
A.*B multiplicao de matrizes elemento por elemento.
randn(i,j) - gera matriz aleatria.
rand(i,j) gera matriz randmica com elementos variando entre 0 e 1.
magic(N) gera matriz quadrada de ordem N de nmeros inteiros que tm
a soma de cada linha, coluna ou diagonal principal iguais.
S=sum(A(:)) soma todos os elementos da matriz A.
S=sum(A(x:y) soma todos os elementos da matriz A indo de x ate y.
* A contagem feita de cima para baixo, da esquerda para a direita pelas
colunas da matriz.
S=sum(A) soma todos os elementos de cada coluna separadamente e os
coloca numa matriz linha.
8. Sistema de eqaes lineares
Sendo

= +
= +
= +
1 3 3
2 4 6 2
1 2
z y x
z y x
z y x
podemos facilmente resolver da seguinte forma:
CBPF-NT-002/2007

11
A=
(
(
(

3 3 1
4 6 2
1 2 1
, b=
(
(
(

1
2
1
e w=
(
(
(

z
y
x

Fazemos w=inv(A)*b ou w=A\b onde w a matriz com as razes.
* Note que o operador \ serve para calcular a inversa de A.
9. Funes
Escrever funes possui grande aplicabilidade caso esta seja utilizada
varias vezes em alguma aplicao.
Escrevendo uma funo
Primeiramente deve-se abrir um M-file (no MATLAB, File New M-file).
No editor utilizamos a funo function para criar uma funo.
Ex.

function[y]=f(x)
Term1=1./x;
Term2= x.^2;
y= term1+term2-6;
* Note que o operador ; usado no fim de uma linha suprime a sada da tela.
* y dado de sada e x dado de entrada.
CBPF-NT-002/2007

12
* no command window podemos chamar essa funo exemplo facilmente
chamando f(n) onde n um valor de x a ser colocado na funo.
Depois de feita a funo devemos salv-la num arquivo de extenso .m.
Outra forma de definirmos uma funo atravs do comando inline
diretamente no command window, da seguinte forma:
z= inline(x+y) , onde a funo estar funcionando na forma z(x,y)=x+y
10. Operadores Relacionais
Smbolo Operador
< Menor que
< = Menor ou igual que
> Maior que
> = Maior ou igual que
= = Igual
~ = No igual
11. Operadores Lgicos
Smbolo Operador
& E
| Ou
~ nao
Expresses do tipo
3+4 = = 7, tero como
resultado 1, pois a
sentena verdadeira.
Caso fosse falsa a
resposta seria 0.
~ inverte uma determinada
condio lgica.
CBPF-NT-002/2007

13
12. Funes teis (any e all)
Para mostrar como us-las vamos observar o exemplo abaixo:
x= [1,2,3,4,5,6]
any(x>5) % algum maior que 5 ?
ans = 1 (sim)
all(x>5) % Todos os valores de x so maiores que 5 ?
ans = 0 (no)
* Observe que o smbolo % utilizado para fazer comentrios, no
interferindo em nada no processamento.
13. Polinmios
Achando razes
1 passo : Escrever os coeficientes do polinmio em forma de vetor
2 passo: Usar o comando roots(p), onde p o vetor coeficiente.
polyval(p,[a,b,c]) calcula o valor do polinmio p nos pontos de abscissa
a,b e c.
conv(p1,p2) multiplica o polinmio p1 pelo p2.
deconv(p1,p2) diviso de polinmios
14. Mximo e Mnimo absolutos de uma funo
xmin=fminbnd(f,a,b) abscissa do ponto de mnima da funo no intervalo
[a,b].
* Deve-se abrir o arquivo salvo e trocar o sinal de todos os termos da
funo para depois aplicar fminbnd caso deseje calcular o ponto mximo.
* No existe a funo fmax, por isso utilizamos o procedimento acima.
fzero(f,p) acha o ponto mais prximo onde a funo muda de sinal tendo
como referencia um ponto p dado.
CBPF-NT-002/2007

14
15. Controladores de Fluxo (flow control)
O MATLAB, alm de uma poderosa ferramenta matemtica, tambm uma
linguagem de programao.Esto listados abaixo algumas estruturas lgicas
utilizadas.
A sintaxe do IF
if teste
..........
elseif
..........
else
..........
end
* O elseif e o else no so obrigatrios, mas o end .
A sintaxe do FOR
for ...varivel=vetor

end
* O valor de varivel recebe o contedo de cada coluna de vetor
seqencialmente e, para cada contedo que receba, executa o corpo do FOR.
A sintaxe do WHILE simples;
while....teste,

end
* Onde teste uma condio lgica que restringe o processo.
INPUT
usado para insero interativa de dados, sua sintaxe a seguinte.
f=input('escrever qual dado de entrada:');
O MATLAB tambm possui outros recursos para facilitar o controle do fluxo
do algoritmo :
Break determina uma sada imediata de uma estrutura
Continue interrompe o fluxo do programa e recomea um loop
CBPF-NT-002/2007

15
switchcase parecido com o IF, mas significa mais uma alternncia.
um teste para mltiplos casos.
return causa a sada imediata de uma funo.
EXEMPLO

16. Variveis Simblicas
O MATLAB usa objetos simblicos para representarem variveis e
expresses. Uma expresso simblica e uma expresso que contem objetos
simblicos e um objeto simblico uma estrutura de dados do tipo cadeia de
caracteres (string).
Os objetos simblicos podem ser criados atravs das funes sym e syms
da seguinte forma:
v=sym(expresso) cria uma varivel simblica para representar a
expresso.
syms x,y,z,..... cria as variveis simblicas x, y, z....
double(x) retorna o valor numrico da expresso simblica x com dupla
preciso.
CBPF-NT-002/2007

16
* Depois de criar uma varivel simblica, esta poder ser usada em
operaes da mesma forma que as variveis numricas.
16.1 Somatrios
symsum(f,x,a,b) retorna
b
a
x f ) (

16.2 Algumas Funes de Calculo
limit(f,x,a) retorna o limite de f(x) quando x a
limit(f,x,a,right`) - retorna o limite de f(x) quando x a
+
limit(f,x,a,left`) - retorna o limite de f(x) quando x a
-
diff(f,x,n) retorna a n-sima derivada de f(x)
* A funo diff tambm opera em matrizes.
16.3 Algumas funes de simplificao ou modificao de expresses
simblicas
simple(p) simplifica uma expresso simblica p.
expand(P) expande todos os termos de p.
factor(p) tenta representar p como produto de polinmios.
16.4 Substituindo valores numricos em expresses simblicas
g=subs(f,'a') substitui um valor a na expresso simblica f.
f1=eval(g) transforma a expresso simblica g numa expresso numrica
f1.
16.5 Razes de um polinmio
1 passo - definir varivel simblica. Ex. syms x
2 paso - definir uma varivel qualquer para a expresso simblica. Ex. p1
3 passo- usar solve(p1)
16.6 Resoluo de sistemas quaisquer
CBPF-NT-002/2007

17
Utiliza os mesmos passos da obteno das razes de um polinmio.As
diferenas esto em definir-se como simblica todas as variveis das equaes e
escrever solve(e1,e2,e3....en)
* O processamento simblico muito mais preciso que o processamento
numrico, porque as operaes com valores nmeros produzem erros de
arredondamento e que vo se acumulando em operaes sucessivas, enquanto
que as expresses simblicas no geram esses erros, pois no efetuam clculo
numrico.
* Os erros de arredondamento ocorrem, pois a cada operao que gera um
valor com nmero de casas maior que o estabelecido, ocorrer arredondamento
ou truncamento caso as operaes sejam feitas normalmente, porm se forem
feitas com variveis simblicas, o mesmo no ocorrer, uma vez que, as
operaes sero acumuladas e feitas ao fim do processamento, se assim for
desejado, fazendo que ocorra apenas uma perda de preciso.
17. Formatao de dados
17.1 PRINT
Para gravar um dado diretamente sob forma de arquivo usamos o comando
print :
cd destino , print(nome,dextensao do arquivo)
* Usamos o comando print para enviar para arquivo dados j formatados,
como por exemplo, grficos.
* Se escrevermos print sozinho e tiver algum grfico na memria, este ser
enviado para a impressora diretamente.
17.2 Gravando dados num arquivo : FID,FPRINTF,FCLOSE
1 passo: Criao do identificador de arquivo fid - .
fid=fopen(nome do arquivo.extenso, modalidade)
*modalidade: w para gravao; r para leitura.
* na modalidade de gravao, se o arquivo no existir, ele ser criado.
* consultar o manual do MATLAB para obter outras modalidades.
2 passo: Determinao de formato fprintf
fprintf(fid, formato,dados)
CBPF-NT-002/2007

18

17.3 Alguns formatos
Especificao Descrio
%c caractere nico
%d notao decimal
%e notao exponencial
%s caractere string

* /n pula linha
* para obter outros formatos consultar um manual de C.
3 passo : fechar identificador de arquivo
fclose(fid) fecha um identificador de arquivo.
fclose(all) fecha todos os identificadores abertos.
EXEMPLO

O arquivo de sada estar disposto da seguinte maneira
0.00 1.00000000
0.10 1.10517092..

Você também pode gostar