Você está na página 1de 15

TERCEIRA SEMANA ACADMICA DE SISTEMAS DE INFORMAO.

2 SEMESTRE - 2010

MINICURSO INTRODUO AO MATLAB

PROF.MS GILNETE LEITE DOS SANTOS

PRESIDENTE PRUDENTE 2010

1. INTRODUO
O MATLAB um "software" de alto desempenho destinado a fazer clculos com matrizes (MATrix LABoratory), podendo funcionar como uma calculadora ou como uma linguagem de programao cientfica (FORTRAN, Pascal, C). Entretanto, os comandos do MATLAB so mais prximos da forma como escrevemos expresses algbricas, tornando mais simples o seu uso. Atualmente, o MATLAB definido como um sistema interativo e uma linguagem de programao para computao tcnica e cientfica em geral, integrando a capacidade de fazer clculos, visualizao grfica e programao. O MATLAB pode ser utilizado para: clculos matemticos; desenvolvimento de algoritmos; modelagem, simulao e confeco de prottipos; anlise, simulao e confeco de dados; grficos cientficos e de engenharia; desenvolvimento de aplicaes, incluindo a elaborao de interfaces grficas com o usurio (Tonini ; Schettilo, 2002)

2. Trabalhando com o Matlab


Carregando o MATLAB No gerenciador de programas do Windows, um duplo clique no cone MATLAB carrega o aplicativo. Uma vez inicializado o MATLAB, aparecer na tela uma janela de comandos e o "prompt" padro (>>) exibido na tela. A partir deste ponto, o MATLAB espera um comando (instrues) do usurio. Todo comando deve ser finalizado teclando-se Enter. A figura 1 ilustra a janela de comandos (Command window) do Matlab.

Figura 1: Janela de comandos do Matlab.

Editor de Linhas de Comando As teclas com setas podem ser usadas para se encontrar comandos dados anteriormente, para execuo novamente ou sua reedio. Se voc entrar com seno(p), ao apertar a tecla Enter , o MATLAB responde com uma mensagem de erro: ??? Undefined function or variable seno. Isto acontece porque para se determinar o seno de um ngulo necessrio digitar em ingls o comando sin. Ao invs de reescrever a linha inteira, simplesmente pressione a tecla "seta para cima". O comando errado retorna, e voc pode, ento, mover o cursor para trs usando a tecla "seta para esquerda" ou o ponto de insero com o "mouse" ao lugar apropriado para inserir a letra i (Tonini ; Schettilo, 2002).

rea de Trabalho (Workspace) O Matlab memoriza os comandos entrados na janela de comandos. Os comandos/variveis ficam residentes no espao de trabalho do Matlab, e podem ser chamados sempre que se desejar. O Matlab tambm apresenta alguns comandos os predefinidos importantes que podem auxiliar ou mesmo facilitar o trabalho neste ambiente. Comando whos e whos Estes comandos do as informaes de quais variveis esto armazenadas na rea de trabalho do MATLAB. Por exemplo, as variveis: texto= eu e voc, a=20, quando digitadas na janela de comandos, ficam armazenadas. Ao digitar o comando who aparecer uma lista das variveis armazenadas na rea de trabalho: >> who Your variables are: a texto

O comando whos d informao mais detalhada das variveis correntes mostrando a dimenso de cada uma. Para as variveis listadas anteriormente: >> whos Name a texto Size 1x1 1x9 Bytes 8 18 Class double char Attributes

O valor de qualquer varivel digitada anteriormente pode ser consultado digitando seu nome na janela de comandos do Matlab.

>> a a= 20 Comando clear e clear all As variveis no espao de trabalho podem ser removidas usando o comando clear. Por exemplo, clear a Remove a varivel a enquanto, clear all Remove todas as variveis do espao de trabalho. Comando save e load O comando save usado para gravar as variveis do espao de trabalho em um arquivo (.mat) em disco. O comando load usado para recuperar os dados gravados em um arquivo pelo comando save e coloc-los no espao de trabalho (Tonini ; Schettilo, 2002). Comando clc O comando clc limpa a janela de comandos e coloca o cursor na posio inicial. Comando help No MATLAB, pode-se obter ajuda sobre qualquer comando ou funo. Isto pode ser feito basicamente de trs formas: interativamente atravs do menu de barras, atravs do comando help ou do comando lookfor. Digitando o comando help o MATLAB mostra uma listagem de todos os pacotes disponveis. Ajuda sobre um pacote especfico. A ajuda sobre um comando ou funo especfica obtida com o comando help <tpico>, onde tpico pode ser o nome de um pacote, de um comando ou funo (Tonini ; Schettilo, 2002). Por exemplo: help sum Aparecero as informaes a respeito da funo soma. O comando help a maneira mais simples de se obter auxlio no caso do usurio conhecer o tpico em que ele quer assistncia. O Comando lookfor prov assistncia pela procura atravs de todas as primeiras linhas dos tpicos de auxlio do MATLAB e retornando aquelas que contenham a palavra-chave especificada. O interessante deste comando que a palavra chave no precisa ser um comando do MATLAB. Sua sintaxe

