03 - matlab

Upload: diana-nogueira

Post on 30-May-2018

268 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 03 - Matlab

    1/25

    Matlab - Manual para a Disc iplina deDesenho Assistido por Computador

    M E S T R A D O I N T E G R A D O E M E N G . E L E C T R O T C N I C A E D E C O M P U T A D O R E S

    Departamento de Engenharia Electrotcnica2009

  • 8/9/2019 03 - Matlab

    2/25

  • 8/9/2019 03 - Matlab

    3/25

    3

    ndice

    1 In t roduo 5 1.1 rea de Trabalho 5 1.2 Bib l io tecas do Mat lab 5 1.3 Comandos Bs icos de Mat lab 6

    2 Tipos de dados em Mat lab 7 2.1 Matr izes 7 2.2 Constant es do Mat lab 9 2.3 Var ive is do Mat lab 9 2.4 Exemplos 9

    3 Programao em Mat lab 11 3.1 Expresses 11 3.2 Operaes Bsica s Sobre Matr izes 11 3.3 Controlo da Sequncia do Programa 12 3.4 Funes E lementares 15 3.5 Exemplo 16

    4 Ficheiros 17 4.1 O Edi tor do Mat lab 17 4.2

    Guardar Var iveis em Ficheiros 18

    4.3 Ler Var iveis de F icheiros 18

    5 Visual izao de Dados 19 5.1 Grf icos a Duas Dimenses 19 5.2 Grf icos a Trs Dimenses 20

    6 Bibl iograf ia 25

  • 8/9/2019 03 - Matlab

    4/25

  • 8/9/2019 03 - Matlab

    5/25

    5

    1 IntroduoDe acordo com os seus autores, o Matlab (deMATrix LABoratory ) uma linguagem de altodesempenho para computao tcnica, sendo vocacionado para aplicaes to diversas comoprogramao, desenvolvimento de algoritmos, aquisio de dados, modelizao, simulao,prototipagem, anlise de dados, e desenvolvimento de interfaces grficas, entre outras.

    De facto, o Matlab uma ferramenta poderosa no mbito da Engenharia Electrotcnica, maisconcretamente na sua vertente de Desenho Assistido por Computador, englobando umambiente de desenvolvimento, vastas bibliotecas de funes matemticas, uma linguagem deprogramao de alto nvel, e extensas possibilidades a nvel grfico.

    O presente manual pretende servir apenas de breve introduo a esta ferramenta, estandodisponvel na internet uma completssima bibliografia (www.mathworks.com) para quem desejeou necessite de tirar partido das inmeras possibilidades que oferece o Matlab.

    Existem, principalmente a partir da sua verso 6, vrias formas de aceder a certos comandos oufunes do Matlab, seja atravs de cones, seja atravs de menus. Deixa-se contudo ao leitor atarefa de explorar este aspecto.

    1.1 rea de Trabalho

    A rea de trabalho parte constituinte do ambiente de desenvolvimento, assim como a linha decomandos, e contm as variveis criadas durante a sesso de Matlab. Para se visualizar todasestas variveis, deve-se introduzir na linha de comando:

    >> who

    Este comando mostra todas as variveis criadas pelo utilizador, pelo que no incio de uma sessono retornar nada, uma vez que nenhuma foi ainda criada. Note-se que os caracteres >>indicam o incio da linha de comando (prompt), no constituindo parte do comando em si. Poresta razo, e visando evitar equvocos, deste ponto em diante esses caracteres sero omitidos.

    A janela onde se encontra a linha de comandos chamada a janela de comandos (commandwindow). O Matlab permite aceder ao historial de comandos introduzidos atravs das setas cima ebaixo. Para se ir directamente para um comando j introduzido, pode-se escrever a sua primeiraletra e ento carregar na tecla cima.

    1.2 Bibliotecas do Matlab

    O Matlab apresenta uma srie de comandos, operadores e funes primitivas, organizadas porcategorias, assim como rotinas especficas de diversas reas da engenharia, organizadas embibliotecas (toolboxes ). Estas categorias e bibliotecas so designadas por tpicos primrios. Ocomando

    help

    permite visualizar todos estes tpicos, que correspondem a directorias do Matlab.

    Alguns tpicos primrios so:

    general comandos gerais

  • 8/9/2019 03 - Matlab

    6/25

    6

    ops operadores e caracteres especiais

    control biblioteca de sistemas de controlo

    daq biblioteca de aquisio de dados

    signal biblioteca de processamento de sinais

    nnet biblioteca de redes neuronais

    pde biblioteca de equaes s diferenas parciais

    optim biblioteca de optimizao

    stats biblioteca de estatstica

    Outras bibliotecas abrangem campos to variados como aquisio e processamento de imagem,

    bio-informtica, telecomunicaes, finanas, lgica difusa, matemtica simblica, identificaode sistemas e realidade virtual.

    O comando

    help item

    fornece informao especfica acerca de item. Se este for um tpico primrio, ento visualizar--se-o os contedos do tpico, se for um comando, ento ser mostrada informao detalhadasobre este.

    1.3 Comandos Bsicos de Matlab

    Alguns comandos bsicos de Matlab so

    clear apaga todas as variveis do espao de trabalho

    clc limpa a janela de comandos

    ver informao sobre a verso de Matlab utilizada

    demo permite visualizar demonstraes do Matlab

    O operador percentagem, %, permite inserir comentrios aps comandos do Matlab. Tudo o queesteja direita desse operador ser ignorado.

  • 8/9/2019 03 - Matlab

    7/25

    7

    2 Tipos de dados em Matlab2.1 Matrizes

    Em Matlab os dados so armazenados essencialmente como matrizes. Desta forma, pode-se

    pensar em alguns casos particulares, nomeadamente as matrizes 1x1 escalares ou asformadas s por uma linha ou uma coluna vectores. Alguns exemplos de matrizes so:

    MatrizA, 2x3:

    075

    134A

    Escalar b, ou matriz 1x1: 0,5b

    Matriz linha c, 1x4: 8243c

    Existem vrias formas de especificar matrizes, para que se possa, posteriormente, manipul-las.Pode-se introduzir todos os valores dos seus membros, l-las a partir de ficheiros, ou cri-lasatravs de funes, sejam estas do Matlab sejam definidas pelo utilizador.

    Para introduzir explicitamente a matriz A anteriormente definida, devem-se usar parntesisrectos a delimitar os seus elementos. Estes sero separados por espaos dentro da mesmalinha, sendo estas finalizadas por ponto e vrgula. Ou seja, na linha de comando do Matlabintroduzir-se-ia:

    A=[4 3 1; 5 7 0];

    O ponto e vrgula no final da instruo impede que o Matlab mostre os dados introduzidos.

    Caso no se coloque, seria visualizado o seguinte:

    A =

    4 3 1

    5 7 0

    2.1.1 Matrizes Elementares

    O Matlab tem definidas algumas funes que criam matrizes elementares (tpico elmat,matrizes elementares e manipulao de matrizes).

    Existem, por exemplo:

    zeros: cria uma matriz em que todos os elementos so nulos. As possveis formas so

    zeros(N): matriz NxN de zeros

    zeros(N,M): matriz NxM de zeros

    ones: cria uma matriz em que todos os elementos so a unidade. Admite as mesmas formasda funo zeros.

  • 8/9/2019 03 - Matlab

    8/25

    8

    eye: matriz identidade

    eye(N): matriz identidade NxN

    eye(N,M): matriz NxM, com 1 na diagonal e 0 nos outros elementos

    2.1.2 Acesso a Elementos Individuais numa Matriz

    Para aceder ao elemento da linha i, colunaj, basta simplesmente introduzir o comando A(i,j).Assim, com A(1,2)e A(2,3) obter-se-ia, respectivamente, 3 e 0.

    Caso se queira aceder a um elemento fora das dimenses da matriz, o resultado ser umamensagem de erro. Por outro lado, se se definir um novo elemento, numa posio que exceda asdimenses da matriz, ento esta ser redimensionada, por forma a incluir esse novo elemento,sendo as novas posies preenchidas com 0. Por exemplo, fazendo A(3,5)=5, resulta em:

    A =

    4 3 1 0 0

    5 7 0 0 0

    0 0 0 0 5

    2.1.3 O Operador :

    O operador : (dois pontos) tem uma funo muito abrangente em Matlab. Por exemplo, ainstruo

    d = 1:10

    cria uma matriz d, linha, em que os seus elementos so

    1 2 3 4 5 6 7 8 9 10

    Para se obter um espaamento no unitrio entre elementos, por exemplo 0,1, desde 1 at 2,deve-se fazer:

    d = 1:0.1:2

    obtendo-se

    1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00

    Note-se que as casas decimais so separadas por um ponto. O operador : tambm pode serutilizado para aceder a pores de uma matriz. Se se quisesse obter a primeira linha da matriz A,aps a redefinio do ponto anterior, far-se-ia:

    A(1,:)

    obtendo-se

    4 3 1 0 0

    Para se obter a poro entre a segunda e quarta colunas, na segunda linha, o comando seria:

  • 8/9/2019 03 - Matlab

    9/25

    9

    A(2,2:4)

    e o resultado

    7 0 0

    2.2 Constantes do Matlab

    O Matlab fornece algumas constantes muito teis, nomeadamente:

    pi : 3.14159265358979

    i : unidade imaginria, 1

    j : o mesmo que i

    eps : preciso relativa da vrgula flutuante, isto , a distncia de 1 ao prximo decimal

    realmin : menor nmero decimal definido

    realmax : maior nmero decimal definido

    Inf : infinito, valor que gerado aps uma diviso por zero ou numa operao queexcede realmax

    NaN :Not-a-number, valor gerado quando se tenta calcular 0/0ou Inf/Inf

    2.3 Variveis do Matlab

    O Matlab cria automaticamente a varivel ans (de ANSwer ), que guarda o valor da ltimaexpresso calculada, quando este no tiver sido atribudo a nenhuma outra varivel.

    2.4 Exemplos

    Apresentam-se a seguir alguns exemplos de aplicao dos conceitos estudados.

    Criao de um vect or teta c om valores entre 0 e 2*, em intervalos de /4

    teta=0:pi/4:2*pi

    Definio do complex o 5+j9

    5+9j ou 5+9i

    Criao de uma matr iz de 5x6 c om -6 em t odos os elementos

    -6*ones(5,6)

  • 8/9/2019 03 - Matlab

    10/25

  • 8/9/2019 03 - Matlab

    11/25

    11

    3 Programao em MatlabA programao em Matlab simultaneamente simples e poderosa. Abrange diversos aspectos(Simulink, Graphical User Interfaces), mas aqui ser apenas referida a programao atravs da linhade comando.

    3.1 Expresses

    As expresses em Matlab podem envolver matrizes inteiras, ao invs de obrigar a trabalharapenas elemento a elemento, como acontece em muitas linguagens de programao.

    3.1.1 Variveis

    As variveis em Matlab no necessitam de ser explicitamente declaradas, pois, como se viuanteriormente, so geralmente do tipo matriz (de reais e/ou complexos). O seu nome forma-secom uma letra, seguida de um qualquer nmero de letras, dgitos ou travesso inferior(underscore). feita a distino entre maisculas e minsculas.

    3.1.2 Nmeros

    Os nmeros podem ser introduzidos como inteiros (apenas dgitos), como negativos (com umsinal de menos a preced-los), como decimais (com um ponto a separar a parte inteira da partefraccionria), como complexos (seguidos de i ou j ), ou em notao cientfica (em que aspotncias de 10 se indicam com a letra e). Assim, pode-se ter, por exemplo:

    2546 -465.003 4.643 87i 343.54j 1.5e-5

    3.1.3 Operadores Aritmtic os

    Os operadores aritmticos, definidos com as precedncias habituais, so a soma (+), a subtraco(-), a multiplicao (*), a diviso (/), e a potenciao ().

    3.2 Operaes Bsicas Sobre Matrizes

    Ao contrrio de outras linguagens de programao, o Matlab permite realizar operaes sobrematrizes inteiras com comandos simples.

    Transposta

    A transposta da matriz A obtm-se pelo operador apstrofe. Assim, para a matriz anteriormente

    definida, o comandoA'

    tem como resultado

    4 5 0

    3 7 0

    1 0 0

    0 0 0

    0 0 5

  • 8/9/2019 03 - Matlab

    12/25

    12

    Inversa

    A inversa dada pela funo inv. Se H for uma matriz quadrada (note-se que no se podeminverter matrizes no quadradas) de determinante no nulo, ento

    inv(H)

    fornece a matriz que multiplicada esquerda ou direita por H resulta na matriz identidade.Note-se que a diviso de duas matrizes quadradas da mesma dimenso, por exemplo H/G,corresponde expresso H*inv(G).

    Determinante

    O determinante da matriz quadrada H dado por

    det(H)

    Dimenso

    A dimenso da matriz A obtm-se atravs de

    size(H)

    A resposta ser o nmero de linhas e de colunas.

    Operadores

    Os operadores que podem ser aplicados a matrizes incluem, alm da adio, subtraco,multiplicao e diviso, a multiplicao elemento a elemento (.*), a diviso elemento a elemento

    (./ ), e a potenciao elemento a elemento (. ). Por exemplo, a multiplicao elemento aelemento significa que o resultado de

    Z=X.*Y

    ser uma matriz Z, em que cada elemento Z(i,j) dado por

    Z(i,j)=X(i,j)*Y(i,j)

    e no pela regra habitual de multiplicao de matrizes, que equivaleria expresso

    Z=X*Y

    3.3 Controlo da Sequncia do Programa

    O Matlab apresenta diversos comandos para controlar a sequncia dos programas, como porexemplo os ciclos forou o teste de condies if.

    3.3.1 Ciclos

    Os ciclos permitem repetir instrues um nmero pr-determinado de vezes, ou at que umacondio se verifique.

  • 8/9/2019 03 - Matlab

    13/25

    13

    Ciclo for

    Este ciclo consiste em atribuir um valor inicial a uma varivel, executar instrues especificadas,e incrementar a varivel, ou de 1, por defeito, ou de um passo determinado. Isto repete-se atque seja atingido ou ultrapassado um valor final permitido. O ciclo termina com a instruoend

    ., e a sua sintaxe :for varivel = valor_inicial : [passo :] valor_final,

    {instrues}

    end

    Como referido, caso o passo no seja especificado, ter, por defeito, valor unitrio.

    Por exemplo, para preencher um vector p de dez elementos com uma sequncia de potncias de2 (no esquecer que a posio genrica i do vector p se acede atravs de p(i) ), poder-se-ia

    fazer:for i = 1 : 10,

    p(i) = 2^(i-1);

    end

    O vector p seria assim constitudo por:

    1 2 4 8 16 32 64 128 256 512

    Para construir um vector de 100 elementos representando dois perodos de uma sinuside, ter-se-ia, por exemplo:

    wt = 0 : 4*pi/99 : 4*pi % cria um vector de 100 pontos

    % equidistantes, de 0 a 4*pi

    for i = 1 : 100,

    s(i) = sin(wt(i)); % a funo sin devolve o seno do argumento

    end

    Note-se que este exemplo pretende ser apenas meramente ilustrativo do funcionamento do ciclofor, j que o vector s poderia ter sido criado, de forma mais compacta, atravs de:

    s = sin(wt)

    O vector s est representado na Figura 3-1.

    Comandos Relacionados

    Outros comandos relacionados com ciclos, que se deixa a cargo do leitor a tarefa de descortinaro seu funcionamento, so os comandos while, continue, e break.

  • 8/9/2019 03 - Matlab

    14/25

    14

    0 2 4 6 8 10 121

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Figura 3-1: Sinal sinusoidal

    3.3.2 Testes Lgicos

    Os testes lgicos consistem na avaliao do valor ou estado de expresses, e na execuo deinstrues conforme esse valor ou estado.

    Teste if

    O teste if avalia uma expresso e executa um grupo de instrues se essa for verdadeira. Asinstrues a executar se a expresso tiver valor lgico falso podem opcionalmente ser definidasatravs do comando else. O comando end termina o teste, cuja sintaxe :

    if expresso

    {instrues_se_expresso_verdadeira}

    else

    {instrues_se_expresso_falsa}

    end

    Por exemplo, para o vector s anteriormente definido, se se quisesse definir a sinuside s nossemi-ciclos positivos, e nos negativos for-la a zero (sinuside simplesmente rectificada), a suadefinio passaria a ser, por exemplo:

    for i=1:100,

    a=sin(wt(i)); % variavel auxiliar

    if a>0 % testa se o valor calculado e positivo

    s(i)=a;

    else % caso em que o valor e menor ou igual a 0

    s(i)=0;

    end

    end

  • 8/9/2019 03 - Matlab

    15/25

    15

    0 2 4 6 8 10 121

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Figura 3-2: Sinuside simplesmente rectificada

    A sinuside simplesmente rectificada est representado na Figura 3-2.Comandos Relacionados

    switch

    3.4 Funes Element ares

    O Matlab tem definidas vrias funes elementares no tpico elfun (de ELementary FUNctions),de que a seguir se referem alguns exemplos.

    Funes Trigonomtr ic as

    sin(X) seno, em radianos, dos elementos da matrizX

    cos(X) coseno, em radianos, dos elementos da matriz X

    tan(X) tangente, em radianos, dos elementos da matriz X

    Exponenciais e Logaritm os

    exp(X) exponencial dos elementos da matriz X; se X for uma matriz decomplexos, X=A+jB, ento retorna exp(A)*(COS(B)+i*SIN(B))

    log(X) logaritmo natural dos elementos da matriz X

    log10(X) logaritmo de base 10 dos elementos da matriz X

    sqrt(X) raiz quadrada dos elementos da matriz X

    Outras Funes

    abs(X) valor absoluto dos elementos da matriz X;se X for uma matriz decomplexos, ento retorna a magnitude ou mdulo dos elementosde X

    angle(X) fase, em radianos, dos elementos da matriz de complexos X

  • 8/9/2019 03 - Matlab

    16/25

    16

    real(X) parte real dos elementos da matriz de complexos X

    imag(X) parte imaginria dos elementos da matriz de complexos X

    3.5 Exemplo

    Sero agora apresentados um conjunto de instrues que permitem criar as funes

    t

    t

    t

    ety

    ety

    tety

    3

    2

    1 cos

    Estas funes, como ter oportunidade de verificar noutras disciplinas do curso, estointimamente ligadas com a resposta de circuitos elctricos com uma resistncia, uma bobina eum condensador (circuitos RLC).

    t=0:0.1/999:0.1 % cria vector de tempo, com 1000 elementos

    tau=0.02; w=2*pi*50; % variveis auxiliares tau e w

    for i=1:1000,

    y1(i)=exp(-t(i)/tau)*cos(w*t(i));

    y2(i)=exp(-t(i)/tau);

    y3(i)=-exp(-t(i)/tau);

    end

    As funes obtidas esto representadas na Figura 3-3.

    Figura 3-3: Funes representando a resposta de um circuito RLC

    2

    3

    1

  • 8/9/2019 03 - Matlab

    17/25

    17

    4 Ficheiros A utilizao e gesto de ficheiros em Matlab apresenta aspectos muito importantes. Aprogramao atravs da linha de comandos pode-se tornar exasperante, pois um simples enganonum carcter pode tornar inteis os comandos anteriormente introduzidos, se se estiver, por

    exemplo, a meio de um ciclo. Este problema ultrapassado se os comandos forem gravadosnum ficheiro, e este corrido a partir do Matlab. Por outro lado, os valores de determinadas variveis de interesse, ou de todo o espao de trabalho, podem ser guardadas e utilizadasposteriormente.

    4.1 O Editor do Matlab

    O editor do Matlab permite no s a criao de ficheiros com cdigo de programao, mastambm correr os programas e fazer a sua depurao (debug).

    Um ficheiro de Matlab criado atravs do comando edit. Este comando, por si s, abre um

    editor, onde se pode escrever um programa, para posterior utilizao. O comandoedit nome

    abre o ficheiro nome.m para ser editado. Para correr um programa gravado num ficheiro, bastaintroduzir na linha de comando o seu nome, neste caso:

    nome

    Note-se que necessrio que a directoria de trabalho coincida com aquela onde est o ficheiro(ou que esta esteja indicada napath). Na Figura 4-1 apresenta-se o editor do Matlab aberto paraum ficheiro existente.

    Figura 4-1: Editor do Matlab

  • 8/9/2019 03 - Matlab

    18/25

    18

    4.1.1 Gesto de Directorias

    Para se saber qual a directoria de trabalho, introduz-se

    cd

    Este comando permite ainda as seguintes possibilidades:

    cd .. muda para a directoria (ou pasta, ou folder ) imediatamente acima;repare que deve sempre existir um espao entre o comando cd equalquer opo a seguir

    cd direct muda para a subdirectoria direct, que se encontra dentro dadirectoria de trabalho actual

    cd \ muda para a directoria raiz (root)

    cd d: muda para o disco dSe a directoria incluir caracteres especiais (espaos, acentos, etc.), ento dever ser usada aseguinte forma, por exemplo para a pasta Os meus documentos:

    cd(\windows\Os meus documentos)

    Para listar os ficheiros da directoria de trabalho, utiliza-se o comando dir. Por exemplo, ocomando

    dir *.m

    lista apenas os ficheiros cuja extenso seja m.4.2 Guardar Variveis em Ficheiros

    As variveis do ambiente de trabalho podem ser gravadas atravs da funo save (e lidasposteriormente com load). Existem assim as seguintes opes:

    save nome grava todas as variveis para o ficheiro nome.mat

    save nome X grava a varivel X no ficheiro nome.mat

    save nome X Y Z grava as variveis X, Y e Z no ficheiro nome.mat

    4.3 Ler Variveis de Ficheiros

    Como foi referido acima, a recuperao de variveis a partir de ficheiros faz-se com a funoload:

    load nome recupera todas as variveis gravadas no ficheiro nome.mat

    load nome X recupera apenas a varivel X, gravada no ficheiro nome.mat

    load nome X Y Z recupera as variveis X, Y e Z, gravadas no ficheiro nome.mat

  • 8/9/2019 03 - Matlab

    19/25

    19

    5 Visualizao de DadosUm dos pontos fortes do Matlab a facilidade de visualizao grfica de dados, tanto em duascomo em trs dimenses. Estes grficos so visualizados numa janela independente, designadafigura (figure), como a representada na Figura 5-1, correspondendo ao exemplo da Seco 3.5.Como se pode observar, existem vrios cones e menus, que permitem aceder a diversas opessobre o aspecto e escalas do grfico, ou mesmo grav-lo sob diferentes formatos.

    Figura 5-1: Janela de visualizao de grficos

    5.1 Grficos a Duas Dimenses

    O comando que permite visualizar grficos a duas dimenses, com escalas lineares, o comando

    plot. Este apresenta diferentes possibilidades:plot(X,Y) desenha o grfico cujas abcissas so os elementos do vector Xe as

    ordenadas os elementos do vectorY

    plot(X) desenha o grfico cujas abcissas so os elementos do vector Xe asordenadas os seus ndices

    plot(X,Y,X,Z) desenha o grfico cujas abcissas so os elementos do vector Xe asordenadas os elementos do vectorYe os do vectorY

    O comando plot permite ainda especificar a cor de cada curva desenhada, mas esta tarefa podeser acedida directamente a partir da janela do grfico, pelo que no ser por ora explanada.

    Visualizao de Curvas no Mesmo Sistema de Eixos

    Como referido, atravs de plot(X,Y,X,Z,X,) podem-se desenhar inmeros grficos tendoeixos comuns, dados pelo vector X. Note-se que todos os vectores envolvidos tmobrigatoriamente de apresentar a mesma dimenso.

    Visualizao de Curvas em Diferentes Sistem as de Eixos

    Para se visualizar em simultneo vrios grficos na mesma janela, utiliza-se o comando subplot.

    Este divide a janela numa matriz NxM, ao mesmo tempo que acede posio em que sepretende desenhar o respectivo grfico. Voltando ao exemplo da Seco 3.5, suponha-se que se

  • 8/9/2019 03 - Matlab

    20/25

    20

    pretendia desenhar, separadamente, os grficos dos sinaisy1,y2 ey3, e um grfico conjunto dessesmesmos sinais. Antes de mais, a sintaxe do comando subplot :

    subplot(N,M,i) divide a janela em Nlinhas e Mcolunas, e activa a i-sima posiopara desenhar o grfico; as posies contam-se da esquerda para a

    direita e de cima para baixoNote-se que o comando subplot deve preceder um plot, que efectivamente desenhar osgrficos. Continuando com o exemplo, os comandos seriam:

    subplot(2,2,1) % selecciona a primeira posio da matriz 2x2

    plot(t,y1) % desenha a curva y1 na posio seleccionada

    subplot(2,2,2) % selecciona a segunda posio

    plot(t,y2)

    subplot(2,2,3) % selecciona a terceira posio

    plot(t,y3)

    subplot(2,2,4) % selecciona a quarta posio

    plot(t,y1,t,y2,t,y3)

    O resultado destas instrues a janela representada na Figura 5-2.

    Altera o das Propriedades dos Grficos

    As propriedades dos grficos (espessura e cor das linhas, ttulo, texto, escalas, fontes e dimensodo texto, tipo de eixos, etc.) podem ser alteradas, quer atravs de comandos, querinteractivamente. S esta ltima forma ser aqui sumariamente descrita.

    Para se poder alterar as propriedades do grfico, deve-se primeiro entrar em modo de edio(edit mode ). Isso feito activando o cone respectivo, representado na Figura 5-3. Aps estaoperao, basta clicar duas vezes na curva (estilo, espessura, cor) ou nos eixos (ttulo, legendados eixos, limites, tipo de grfico). Podem ainda ser inseridos texto, setas e segmentos, atravsdos cones respectivos, tambm representados na Figura 5-3.

    5.2 Grficos a Trs Dimenses

    O Matlab permite a visualizao de superfcies e de funes de duas variveis, f(x,y)z , ouseja, de grficos tridimensionais. Isto pode ser feito atravs das funes mesh (superfcieformada por segmentos unindo pontos adjacentes, geralmente conhecida por wire-frame surface)ou surf (superfcie formada por polgonos facetados unindo pontos adjacentes).

    Se Z(i,j) for uma matriz em que cada elemento corresponde altura de uma superfcie sobreuma grelha (i,j), ento os comandos seguintes permitiro visualizar essa superfcie:

    mesh(z)

    surf(z)

  • 8/9/2019 03 - Matlab

    21/25

    21

    Figura 5-2: Comando subplot

    Figura 5-3: Alterao das propriedades de uma figura

    A visualizao de funes f(x,y)z implica adicionalmente a definio dos domnios, isto ,das matrizes X e Y, alm da matriz Z correspondente. Para tal, pode-se recorrer funo

    [X,Y] = MESHGRID(dx,dy)

    que cria as matrizes X e Y, correspondentes aos vectores domnio dx e dy, adequadas a seremutilizadas pelas funes mesh e surf. Se os domnios forem iguais, pode-se utilizar a forma maiscompacta

    [X,Y] = MESHGRID(d)

    A utilizao destas funes ser mais facilmente descrita atravs de um exemplo. Assim, admita-se que se pretendia visualizar a funo

    22

    22sin,sinc

    yx

    yxyxz

    com domnios entre -10 e 10, tanto em x como em y. Uma forma possvel de o fazer seria:

    Modo de edio

    Inserir texto

    Inserir setas

    Inserir segmentos

  • 8/9/2019 03 - Matlab

    22/25

    22

    d=-10:.5:10; % definicao do dominio, isto e, um vector de -10 a

    % 10, com um passo de 0.5

    [X,Y]=meshgrid(d); % definicao das matrizes que serao utilizadas para

    % construir a funcao z=sinc(x,y)

    R=sqrt(X.^2+Y. 2)+eps; % definicao de uma matriz auxiliar. Note-se a

    % potenciacao tem que ser feita elemento a

    % elemento. A constante do Matlab eps foi

    % adicionada apenas para evitar a multiplicacao

    % por zero, no passo seguinte, e evitar uma

    % mensagem de aviso.

    Z=sin(R)./R; % definicao da matriz Z

    Uma vez definidas as matrizes X, Y e Z, introduzir-se-iam os comandos mesh(X,Y,Z) ousurf(X,Y,Z), consoante o tipo de superfcie pretendida. O resultado destes comandos pode-seobservar nas Figura 5-4 e Figura 5-5.

    Altera o das Propriedades dos Grficos

    O modo de edio permite alterar inmeras propriedades da superfcie, como sejam aluminosidade, cor das faces e dos segmentos, vista, perspectiva, etc. Deixa-se ao leitor a tarefa deexplorar essas possibilidades, representando-se na Figura 5-6 um exemplo de alterao daspropriedades da superfcie anteriormente definida.

    Figura 5-4: Exemplo da funo mesh

  • 8/9/2019 03 - Matlab

    23/25

    23

    Figura 5-5: Exemplo da funo surf

    Figura 5-6: Alterao das propriedades de uma superfcie

  • 8/9/2019 03 - Matlab

    24/25

  • 8/9/2019 03 - Matlab

    25/25

    6 BibliografiaAdicionalmente sumria introduo ao Matlab apresentada neste manual, encontra-se, como jreferido, uma extensa bibliografia em www.mathworks.com, no formato pdf, da qual sedestacam:

    Geting Started with MATLAB, Version 6.

    Using MATLAB Graphics, Version 6.