lookfor <palavra-chave>, onde palavra-chave a cadeia de caracteres que ser procurada. Apesar de uma plavra no ser um comando do Matlab, ela encontrada na descrio de comandos. A partir dessa informao, o comando help pode ser usado para exibir informaes a respeito de um comando especfico (Tonini ; Schettilo, 2002).

3. Operaes Bsicas
A tabela (1) mostra as operaes bsicas usuais entre escalares utilizadas no Matlab. Operaes Representao Smbolo Exemplo Adio + 2+4 a+b Subtrao a-b 2-4 Multiplica a*b * 2*3 Diviso direita a/b / 15/3 Potenciao a^2 ^ 3^2 Tabela 1: Operaes aritmticas( Fonte: Adaptado de (Tonini ; Schettilo, 2002) ) As operaes com vetores e escalares so aplicadas a todos os elementos do vetor. Por exemplo, a*2.

4. Expresses Lgicas
Uma expresso lgica uma expresso cujos operadores so lgicos, ou seja, os operadores relacionais servem para comparaes entre valores do mesmo tipo. A tabela (2) ilustra os operadores relacionais utilizados no matlab: Operadores Descrio Maior que Maior e igual a Menor Menor e igual a Igual a Diferente de Tabela 2: Operadores relacionais.

> >= < <= == =~

Vale lembrar que o sinal de (=) significa atribuio de um valor a uma varivel e o sinal (==) inca a igualdade. Os operadores relacionais podem ser usados para comparar vetores de mesmo tamanho ou escalares. O resultado de uma relao ou de uma expresso lgica verdadeiro ou falso. Entretanto, no Matlab o resultado numrico, sendo que 1 significa verdadeiro e 0 significa falso. Por exemplo: Os operadores lgicos permitem a combinao ou negao das relaes lgicas. A tabela (3) mostra as operaes lgicos utilizados no Matlab.

Operadores lgicos Descrio Uso & E Conjuno Ou Disjuno ~ No Negao Tabela 3: Operadores Lgicos. Para criao de variveis, em Matlab, preciso seguir algumas regras: Variveis com letras minsculas e maisculas so diferentes, mesmo que consistam das mesmas letras: TEXTO, Texto, texto so variveis diferentes. As variveis podem consistir de at 19 caracteres: aq23wrtycm9nKkl_wk As variveis devem comear com uma letra e pode ser seguida de letras, Nmeros ou Subscrito: caixa, car22, c_t_a.

O Matlab apresenta agumas variveis predefinidas (especiais). A tabela (4) ilustra alguns exemplos de funes predefinidas do Matlab. Variveis Ans PI Eps Flops Inf NAN ou nan iej Nargin Nargout Realmin Realmax Descrio Exibe os resultados. Nmero 3,14159 Menor nmero tal que adicionado a 1, cria um nmero maior que 1 no computador. Armazena o nmero de operaes em ponto flutuante realizadas Significa infinito No um nmero (0/0) Unidade imaginria (raiz de menos um) Nmero de argumentos de entrada de uma funo Nmero de argumentos de sada de uma funo Menor nmero que o computador pode armazenar. Maior nmero que o computador pode armazenar Tabela 4: Variveis predefinidas no Matlab.

5. Comentrio e pontuaes
Em matlab os comentrios so feitos a partir do smbolo de porcentagem (%). Outros comandos como o ponto e vrgula e os trs pontos tm funes especiais em Matlab. A tabela (5) mostra a funo desses smbolos. Smbolos , ; ... Descrio Separa os comandos em uma mesma linha Usado para suprimir a impresso na tela de comandos. Usado para continuar uma expresso na prxima linha. antecedido de um espao em branco e no final da expresso a ser continuada. Tabela 5: Pontuaes utilizadas em Matlab.

6. Variveis literais
Uma varivel pode conter uma cadeia de caracteres ao invs de um nmero. Esta cadeia de caracteres deve estar limitada por apstrofos (cadeia de caracteres) para ser atribuda a uma varivel literal. Por exemplo, a=' CONCURSO' a= CONCURSO

7. Funes Matemticas
O MATLAB tem uma srie de funes cientficas pr-definidas. Algumas no podem ser alteradas pelo usurio. Outras esto disponveis em uma biblioteca externa distribudas com o programa original (MATLAB TOOLBOX), que so na realidade arquivos com a extenso ".m" criados a partir das funes intrnsecas. A biblioteca externa (MATLAB TOOLBOX) pode ser constantemente atualizada medida que novas aplicaes so desenvolvidas. As funes em Matlab, intrnsecas ou arquivos ".m", podem ser utilizadas apenas no ambiente Matlab. Por exemplo, a funo sqrt(x) utilizada para calcular a raiz quadrada de x. Alm dessa funo existem outras. A tabela (6) mostra outros exemplos de funes predefinidas no Matlab. Abs(x) cos(x) sin(x) tan(x) exp(x) gcd(x,y) Round(x) Valor absoluto de x Coseno de x Seno de x Tangente de x Exponencial de x Maximo divisor comum Arredondamento para o inteiro mais proximo Tabela 6: Funes predefinidas no Matlab.

8. Vetores e Matrizes
O MATLAB permite a manipulao de linhas, colunas, elementos individuais e partes de matrizes. Alm disso, em Matlab permitido a criao de matrizes e vetores especiais. A tabela (7) mostra um exemplo de criao de vetores.

Descrio Cria um vetor A com elementos iniciando em 1 e terminando em 10 com incremento de 1. A= 2: 2:10 Cria um vetor A com elementos iniciando em 2 e terminando em 10 com incremento de 1. A=linspace(a,b,n) Cria um vetor A iniciando em a terminando em b contendo n elementos linearmente espaados. A=logspace(a,b,n) Cria um vetor A iniciando em 10a terminando em 10b contendo n elementos logaritmicamente espaados. A=[2 3 4 5] Cria um vetor linha contendo os elementos especificados zeros(m,n) Cria uma matriz de zeros de ordem de m linhas por n colunas. ones(m,n) Cria uma matriz de uns de ordem de m linhas por n colunas. eye(m,n) Cria uma matriz identidade de ordem de m linhas por n colunas. diag(v) Cria uma matriz quadrada cuja diagonal principal so os elementos de v e os demais elementos todos iguais a zero. Tabela 7: Comandos para criao de vetores.

Comandos A= 2:10

Os elementos de cada linha de uma matriz so separados por espaos em branco ou vrgulas e as colunas separadas por ponto e vrgula, colocando-se colchetes em volta do grupo de elementos que formam a matriz. Por exemplo, >> B=[ 1 2 3; 1 4 8;] B= 1 2 3 1 4 8 Para transformar um vetor linha em um vetor coluna e vice versa usa-se o operador de transposio ( ' ).

9. Endereamento de Vetores
Os elementos de um vetor ou uma matriz podem ser capturados atravs de seus ndices. Por exemplo, seja a matriz B definida anteriormente. B(1,2) e B(1:3) tem como sada: ans 2 (primeira linha segunda coluna) Ans 2 3 (primeira linha)

10. Operaes entre matrizes


As operaes bsicas entre vetores so definidas para vetores de mesmo tamanho. Neste caso, as operaes so aplicadas elemento a elemento. A tabela (8) mostra as operaes usuais entre vetores.

Operaes Forma Algbrica Adio A+B Subtrao A-B Multiplicao AXB Diviso esquerda A/B Diviso Direita A\B Exponenciao AB Tabela 8: Operaes entre vetores. Para matrizes: X = A\B a soluo de A*X = B X = B/A a soluo de X*A = B Elementos das Matrizes

Matlab A+B A-B A.* A./B A. \B A.^B

Um elemento individual da matriz pode ser substitudo por outro valor fazendo: A=[ 1 2 3; 4 5 6] A(2,2)= A(2,3+(1,1) >> A 1 4 2 3

7 6

Utiliza-se os dois pontos no lugar de um subscrito para indicar todos elementos da linha ou coluna. Por exemplo, >> A(1,:) ans 1 2 3 ( primeira linha todas as colunas)

11. Funes
No Matlab existem funes que se aplicam a matrizes. A tabela (9) ilustra exemplos dessas funes: Funes size length sum prod mean min max sort rand Descrio D o nmero de linhas e colunas de uma matriz. D o maior valor entre o nmero de linhas e colunas. Soma dos elementos da matriz. Produto entre os elementos da matriz Mdia aritmtica Menor elemento Maior elemento Ordena em ordem crescente Gera uma matriz de nmeros aleatrios entre 0 e 1 Tabela 9: Funes utilizadas em Matlab.

12. Grficos em Matlab


Grficos em Matlab so ferramentas de visualizao de fcil uso. 12.1 Grficos Bidimensionais A tabela (10) ilustra exemplos de funes para a plotagem de grficos em 2D.

Funes plot Plota linear bar Grfico de barras hist Plota histograma comet Plota em trajetria de cometa Tabela 10: Funes para plotagem de grficos 2D. possvel tambm plotar mltiplas linhas em um nico grfico. Para isso usa-se o comando. Por exemplo, Considere o comando plot (xvalores,yvalores,estilo-opes) em que xvalores pode ser sin(t) e yvalores cos(t) e estilo-opes so as caractersticas das curvas no grfico, ou seja o tipo de linha e a cor. Digite na janela de comandos os comandos: >> x=linspace(0,10*pi,200); >> y=sin(x) >> z=cos(x) >> plot(x,sin(x ), -b, x, cos(x), -r)) Ou >> plot(x,y, -b, x, z, -r))

Aps pressionar a tecla ENTER, ser exibido o grfico da figura (1).


Gfico de teste 1 0.8 0.6 0.4 0.2 E ix o y 0 -0.2 -0.4 -0.6 -0.8 -1

10

15 Eixo x

20

25

30

Figura 1: Grfico exemplo. Existem vrias opes de estilos para plotagem de grficos. A tabela (11) ilustra alguns exemplos.

Cor

linha

Descrio

y (amarelo) m (margenta) c (ciano) r (vermelho) g (verde) b (azul) w (branco) k (preto)

- (slido) -- (tracejado) : (pontinhado) -. (tracejado-potinhado)

+ (sinal de soma) o (cculo) * (asterisco) x (sinal x) . (ponto) ^ (triangulo) s (quadrado) d (diamante)

Tabela 11: Opes de estilo para grficos.

12.2 Grficos Tridimensionais O comando bsico para plotar curva em 3 D o comando plot3(x,y,z,estiloopes). A tabela (12) ilustra alguns comandos para plotagem de grficos em 3D.

Comandos Fill3 Comet3 mesh surf cilinder sphere

Descrio Desenha polgono em 3D Plota em 3D a trajetria de um cometa Plota curvas em perspectiva em 3D (malha). Plota uma superfcie em 3D Gera cilindro Gera esfera Figura 12: Comandos para grficos 3D.

Utilize o comando meshgrid para gerar uma grade de pontos quadrangular. Por exemplo, >> [X,Y]=meshgrid(-5:0.2:5,-5:0.2:5); >>Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); >> mesh(X,Y,Z) >> surf(X,Y,Z)

As sadas para esses comandos esto ilustrada na figura (2)

Gfico de teste

Gfico de teste

10 5 E ix o z 0 -5 -10 5 5 0 Eixo y -5 -5 0 Eixo x E ix o z

10 5 0 -5 -10 5 5 0 Eixo y -5 -5 0 Eixo x

(a) (b) Figura 2: Grficos 3D. (a) mesh(X,Y,Z), (b) surf(X,Y,Z).

12.3 Grficos Mltiplos Para colocar vrios grficos em uma nica figura, sem sobrepor grficos, usa-se o comando subplot. Assim, o comando subplot(m,n,p) dividi a janela em m x n subjanelas, e plota o grfico na sub-janela p. 12.4 Inserindo textos nos grficos

O Matlab possui comandos de fcil utilizao para adicionar informaes em um Grfico. possvel colocar texto nos grficos a partir dos comandos: xlabel(eixo x) legenda do eixo x ylabel(eixo y) legenda do eixo y title(ttulo) ttulo do grfico text(2,6,texto) escreve texto na coordenada (2,6) legend(texto1, texto2, ...) - coloca legenda no grfico gtext insere texto usando o mause grid - coloca linhas de grade

13. Programao - Arquivos .m


Para resolver problemas simples, cmodo e eficiente utilizar o Matlab como se fosse uma calculadora, entrando-se com os comandos diretamente no prompt. Ou seja, cada linha de comando introduzida na Janela de Comandos e processada imediatamente. Entretanto, medida que o nmero de comandos aumenta, ou quando se deseja mudar o valor de uma ou mais variveis e executar novamente os comandos, o melhor utilizar o Matlab como uma linguagem de programao, ou seja, utilizar o Matlab para executar seqncias de comandos armazenadas em arquivos de roteiro (script). Esses arquivos, que contm as declaraes do Matlab so chamados arquivos ".m" ( ou M-files ), como, por exemplo, exemplo1.m. Esses M-files so os programas fontes do Matlab e consistem de seqncias de comandos normais do Matlab, possibilitando incluir outros arquivos ".m" escritos no formato texto (ASCII). Para escrever um programa (ou arquivo .m) no Matlab, selecione File na barra de menu. Dentro do menu File escolha New e selecione M-file. Um editor de textos aberto, onde pode-se escrever os comandos do Matlab. Para editar um arquivo j existente, selecione a opo Open M-File, a partir do menu File. Os arquivos podem, tambm, ser editados fora do Matlab utilizando qualquer editor de texto. % Programa exemplo : %===================================================== % Este programa plota os grficos da figura 2 [X,Y]=meshgrid(-5:0.2:5,-5:0.2:5); % define uma grade retangular para os eixos x ey Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); % Funo a ser plotada mesh(X,Y,Z) % Plota em linhas de perspectiva da funo Z xlabel('Eixo x') % Coloca rtulo no eixo x ylabel('Eixo y') % Coloca rtulo no eixo y zlabel('Eixo z') % Coloca rtulo no eixo z title('Gfico de teste') % Coloca ttulo no grfico

grid % coloca linhas de grade figure % abre uma nova figura surf(X,Y,Z) % plota uma superfcie da funo Z xlabel('Eixo x') % Coloca rtulo no eixo x ylabel('Eixo y') % Coloca rtulo no eixo y zlabel('Eixo z') % % Coloca rtulo no eixo z title('Gfico de teste') % % Coloca ttulo no grfico grid % coloca linhas de grade %====================================== subplot(1,2,1) mesh(X,Y,Z) % plota uma superfcie da funo Z xlabel('Eixo x') % Coloca rtulo no eixo x ylabel('Eixo y') % Coloca rtulo no eixo y zlabel('Eixo z') % % Coloca rtulo no eixo z title('Gfico de teste') % % Coloca ttulo no grfico grid % coloca linhas de grade subplot(1,2,2) surf(X,Y,Z) % plota uma superfcie da funo Z xlabel('Eixo x') % Coloca rtulo no eixo x ylabel('Eixo y') % Coloca rtulo no eixo y zlabel('Eixo z') % % Coloca rtulo no eixo z title('Gfico de teste') % % Coloca ttulo no grfico grid % coloca linhas de grade

Aps concluir o programa, v para File da janela do editor de textos e escolha a opo Save as... Nesta opo do menu, salve o programa com um nome de sua preferncia no seu diretrio de trabalho. Em seguida, volte janela de comandos do Matlab e use o comando cd ou a opo Set Path... do menu File para ir ao diretrio onde

seu programa foi salvo. Em seguida, digite o nome do arquivo (sem a extenso .m) para executar o programa (Tonini ; Schettilo, 2002).

13.1 Funes M-files Por causa da grande utilidade dos M-files, o MATLAB possui diversas funes que tornam os M-files ainda mais interessantes. Input permite a entrada de dados durante a execuo do programa via teclado. Disp (ans) visualiza os resultados sem mostrar os nomes das variveis. Waitforbottonpress faz uma pausa ate que uma tecla do teclado ou do mouse seja pressionada. Close all fecha todas as janelas grficas abertas.

14. Consideraes Finais


Esta apostila teve o objetivo de dar aos participantes do minicurso intitulado Introduo ao Matlab, noes bsicas de programao, bem como a utilizao de funes e comandos mais comuns utilizando no software Matlab. O Matlab uma ferramenta poderosa na rea cientfica, mas tambm de grande utilidade para iniciantes ou mesmo aqueles estudantes que esto usando e vendo o Matlab pela primeira vez. Podendo ser utilizado para os mais diversos.

15.Agradecimentos:
Agradeo aos participantes pelo tempo disponvel e pela participao. Ao coordenador Srgio Brognolo pela e FAPEPE pela oportunidade. Aos alunos que estiveram aqui dando apoio tcnico e didtico.

Bibliografia
Tonini, A. M; Schettino D. N: Matlab para Engenharia (Apostila). Departamento de Cincias Exatas e Tecnologia do Centro Universitrio. Belo Horizonte, 2002. Campos Filho, F. F. "Apostila de Matlab," Departamento de Cincia da Computao, ICEX, UFMG . Grupo PET, "Curso de MATLAB," Engenharia Eltrica UFMS. Disponvel em http://www.del.ufms.br/tutoriais/matlab/apresentacao.htm. Acesso em 18-set-2010. Osrio. P. L. M. Introduo ao uso do Matlab e da toolbox de Sinais (Notas de Aulas). Puc- Rio .2002.

Você também pode gostar