OPENCADDFUNDAMENTOS I n t e r f a c e M a t l a b ®D e s k t o p • M a n ip u l a ç ã o In t r o d u ç ã o  à  P r o g r a m a ç ã o • T ratam ento  G r á f ic o s • D e s e n v o l v im e n t o  2a EDIÇÃO  Exemplos do livro, respostas dos exercícios e apêndice, complementar disponíveis na INTERNET.  ao  M a t r iz e s  A r q u iv o s  d e In t e r f a c e s  F u n ç õ e s E s p e c ia l iz a d a s • I n t r o d u ç ã o  ÉLIA YATHIE M A T S U O  de  de  de  D ados  G r á f ic a s  S y m b o l ic M a th T o o l b o x  MATLAB® 7 Fundamentos  EDITORA AFILIADA  Seja Nosso Parceiro no Com bate à Cópia Ilegal A c ó pia ilegal é crim e. A o efetuá-la, o in fra to r estará com e te n d o um grave erro, que é inibir a produção de obras literárias, p rejudicando p rofissionais que serão atingidos pelo crim e praticado. Junte-se a nós nesta corrente co n tra a pirataria. D iga não à cópia ilegal.  Seu Cadastro É Muito Im portante para Nós A o preencher e rem eter a fich a de c a d a stro co n sta n te no final desta publicação, você passará a receber inform ações sobre nossos lançam entos em sua área de preferência. C onhecendo m elhor nossos leitores e su a s preferências, vam os produzir títu lo s que a te n  dam suas necessidades. O brigado pela sua escolha.  Fale Conosco! E ventuais problem as referentes ao conteúdo deste livro serão enca m in h a d o s ao(s) respectivo(s) a utor(es) para e sclarecim ento, excetuando-se as dúvidas que dizem respeito a pacotes de softw ares, as quais su gerim os que sejam encam inhadas aos distribuidores e revendedores desses produtos, que e stão habilitados a prestar todos os esclarecim entos. O s problem as só podem se r enviados por: 1.  E -m ail: producao @ erica .co m .b r  2.  Fax: (11) 6 197 .4060  3.  C arta: R ua S ão G il, 159 - Tatuapé - C E P 0 3 4 0 1-030 - S ão P aulo - SP  INVISTA EM VOCÊ.  MATLAB® 7- Fundamentos  Élia Yathie Matsumoto  MATLAB® 7 F u n d a m e n to s  E ditora Érica Ltda. 2006 - 2a E dição  C onselh o Editorial: D iretor Editorial: D iretor C om ercial: D iretor de P ublicidade: Capa: Editoração: R evisão G ram atical: R evisão de D iagram ação: C oordenação e R evisão:  A nto n io M arco V icari C ipelli P aulo R oberto A lves W a ld ir Jo ã o S andrini M aurício S. de França É rica R egina Pagano P edro P aulo V ieira H erruzo D irce Y ukie Y am am oto R osana Ap. A lves dos S antos R osana A rru d a da S ilva  C o p y rig h t © 2004 da E ditora Érica Ltda. Da d o s In ternacionais de C atalogação na P ublicação (C IP) (C âm ara B rasileira do Livro, S P, B rasil) M atsum oto, É lia Y athie MATLAB® 7: Fu ndam entos / Élia Y athie M atsum oto. — 1. ed. — S ão Paulo: É rica, 2004.  B ibliografia. IS BN 85-365-0032-8  1. C álculo num érico - P rogram as de com putador. 2. M A TLAB . I. Título. 04-4725  C D D -5 19.40285  Índices para catálogo sistem ático 1. M A TLAB : C álculo num érico: P rogram as: P rocessam ento de dados 5 1 9 .40285 T o d o s os d ireitos reservado s. P roibida a reprodução total ou parcial, por q u a lquer m eio ou processo, e specialm ente por sistem as gráficos, m icro fílm icos, fotográficos, reprográficos, fonográficos, videográficos, internet, e-books. V edada a m em orização e/ou re cu p e ra  ção total ou parcial em q ua lq u e r s iste m a de p rocessam ento de dados e a inclusão de qualquer parte da obra em qua lq u e r program a ju s c ib e rnético. E ssas proibições aplicam -se tam bém às características gráficas da obra e à sua editoração. A vio la çã o dos direitos autorais é punível com o crim e (art. 184 e parágrafos, do C ódigo Penal, conform e Lei n² 10.695, de 0 7 .0 1.2003) com pena de reclusão, de dois a quatro anos, e m ulta, c o n ju n ta  m ente com busca e apreensão e indenizações diversas (artigos 102, 103 parágrafo único, 104, 105, 106 e 107 itens 1, 2 e 3 da Lei n2 9 .6 10, de 19/06/98, Lei dos D ireitos A utorais). A A utora e a E ditora acreditam que todas as inform ações aqui apresentadas estão corretas e podem ser utilizadas para q u a lquer fim legal. E ntretanto, não existe q u a lquer garantia, e xplícita ou im plícita, de que o uso de ta is inform ações conduzirá sem pre ao resultado desejado. O s nom es de sites e em presas, porventura m encionados, foram utilizados a penas para ilustrar os exem plos, não ten d o vínculo nenhum com o livro, não g arantindo a sua existência nem divulgação. E ventuais erratas estarão disponíveis no site da E ditora É rica para dow nload.  E ditora É rica Ltda. Rua S ão G il, 159 - T atuapé C EP: 0 3 4 0 1-030 - S ão Paulo - SP Fone: (11) 2295-3066 - Fax: ( 11) 6 197-4060 w w w .ed ito raerica .co m .b r  4  MATLAB® 7-Fundamentos  Fabricante Produto: MATLAB® 7 (Release 14)  Desenvolvedor: The MathWorks, Inc. e-mail: 
[email protected] site: www.mathworks.com  Distribuidor no Brasil: Opencadd Advanced Technology Av. Brig. Faria Lima, 1931 - Cj. 42 - 4o andar São Paulo - SP - 01452-001 Tel/Fax: (1 1 )1 816-7864 e-mail: 
[email protected] www.opencadd.com .br  Sobre o Material Disponível na Internet O material disponível no site da Editora Érica contém todos os arquivos de exemplos e exercícios apresentados no livro, as respostas dos exercícios propostos no Apêndice A e um apêndice complementar contendo um resumo das novidades do CD Release 14. Para utilizar este material, é necessário ter o software MATLAB® 7 corretamente instalado em seu equipamento e o Adobe Acrobat Reader 3 ou versão mais recente. MATLAB7_A.exe - 1 .08 M B MATLAB7_B.exe - 2.00 MB  Procedimento para Download Acesse o site da Editora Érica Ltda.: www.editoraerica.com.br. A transferência dos arquivos disponíveis pode ser feita de duas formas: ♦  Por meio do módulo pesquisa. Localize o livro desejado, digitando palavrasc haves (nome do livro ou do autor). Aparecerão os dados do livro e os arquivos para download, então dê um clique sobre o primeiro arquivo executável que será transferido. Repita o procedimento para o segundo arquivo.  ♦  Por meio do botão "Download". Na página principal do site, clique no item "Download". Será exibido um campo, no qual devem ser digitadas palavras-chaves (nome do livro ou do autor). Serão exibidos o nome do livro e os arquivos para download. Dê um clique sobre o primeiro arquivo executável que será transferido. Repita o procedimento para o segundo arquivo.  Procedimento para Descompactação Primeiro passo: após ter transferido os arquivos, verifique o diretório em que se encontram e dê um duplo-clique sobre eles. Será exibida uma tela do programa WINZIP SELF-EXTRACTO R que conduzirá você ao processo de descompactação. Abaixo do Unzip To Folder, existe um campo que indica o destino dos arquivos que serão copiados para o disco rígido do seu computador. C:\MATLAB7 Fundamentos Segundo passo: prossiga com a instalação, clicando no botão Unzip, o qual se encarrega de descompactar os arquivos. Logo abaixo dessa tela, aparece a barra de status a qual monitora o processo para que você acompanhe. Após o término, outra tela de informação surgirá, indicando que os arquivos foram descompactados com sucesso e estão no diretório criado. Para sair dessa tela, clique no botão O K. Para finalizar o programa WINZIP SELF-EXTRACTOR, clique no botão Close.  MATLAB® 7 - Fundamentos    ♦  no caso de licenças individuais: porta USB para instalação do dispositivo de proteção (hardware lock)  ♦  no caso de licenças em rede: TCP/IP com acesso ao equipamento servidor da rede no qual o programa de gerenciamento de licenças FLEXIm deve estar correta e adequadamente instalado. Para este ambiente.0 GB  Espaço livre para execução  1.  ♦  mouse ou outro dispositivo de entrada.24.  ♦  unidade de CD-ROM (4x ou superior).Requisitos de Hardware e de Software Este livro foi escrito com base na versão MATLAB® 7 para ambiente Windows XP. os requisitos básicos são: ♦  microcomputador com processador: Pentium III. ou 32 bits.0 GB  3.5 GB (instalação com documentação completa)  Memória RAM  256 MB  1. espaço livre em disco para execução podem variar de acordo com o tipo de instalação e necessidade de desempenho: Requisito  Mínimo Necessário  Recomendável  Espaço em disco para instalação  1.  ♦  impressora ou outro dispositivo de saída gráfica. M AMD Athlon -  Athlon XP/MP  ♦  monitor de vídeo gráfico (1 6 . IV.  Os requisitos de espaço em disco para instalação.  ♦  unidade multimídia. memória RAM. Xeon.0 GB  Sistema operacional para plataforma Windows ♦  Windows XP  ♦  Windows 2000 (Service Pack 3 ou 4)  ♦  Windows NT 4. OpenGL recomendável).0 GB (instalação sem documentação)  1.0 (Service Pack 5 ou 6 a)  . 3.2 (Panther)  Power Mac G4 / G5  MATLAB® 7-Fundamentos  . Athlon  glibc (glibc6 ) 2. AMD.9  SPARC ULTRA  HP-UX 11.0 (Release 14)  ♦  Symbolic Math Toolbox 3.0  Linux 2.0 (ou superior).Software ♦  MATLAB® 7. Athlon  Mac OS X 10.4. AMD.5  Pentium.  ♦  Microsoft Office 2000/XP.1 (Release 14)  Aplicativos adicionais ♦  Internet Browser (ex.NET).x  Pentium.  ♦  Adobe Acrobat Reader 3.  Outras plataformas suportadas pelo MATLAB® 7 Sistema Operacional  Processador  Sun Solaris 2.0/11i  PA-RISC 2.8 /2 .  ♦  Compilador C/C++ (ex. Netscape).: Internet Explorer.2.: Microsoft Visual . "  Oração da Manhã São Francisco de Assis  .. e que eu seja tão bondoso e alegre que todos quantos se aconcheguem a mim sintam a Tua presença.Dedicatória Para Gabriel e Yasmin.  ".. 5 Fundamentos de Programação (2002)  ♦  Simulink® 5 Fundamentos (2003)  ♦  AutoCAD® 2004 Fundamentos (2004)  . É autora dos seguintes livros. com extensão universitária em Capacitação Gerencial na FIA/ USP.Sobre a Autora Élia Yathie Matsumoto. é sócia-diretora da Opencadd Advanced Technology. publicados pela Editora Érica: ♦  AutoCAD® R14 Fundamentos (1997)  ♦  AutoLISP® Linguagem de Programação do AutoCAD (1998)  ♦  AutoCAD® 14 em Português (1999)  ♦  AutoCAD® 2000 Fundamentos (2000)  ♦  MATLAB® 6 Fundamentos (2001)  ♦  AutoCAD® 2002 Fundamentos (2001)  ♦  AutoLISP® 2002 Linguagem de Programação do AutoCAD (2001)  ♦  MATLAB® 6. bacharel em Ciência da Computação pelo Instituto de Matemática e Estatística da Universidade de São Paulo. na qual coordena a área de tecnologia e treinamento desde 1990.  BankBoston. É quase obrigatório que elas estejam comprometidas com a melhoria dos processos de produção para reduzir impactos ambientais negativos e garantir um crescimento auto-sustentável. treinamentos empresariais e até em escolas de segundo grau. Citibank. No caso do mercado financeiro. bem como nos departamentos de engenharia e desenvolvimento das principais empresas do país. objetivo e didático. Nas universidades e faculdades. que possibilite a rápida capacitação de estudantes e profissionais para utilização do MATLAB® 7. e-mail. professores e estudantes desesperam-se com a composição dos currículos escolares. Neste contexto. o estabelecimento de uma infra-estrutura eficiente e acessível de intercomunicação mundial (Internet. Petrobrás. ITA. podendo ser utilizado como material de apoio de cursos em vários níveis de ensino (técnico. engenharia ou linguagem de programação. Na verdade.. ou seja. o MATLAB® é tido como produto líder na área de computação numérica e científica. todos acabamos tendo que enfrentar o grande desafio de resolver questões complexas aparentemente insolúveis. Preparamos este livro para ser um material introdutório..Prefácio "O mundo anda tão complicado e hoje eu quero fazer tudo . não temos a pretensão de ensinar teorias e conceitos básicos de matemática. O tempo disponível para os cursos parece ser sempre insuficiente para cobrir todos os assuntos gerados pelo acelerado crescimento da produção de informação e inovação tecnológica.) permitiu o surgimento de sofisticados produtos financeiros tão difíceis de serem entendidos quanto de terem seu risco gerenciado. adotado como ferramenta padrão de desenvolvimento pelas principais universidades e empresas. Desta forma. já não é suficiente que as indústrias produzam com eficiência e busquem inovações. Federais. PUCs). UNICAMP. Nas áreas técnicas. contando com mais de 1 milhão de usuários no mundo. comunicação wireless. esses conhecimentos são pré-requisitos fundamentais para o completo aproveitamento do conteúdo apresentado. No Brasil. a busca de soluções para esses problemas demanda estudo e pesquisa que podem ser extremamente beneficiados com a adoção de ferramentas computacionais adequadas. tais como: Embraer. UnB." Renato Russo  Hoje.  . o este software está presente em todas universidades de primeira linha (por exemplo: USP. O escopo do livro é a utilização dos recursos do MATLAB®. Banco Itaú. Banco Central do Brasil. superior ou pós-graduação). etc. UNESP.  Esperamos que este trabalho acelere os "primeiros passos" de usuários novatos. principalmente para os iniciantes. desde automação e controle industrial. passando por gerenciamento de risco financeiro. e facilite os "passos de transição" para o MATLAB® 7 de usuários veteranos. até pesquisas avançadas em biotecnologia e bioinformática. Todos os exemplos utilizados no livro e as respostas dos exercícios estão disponíveis no site da Editora Érica para download. engenheiros e profissionais de tecnologia de informação como ambiente de trabalho básico para criação. Como informação complementar. aplicativo do MATLAB® dedicado à matemática simbólica. foi lançado o CD "Release 14" com as novas versões dos produtos da The MathWorks (empresa desenvolvedora do MATLAB®): MATLAB® 7.  MATLAB® 7. o livro contém um capítulo de introdução ao uso do Symbolic Math Toolbox.Para facilitar a leitura e compreensão dos assuntos. cientistas. sem muito rigor formal. pesquisadores. lançada comercialmente em 1984. análise e simulação de modelos matemáticos aplicados às mais diversas áreas. procuramos utilizar uma linguagem simples e acessível. professores. sem contudo comprometer a precisão técnica das informações. Em junho de 2004. 12 novos produtos e 17 atualizações. de tal forma que todos possam rapidamente aproveitar as vantagens oferecidas por esta nova versão.Fundamentos  . o MATLAB® vem sendo utilizado por estudantes. Simulink® 6. Desde a sua primeira versão.  sem dúvida. na Internet.Descreve o ambiente interativo do MATLAB® 7 na plataforma PC/Windows XP.  ♦  poderosa linguagem de programação de alto nível e de codificação simples. que gerenciam objetos gráficos.Expõe os principais comandos e as principais funções da linguagem de programação do software. Pode ser utilizado como um manual de consulta e referência. otimização. com suas sintaxes mais típicas. Capítulo 2: Conceitos .Apresenta os recursos gráficos do MATLAB® 7 e as funções Handle Graphics®. mais simples. Este capítulo não precisa. Além disso. Capítulo 3: Programação . ser lido do início ao fim. necessariamente.Apresentação O objetivo deste livro é capacitar o leitor para utilização do MATLAB® 7 na implementação de soluções neste ambiente. exercícios práticos e tutoriais. os m-files desenvolvidos para resolver problemas em áreas específicas.  ♦  sofisticados recursos de geração de gráficos para visualização e análise de dados. Este livro está organizado em sete capítulos: Capítulo 1: Introdução . para que o leitor possa praticar os exercícios ao longo da leitura. totalizando mais de 70 títulos.Mostra como desenvolver implementação de interface com usuário utilizando as funções de caixa de diálogo predefinidas e os recursos do GUIDE. desenvolve e comercializa bibliotecas de rotinas MATLAB® (m-files). denominadas 'Toolbox'. estudantes e profissionais em instituições acadêmicas e centros de pesqui sa ao redor do mundo costumam disponibilizar.  Programar em MATLAB® é.  ♦  interface de troca de dados com sistemas externos. Capítulo 6: Criação de Interface Gráfica com Usuário . É recomendável que a leitura deste capítulo seja feita com o programa aberto e em execução.  . Capítulo 4: Leitura e Gravação de Arquivos . VBA ou Fortran.Descreve as principais funções de leitura e gravação de arquivos de vários tipos de formatos. aplicadas a áreas específicas como estatística.Apresenta os principais conceitos de utilização do MATLAB® 7 por meio de exemplos. Tanto que a própria The Mathworks. que integra: ♦  biblioteca de funções matemáticas extremamente eficiente em processamento numérico baseado em matrizes. Capítulo 5: Gráficos e Handle Graphics® . rápido e eficiente do que em qualquer outra linguagem de programação convencional como C/C++. com o apoio de empresas e consultorias especializadas. redes neurais. controle. finanças.  estão disponíveis todos os arquivos de exemplos e exercícios apresentados no livro..Capítulo 7: Introdução Symbolic Math Toolbox .  Convenções Utilizadas no Livro ♦  Nomenclaturas e Expressões Estrangeiras  Optamos por não traduzir nomenclaturas e expressões estrangeiras. Nestes casos.] do menu pop-up [F ile ]-------►  ♦  Linhas de comando do MATLAB®  São delimitadas por um retângulo e grafadas com fonte Courier.. Além disso. as respostas dos exercícios propostos no Apêndice A e um apêndice complementar contendo um resumo das novidades do CD Release 14. Exemplo:  MATLAB® 7-Fundamentos  . aplicativo do MATLAB® para matemática simbólica. as palavras são grafadas em itálico.  ♦  Opções de menus e caixas de diálogo  São grafadas entre [ ]. Exemplo: menu pop-up. Exemplo:  ♦  Linhas de programa do editor do MATLAB® (Edit)  São delimitadas por um retângulo de fio duplo e grafadas com fonte Courier. workspace.Faz uma introdução ao uso do Symbolic Math Toolbox. Possui também um apêndice com exercícios propostos. prompt. no site da Editora Érica. online help. Exemplo: Opção [Set Path. ...............................2........................................7................. Leitura e Armazenamento de Dados..............................19 Capítulo 2.................6.............8....................................... Funções Matriciais Elem entares.......................................................................................................................... 38 2................................................63 2........................... int ro d u çã o ................................1.....................7.3........................................................................... C o n c e ito s ....................... Indexação de Elementos de M atrizes.....................................................3...................74 2............72 2..................................... 25 2......................................................68 2...................1......................................25 2....45 2..... Estrutura (Struct ) .........4...................................... O Que É MATLAB® 7 ...7...................................2...............44 2.................................2..3..........................1......................8.......... G ráficos.........3........... Vetores Seqüenciais.............. 31 2........62 2 ................................................... Números.....3......5.................................8.....................................7...................................... Operadores e Funções.................... Vetores e M atrizes............. 54 2............ Outros Tipos de O bjetos......................................................... Manipulação de Matrizes................................................................................................. Programação no MATLAB® 7 ..................................................................................................2............. Elementos de Programação do MATLAB® 7 ............ 45 2.3......................................................................................................................... Depuração de Programas: Debug Mode......................................... Gráfico Tridimensional... O peradores..........................................................60 2......................... Arquivo MAT ....................................8.......4...........53 2 ........... 42 2...................... Outros Tipos de Dados Numéricos...............3........................................... Editor de Programas: edit....................... 69 2....................................................... 50 2.... Arquivo MS-Excel ...................... Matriz de Células (Cell Array)..............................47 2............4..............1..3.............................................26 2.4. 62 2.........6................4..........3...1.4.......................6..........................4...........................................................................................4........75  ................2...............................................7......4........................................................................ Arquivo ASCII......... Funções................................................................3....... 31 2...........35 2................ Cadeia de Caracteres (String)...............................................1. Gráfico Bidimensional...........6...........................5........................49 2..3..............................2...........Índice Analítico Capítu lo 1............................................................. 37 2....................8................ Utilitário de Importação de Dados.............................. 70 2..........67 2....... Matriz Tridim ensional................................................ Analisador de Sintaxe de Programas:M -Lint................. 46 2................. .............1.........................................2........................................................... .............................. Métodos Numéricos Não-lineares....................................5.........................4................................1........2.................. Álgebra Linear......................3.............. Matrizes Esparsas................1.........................6.......................................................................99 3.4...............245  MATLAB® 7 ............................2.......2....................................................................97 3............ Arquivos de Formatos Específicos...........................4......... MATLAB® Desktop................................................. 118 3............... Estatística de Execução de Programa... Leitura e Gravação de A rq u iv o s .. 164 3.....................4...........3..................................................................................... Utilitários de Abertura e Gravação de Arquivos... 239 4... Arquivos de Im agem.....................3............................1............ Funções de Entrada/Saída de 'baixo nível1................. 2 13 Capítulo 4....... M-file s ..1...................................... 2 19 4 ..5...............................................XLS e *...........2.............................175 3...........................4..9...........2..............................................................3.......................123 3..... Ambiente MATLAB® 7 ..86 Capítulo 3.................236 4.......2..........2..8................3......................... Fluxo de Programação.....2.......... Operações Matemáticas no MATLAB® 7 ............................................. 233 4.................2. 221 4.............................................................................................................233 4. Utilitários e Arquivos Especiais.......199 3...................................................... 207 3.............................. Dados de Animação................3................................2 ................................ 226 4 ...98 3................. Polinôm io s ................. Construção de Nome de A rquivo............. 121 3.........9................................................. 181 3.......................... Programação...................... Vetores e M atrizes...4.............................................5............................84 2 .................................2........ 121 3...........................................4....... Criação de Interface Gráfica com Usuário.......................... Arquivos ASCII........................................155 3................................. 147 3................................................. .............242 4................................4............................1.......Fundamentos  ...... 138 3...................8.........1.................................................................2...... Planilhas *.......4..165 3................................................2......3................................. Arquivos de Áudio......................... P ro g ra m a ç ã o ................................. Operadores....3............................................................ Estrutura e Tratamento de Dados.....2....................................................................................................................3.................................................1....................................2... Análise de Dados e Transformada de Fourier.................................................... Funções Matemáticas Elementares.......... Conversão de Sistemas de Coordenadas.......................... Interpolação..................................................................... 180 3..............2 19 4..158 3.....................................W K 1........7... ........................................ Utilitário Basic Fitting... Gráficos de Fórmulas Matemáticas...................1. G ráficos............................... Utilitário Plot Tools ..........................6................................................266 5. Exportação e Impressão de Figuras................. Caixas de Diálogo..........1................................ C álculo.... 343 7.........1..................7................................ Outros Tipos de Funções....................................1...................................................269 5..2......2....3............................344  .....................3.........................1...........1.......... Gráficos e Handle Graphics® ...................... Substituição de Variáveis Simbólicas porNúmeros................2............ Sím bolos.......................4.....................................................................1..............286 5.... Funções Gráficas 2D ....1.......305 6.................... Introdução ao Symbolic Math Toolbox.................................................................... 340 7......3. Barra de Ferramentas do G UIDE........................................320 6.. Handle Graphics®............................ Menu Pop-up do GUIDE................................................................290 5.....1...7................ Acabamento de Superfícies..............1................................................ 268 5........ Utilitário GUID E ..................................... Objetos de C ontrole..............................................9..............................................296 5........ Funções Gráficas 3D ...................................2...... Manipulação de Figuras e Objetos G ráficos..................344 7....................................................  252  Capítulo 5............................................................... 270 5............................. Conceitos...........................1.. 278 5...........................................300 Capítulo 6..6........................................ 339 7......................4..................... Gráficos de Expressões Simbólicas......................3...297 5...................................314 6...............344 7.............................................1..... Criação de Interface com Usuário ...................................................1..........................5.............4.................................................................2............................4...............................................................................................255 5.............2................................................2.............. Troca de Dados com Internet  247  4....................... 317 6.................2..................................................255 5.. Utilitário Data Statistics.................. Funções por Categoria.................................1.............1..........305 6.............................. Visualização 3D...........................................................340 7............. 341 7............2........................1......321 6..........1.................. Criação de Variáveis e Expressões Sim bólicas..255 5.......2........................................ 295 5..............1.........................................................................3...................................................3.......1.... Criação de Figuras e Objetos G ráficos................................1............8........1.......................................................... Entrada Interativa de D ados........................ 325 Capítulo 7.............4...3................ .................357 7.................................................................. 369 Referências Bibliográficas................... Funções de Conversão....................2.2.............2........... 359 7.Fundamentos  ....................9..2.....................348 7..................2 ...............................5.............. Solução de Equações.....................363 Apêndice A...........................................................................................................2..................................353 7.............................................................................. Funções de Formatação......3.................2...............7................................................................. Transformadas............................................2................365 Índice Remissivo..................... Simplificação e Substituição...... Aritmética de Precisão Variada..........2...................................... 354 7...8........................................................ 361 7........................................................ Álgebra Linear...............................6...................4................................... Exercícios Propostos....................7............. Funções Especiais..........................................................................................................376  MATLAB® 7 ................. 352 7.................................................................. 375 Marcas Registradas................  descrevemos os aspectos genéricos do ambiente interativo e da tela de trabalho principal do MATLAB® 7  O MATLAB® 7 possui versões para os seguintes ambientes operacionais: Windows. Neste caso. o aplicativo pode ser acionado por meio de seu ícone de tela. você vê a tela do MATLAB® 7 Desktop.C a p ít u lo  1  Introdução  Neste capítulo. LINUX. Sun-Solaris e Mac OS (veja página 8). cuja configuração padrão tem o seguinte layout:  Introdução  . Este livro está baseado na versão para ambiente Windows XP. após a correta instalação. Em seguida.  O MATLAB® 7 utiliza tecnologia Java Virtual Machine (JVM) e segue as mesmas convenções de interatividade típicas deste tipo de ambiente: ♦  Botão esquerdo do mouse (botão de seleção): executa ação de acordo com o contexto no qual o objeto é selecionado. Ícone de encerramento da sessão.m na janela • [Current Directory]. Barra de Ferramentas (menus de ícones): ícones de acesso rápido a comandos e utilitários. E. F. [Current Directory] .janela de trabalho na qual são digitados dados e instruções para o MATLAB® 7 e são exibidos os resultados das operações executadas.1 deste livro. [Workspace] . D. B. A sessão do MATLAB® 7 pode ser encerrada pelo comando quit:  Todos esses componentes estão detalhados no tópico 3.  MATLAB® 7-Fundamentos  . C. do arquivo de programa (m-file) circuito. G . [Command History] . H.janela na qual é exibida a lista de variáveis definidas na janela de trabalho [Command Window]. abre arquivo no editor de programas EDIT. com botão esquerdo do mouse.janela na qual ficam armazenadas todas as instruções executadas na janela de trabalho [Command Window]. [Command Window] . Botão [Start]: opções de acesso rápido a comandos e utilitários. Por exemplo: indicação.A. Menus pop-up: comandos de configuração e acesso a utilitários do MATLAB® 7.janela na qual é exibida a lista de arquivos contidos no diretório corrente.  Por exemplo: indicação.  ♦  Teclas [ ^ ] [ ^ ] na janela [Command Window]: repetem os comandos digitados.  ♦  Resizin g Tools : tanto os tamanhos das janelas quanto os espaçamentos das divisões internas podem ser modificados com o cursor:  . abre o menu contextual com opções de operações váli das para o arquivo. ou seja.m na janela [Current Directory]. do arquivo circuito. um menu flutuante cujas opções variam de acordo com o contexto no qual o menu foi aberto. No caso da janela [Command History].♦  Botão direito do m ouse (botão de menu contextuai): abre menu contextuai. abre o menu contextual com opções de operações válidas para o conjunto de instruções selecionadas. com botão direito do mouse.  que passa a acomodar duas pastas. para a área da janela [Command Window]. que é dividida em duas.  ou. ou seja.Fundamentos  .  MATLAB® 7 .♦  M oving Tools w ith in the D esktop: as janelas podem ser movidas de uma posição para outra por meio de 'drag-and-drop'. Por exemplo: 'd rag-and-drop'. clique a arraste a janela [Current Directory]: ela pode ser deslocada para baixo e ocupar a mesma área que a janela [Command History].  Essas configurações podem ser armazenadas e restauradas.♦  M o v in g T o o ls o u t o f / in t o th e M A T L A B ® 7 D e s k t o p : 'undock'  (retira) / 'dock'  (encaixa) a janela na tela principal do MATLAB® 7.  para restaurar.  O menu pop-up [Desktop] contém opções de configuração de posicionamento de janelas (D esktop Layout).  Introdução  23  . Por exemplo: clique  clique  na janela [Current Directory] para retirá-la da tela.  Para finalizar este capítulo introdutório sobre aspectos genéricos de interatividade do MATLAB® 7. O MATLAB® 7 permite que comandos do sistema operacional sejam acionados a partir de instruções digitadas na janela [Comando Window]:  24  MATLAB® 7• Fundamentos  .1 deste livro. um último assunto merece atenção.Todos esses recursos estão descritos minuciosamente no tópico 3.  portanto. os recursos do MATLAB® 7 podem ser divididos em cinco grandes categorias:  I.000 funções. use-o e repita os exemplos e exercícios descritos neste capítulo pois.  2.  Biblioteca de funções matemáticas do MATLAB® 7: núcleo do MATLAB® 7.  II.C a p ít u l o  2  Conceitos  Acreditamos que uma das formas mais eficientes de se aprender a utilizar um software é trabalhar com ele. no qual o usuário pode facilmente elaborar instruções e comandos para testar idéias e verificar resultados.  Ambiente de desenvolvimento: consiste no ambiente interativo do programa propriamente dito. outras janelas e menus). por meio deles.  ♦  desenvolvimento de aplicativos.  ♦  modelamento. simulação e prototipação. na medida do possível.  O Que É MATLAB® 7  Pode ser definido como um software cujo elemento básico de trabalho são matrizes (o nome MATLAB vem do inglês 'M ATrix LABoratory). composto por mais de 1.  ♦  desenvolvimento de algoritmos. Aplicações típicas deste software incluem: ♦  matemática e computação.  ♦  aquisição e análise de dados.  Neste contexto. no qual problemas podem ser facilmente expressos em notação matemática e rapidamente solucionados por meio de cálculos computacionais eficientes e confiáveis. o MATLAB® 7 Desktop ([Command Window]. desde as mais elementares. ou seja.1.  ♦  visualização de resultados. apresentamos os principais conceitos de utilização do MATLAB® 7. Com o MATLAB® 7 não é diferente. como soma e  Conceitos  25  .  Além disso. Números. até as mais sofisticadas. como inversa de matrizes. o que torna sua programação mais simples e eficiente do que a programação em C/C++. IV.  V.  MATLAB® 7 Application Program Interface (API): biblioteca que permite integrar o programa com funções desenvolvidas em C e Fortran. o tipo de objeto (estrutura de dados) básico do MATLAB® 7 são matrizes. III. Fortran ou qualquer outra linguagem de programação tradicional. introduzimos os principais elementos do ambiente de desenvolvimento do MATLAB® 7 Desktop (item I da lista anterior). que podem ser: ♦  um escalar (número): matriz com dimensão 1x1:  ♦  um vetor linha: matriz com dimensão 1 x n:  ♦  um vetor coluna: matriz com dimensão n x 1:  ♦  uma matriz bidimensional: matriz com dimensão m x n:  26  MATLAB® 7 . transformadas de Fourier.Fundamentos  . a linguagem é 'orientada por objetos'.  III.2.  Linguagem de programação MATLAB® 7: linguagem de alto nível. Nos próximos tópicos deste capítulo. Vetores e Matrizes Como já mencionado.  2.  IV. cuja estrutura de dados principal são matrizes que não precisam ser previamente dimen sionadas. solvers de equação diferencial ordinária.subtração. apresentamos os conceitos básicos dos itens II.  Recursos gráficos do MATLAB® 7: biblioteca de funções gráficas do MATLAB. que disponibiliza recursos poderosos e flexíveis para a criação de gráficos para visualização de resultados.  No capítulo 1 deste livro.  digite:  Observação: 'ans' é o nome da variável reservada do MATLAB® 7 que armazena o resultado da última operação executada na linha de comando do programa.  ♦  'e' para notação científica.para indicar número negativo.  Por exemplo._________________________  O MATLAB® 7 possui constantes numéricas predefinidas.  ♦  'i 'e 'j' para notação de números complexos (raiz imaginária).  ♦  para indicar casa decimal.♦  um matriz tridimensional (ou vetor multi-dimensional): matriz com dimensão m x n x p  O MATLAB utiliza a seguinte notação para representar núm eros: ♦  sinal . na janela [Com m nd Window] do MATLAB® 7. cujos valores são determi nados pela precisão numérica do processador matemático do equipamento no qual o software está instalado:  Conceitos  27  .  o MATLAB® 7 possui dois símbolos não-numéricos utilizados para repre sentar situações de descontinuidade:  Exemplos (arquivo cap2_exemplo_01.Fundamentos  .m):  O formato de exibição dos números é configurado pelo comando format.Além disso.  28  MATLAE® 7 .   ♦  É case-sensitive.Vetores e matrizes são definidos com a seguinte notação: ♦ '[' indica início de definição de matriz. o conteúdo da janela [Command Window] pode ser apagado pelos comandos:_________ Conceitos  29  . este valor é 63. ♦  ']' indica final de definição de matriz. Exemplo: m a t _ 2 _ x _ 3.  ♦  A função n a me l e n g t h m a x retorna o tamanho máximo do nome de variável em número de caracteres. Exemplo:  x i.' separa elementos na mesma linha. No MATLAB® 7.  val or  ♦  Aceita  no meio do nome. Visualmente.m):  Números. No ambiente Windows. vetores e matrizes podem ser armazenados em variáveis. nome de variável segue a seguinte convenção: ♦  Deve ser uma seqüência alfanumérica começando com letra.  V a lo r .  Exemplo:  Observação: as informações digitadas na janela [Command Window] ficam armazenadas na janela [Command History]. diferencia letras minúsculas e maiúsculas.  ♦  ' ' ou '. ou seja.  ♦  finaliza definição de linha. definindo colunas.  Exemplos (arquivo cap2_exemplo_02.  m a t2. Exemplo: é diferente de v a l o r . 3  Exemplo » who Your variables are: ans mat_2_x_3 » whos Name Size Bytes ans lxl 8 mat_2_x_3 2x3 48 »  clear mat_2_x_3  »  clear  Class double array double array  MATLAB® 7 .  :  Os principais comandos de consulta e manipulação do [Workspace] são: Comando  Descrição  who  lista os nomes das variáveis  whos  lista os nomes e características das variáveis  clear  elimina variáveis da lista elimina todas as variáveis  . em uma área denominada W orkspace.Fundamentos  ï :  .» clc Apaga a janela e leva o cursor para o topo da tela. cujo conteúdo é exibido na janela [Workspace]. mantendo as linhas anteriores. »  home  Leva o cursor para o topo da tela. Conforme mencionado no capítulo 2 .  . O conteúdo das variáveis é exibido pelo editor de variáveis. as variáveis definidas na janela [Command Window] ficam armazenadas na memória do MATLAB® 7. acionável por um 'duplo-clique' no nome da variável listada na janela [Workspace]. [Array Editor]. /  Divisão escalar  Exemplo » a+b ans = 6 8 10 12 » a-b ans = -4 -4 -4 -4 » a*b ans = 19 22 43 50 » a. matrizes. Considere (arquivo eap2_exemplo_03. Operadores Operadores aritméticos trabalham com números./b ans = 0.  Operadores e Funções  No MATLAB® 7.5000  .3.0000 2.  ♦  resultados de execução de operadores e funções.1.4286 0.0000 -2. vetores.0000 » a.3333 0. expressões matemáticas são compostas por: ♦  números.  ♦  variáveis.3.0000 -1. vetores e matrizes.2000 0.2.  2.m):  Operador +  Soma  -  Subtração  *  Multiplicação matricial  *  Conceitos  Descrição  Multiplicação escalar  /  Divisão matricial (a/b equivale a a*b'1)  .*b ans = 5 12 21 32 » a/b ans = 3.  propomos dois exercícios. » c=a*b.  MATLABP 7 . » a = [1 2 3 4 3 . » b*a 1x2 ans = 23  % Dimensões compatíveis b ix2 * a 2x2 . o resultado é u m vetor  34  Para recordar alguns conceitos de matemática relacionados à álgebra matricial e ilustrar a utilização dos operadores.0000 4.elemento a elemento)  1  Transposta  Precedência  ( )  Exemplo » a\b ans = -3. coloque o s in a ln o final da linha de comando. % a 2x2 » b=[5 6 % b lx2 » a*b % Erro: as dimensões incompatíveis a 2X2 * b lx2 ??? Error using ==> mtimes Inner matrix dimensions must agree.Operador  Descrição  \  Divisão 'esquerda' (a\b equivale a a~1*b)  A  Potência (matrizAescalar) (aA3 equivale a a*a*a)  A  Potência escalar (matriz .Amatriz .Fundamentos  .^b ans = 1 64 2187 65536 » a' ans = 1 3 2 4 » a+b*a ans = 24 36 34 50 » (a+b)*a ans = 30 44 46 68  Observação: para inibir a exibição do resultado da operação na tela.0000 -4.0000 5.' » c c = 19 22 43 50  As matrizes devem ter dimensões compatíveis com as operações solicitadas.0000 » a~3 ans = 37 54 81 118 » a. 1000 % Solucao do item II » ml=a. Conceitos  .0 $ 6 . 1 ) * b( 1 .2 ) f> Fonte: programação 'Vestibulando Digital' exibido pela TV Cultura .São Paulo.1  I.0000 6. 6 6.  Quantidade de carros do tipo C1 e C2 produzidos em Janeiro e Fevereiro: Tipo de Carro / Mês Carro C1 Carro C2  b.8 $ 6 .1] b = 10.  Qual é o significado do resultado obtido na variável m1?  Solução dos itens I e II (arquivo cap2_exercicio_01.  III. 200 180] a = 100 120 200 180 » b = [10 9. Tipo de Carro / Mês Carro C1 Carro C2  Custo em Janeiro $ 1 0 .Exercício 1 O Considere as seguintes tabelas com dados de uma montadora de automóveis: a.2 ) = a( 1 .2 ) * b( 1 .0  Custo em Fevereiro $9. em milhares de unidades monetárias.m): % Solucao do item I » a = [100 120.  Crie duas matrizes no MATLAB para representar as tabelas precedentes. de cada carro tipo C1 e C2 em Janeiro e Fevereiro.  Produção em Janeiro  Produção em Fevereiro  100  120  200  180  Custo de produção.1 ) = a( 1 .1 ) m 1 ( 1 .  Armazene na variável m1 a multiplicação escalar das matrizes a e b.0000 9.*b ml = 1000 1176 1200 1098  Solução do item II): A multiplicação escalar multiplica os elementos das matrizes elemento a elemento: m 1 ( 1 .8000 6.  II.8.  m1 é uma tabela que mostra o custo de produção.2 ) Desta forma.42 55] c = 25 28 42 55 % Solucao do item II » m2 = c*a m2 = 8100 8040 15200 14940  0 Fonte: programação ‘Vestibulando Digital' exibido pela TV Cultura .  Qual é o significado do resultado obtido na variável m2?  Solução dos itens I e II (arquivo cap2_exercicio_02.1 ) = a(2 .1) contém a quantidade de carros tipo C1 produzidos em Janeiro vezes o custo de produção de cada carro C1 em Janeiro. Tipo de Peça/ Carro Peça P1 Peça P2  Carro C1 25 42  Carro C2 28 55  I. ou seja.2 ) * b(2 .2 ) = a(2 .m 1 (2 . em milhares de unidades monetárias. m1 (1.m): % Solucao do item I » c = [25 28.  MATLAB® 7-Fundamentos  .1 = 1098  Exercício 2 (*) Considere mais uma tabela da mesma montadora do Exercício 1: quantidade de peças dos tipos P1 e P2 utilizadas na produção dos carros C1 e C2.  Armazene na variável m2 a multiplicação matricial das matrizes c e a.  Crie uma matriz c no MATLAB para representar a tabela anterior.8 = 1176 180 *6.1 ) * b( 2 .  II.São Paulo. do exercício anterior.  III. Portanto. o custo de produção de todos os carros tipo C1 produzidos em Janeiro.1 ) m 1 (2 . de todos os carros C1 e C2 produzidos em Janeiro e Fevereiro: Tipo de Carro / Mês Carro C1 Carro C2  Custo em Janeiro 1 0 0 * 1 0 = 1000 2 0 0 * 6 = 1200  Custo em Fevereiro 120*9. 2 ) 2 esta forma..2. 1 )*a( 1 . EntradaN]: parâmetros de entrada.4794 I » cos (v) ar.SaidaN] = Funcao (Entradal.2 )*a(2 .s = 0.1 ) contém a quantidade de peças do tipo P1 utilizadas no carro C1 .3.Funções trigonométricas: [ » x = 0...2 ) m 2 (2 .1 )*a( 1 .. 1 ) = c( 2 .0000  0. Funções -  sintaxe básica para chamada de qualquer função do MATLAB® 7. : ^ seja.2 ) + c(2 . Entrada2)  ♦  [S a id a l. segue este formato: ..1 ) m 2 ( 1 .s = 1. a quantidade total de peças do tipo P1 consumidas no mês de Janeiro.  ♦  [Entradal. 1 ) + c( 1 .2 ) = c( 2 .5403  . » v=[0 1] . -crtanto.1 ) + c( 2 .1 ) m 2 (2 . 1 )*a( 1 .Solução do item III: Na multiplicação matricial: m 2 ( 1 .2 ) = c( 1 .5..  SaidaN]: parâmetros de saída.2 )*a(2 . m2 é uma tabela que mostra a quantidade total de peças P1 e P2 consumidas e~ Janeiro e Fevereiro. » sin(x) =r..  Exemplo 1 .2 )*a(2 .2 )*a(2 .2 ) + c( 1 . Tipo de Peça / Mês Peça P1 Peça P2  Utilizadas em Janeiro 25* 100 + 28*200 = 8100 42*100 + 55*200 = 15200  Utilizadas em Fevereiro 25*120 + 28*180 = 8040 42*120 + 55*180 = 14940  2. seja própria do -TLAB® 7 (built-in function) seja desenvolvida pelo usuário.1 ) = c( 1 .  ♦  Funcao: nome da função. m 2 ( 1 . . ezes a quantidade de carros C1 produzidos em Janeiro mais a quantidade de peças do : do P1 utilizadas no carro C2 vezes a quantidade de carros C2 produzidos em Janeiro. 1 )*a( 1 .3aidal.  há 100 pessoas que trabalham na única empresa ali existente. retorna um vetor linha V ixn com a soma por coluna da matriz M. dividida pela soma das freqüências.  Exercício 3 <*)  ----------------------------------------------------.Funções matriciais: » a = [2 3 .  ♦  dada uma matriz Mmxn.0968 0.5 -8] a = 2 3 5 -8 » det(a) ans = -31 » i n v (a ) ans = 0.00  10  I.00  60  $150.Funções matemáticas: » sqrt(x) ans = 0.0645 0.(11/Nov/2001) MATLAB® 7 .m): Média dos salários é igual à soma de cada valor do salário multiplicado por sua freqüência.00  30  $100.  Qual é a variância dos salários? Qual o desvio padrão dos salários?  Solução do item I (arquivo cap2_exercicio_03.Exemplo 2 .  Qual é a média dos salários das pessoas?  II.Fundamentos  ■  .— ---------------------Numa pequena ilha. Seus salários (em moeda local) têm a seguinte distribuição de freqüências: Salário  Freqüência  $ 50.fase da Fundação Getúlio Vargas 2002 .0000  2.7183  Exemplo 3 . que: ♦  dado um vetor V ixn ou „xi.2581 -0. retorna a soma de todos os elementos do vetor. (*) Fonte: questão 1 da Prova de Matemática da 2.1613  No próximo exercício. utilizamos a função sum.7071 » exp(v) ans = 1. ^2. Desvio padrão é a raiz quadrada da variância.*freq)/ surti (freq) media = 90  Solução do item II: A variância dos salários é a soma do quadrado da diferença entre cada valor de salário e a média. dividida pela soma das freqüências.2000 3. com relação à criação de matrizes: ♦  definição de matrizes é delimitada p o r'[' e  ♦  1  ♦  ' ou  separa elementos na mesma linha.m):  l i Conceitos  .3.04).0000Í  0.___________________________________________________________________  2.0000 + 1.  Elementos de matrizes podem ser números e expressões.*freq)/sum(freq) variancia = » dp=sqrt(variancia) dp = 30  Observação: as principais funções da biblioteca matemática do MATLAB® 7 estão listadas no capítulo 3. multiplicada pela sua freqüência.1416  Os símbolos ' ' e também podem ser utilizados para concatenar matrizes (arquivo cap2_exemplo_04.8256 3.  3+i pi]  m = 33. definindo colunas. » v a r i a n c i a=sum((salarios-media).% Criar vetor para representar os salários > > s a l a r i o s = [50 100 150] salarios = 50 100 150 % Criar vetor para representar as frequencias » f r e q = [30 60 10] freq = 30 60 10 % Calcular ame d i a ponderada » m e d i a = s u m ( s alarios. »  m = [38-log(65)  sqrt(0.3. Manipulação de Matrizes Apenas para relembrar.  delimita linhas.  Indexação de Elementos de Matrizes O padrão de identificação de elementos de matrizes no MATLAB® 7 segue a sintaxe intuitiva da linguagem matemática tradicional:  Exemplo: elemento da 2.4) = 9.4 ) ans = 9  MATLAB® 7 ■Fundamentos  . a = 1 6 11  2 7 12  3 8 13  4  9 14  5 10 15  » a (2 .3.Observação: as matrizes devem ter dimensões compatíveis com a operação de concatenação solicitada.linha e 4ã coluna da matriz a = a(2.4.________________________________________________________  2.  Por exemplo.3) c = 3 8  13  ♦  criar d com os todos os elementos da 1 . A indexação começa no primeiro elemento e segue de cima para baixo.2:end) e = 7 8  9  2  -  10  É possível utilizar a indexação seqüencial com '[ ]' para definir submatrizes. e a 2.m): ♦  criar b com os elementos da 2.linha composta pelos 3e e 102 elementos de a..a 4. » d = a ( l . » c = a (:. :) d = 1 2  ♦  3  4  5  'end' indica fim de intervalo. para criar e com todos os elementos da linha da matriz a a partir da 2.Os elementos também podem ser identificados seqüencialmente. da esquerda para a direita:  O s ím b o lo d e fin e intervalos de indexação.linha da matriz a. ou seja. criar h a com a 1.-2 :4) b = 7  ♦  8  9  criar c com os todos os elementos da 3.coluna da 2.coluna. digite: >> e=a(2.linha pelos 59e 12a elementos.  .linha da matriz a. b=a (2 . Por exemplo (arquivo cap2_exemplo_05.coluna da matriz a.   Resistência R3 Resistência R4 Resistência R5  3Q 4 £2 5Q  ♦  Quais são os valores das correntes 11.R 4 * 11  + (R 2 + R4 + R 5 )*I2  .  Exercício 4__________________________________________________________ Resolvamos um problema típico de curso básico de eletricidade.(R5) * I3  =0  . ilustrado no esquema apresentado a seguir: Ri  R3 -VMWv-  2  -VWMV-  -WAMV-  +  +  PT  Dados de Entrada: Variáveis Voltagem V1 Voltagem V2 Resistência R1  Valor 10 V 5V 1 Q  Resistência R2  2Q.» f=[ a(3) a (10) f = 11 4 7 14  a (5) a (12) ]  Vejamos.m): A resposta do item I deste problema é obtida com a resolução do sistema linear de três equações e três incógnitas seguinte: (R1 + R4) * 11  -(R 4 )* I2  =V1  .(R5) * I2  + (R3 + R5) * I3  = -V 2  MATLAB® 7 . agora. como resolver um sistema linear do tipo A * X = B no MATLAB®7.  .Fundamentos .12 e I3?  ♦  Qual é a potência total (PT) do circuito?  Solução (arquivo cap2_exercicio_04. [VI.-R4  (R2+R4+R5)  .8342 % X (1) = 11 1.  ♦  ou o determinante de A: se for diferente de 3.R 5 . obtido da seguinte forma: X = A” 1 * B (inversa de A vezes B) ou A \ B (divisão pela esquerda): » X=inv(A) *B X = 2.0. podemos consultar: ♦  o posto de A: se for 3.0267  . -V2 ]  10 0 -5  Para verificar se o sistema linear tem solução.8342 1.4 0 -4 11 -5 0 . » rank(A) ans = 3  » det(A) ans = 187  % posto de A  % determinante de A  A solução do sistema A * X = B é armazenada no vetor X. então o sistema tem solução. então o sistema tem solução.0428 0.0428 % X (2) = 12 % X (3) = 13 0.0267 » X=A\B X = 2.5 8 B.E a do item II é dada por esta fórmula: PT = V1 * 11 —V2 * 13 Devemos criar as variáveis no MATLAB®7:  >  to M II II to  o  >  rH LD II II vH CM  £ > > » »  R3 = 3  > >  II  »  R5 = 5  »  E 'montar' a matriz A e o vetor coluna B do sistema linear A * X = B: » A=[(R1+R4) A =  » B =  -R4 0.0 -R5  (R3+R5)]  5 .  Para calcular a potência.V2 * X (3)  Ou seja.3 = 3. Por exemplo.8342 A 1. de incremento e final.  » v 2 = [15:-3:5] v2 = 15 12  9  6  Observação: o último elemento nunca ultrapassa o limite estabelecido pelo valor final.  0  MATLAB® 7 ._________________________________________________________________  .Fundamentos  . Vetores Seqüenciais Além das formas de definição de vetores e matrizes apresentadas nos tópicos ante riores. A sintaxe mais simples para definir um vetor seqüencial é feita com o símbolo Devemos fornecer.3. execute: » PT = VI * X(l) PT = 28. [ Valor_Inicial  : Incremento  : Valor_Final  Por exemplo (arquivo cap2_exemplo_06.5. o último elemento do vetor v2 é 6 . essenciais para o tratamento de séries de tempo.2086  .m): ♦  criar v1 contendo valores de  0  a  10  com incremento 2 . o MATLAB® 7 possui recursos que facilitam a construção de vetores seqüenciais. o resultado final é: Variáveis Corrente 11 Corrente 12 Corrente 13 Potência Total PT  Valor 2.0428 A 0.0 vetor X contém os valores das três correntes: X(1) = 11.2086 W  2. pois o próximo elemento.  ♦  to  O  » v l = [0:2:10] vl = 4  6  8  10  criar v2 contendo valores de 15 a 5 com incremento -3. também. os valores inicial. 6 . X(2) = 12 e X(3) = 13. seria menor que 5.0267 A 28.  Por exemplo (arquivo cap2_exemplo_07...w 3  ■H  %  :9 1 101  01  1  éü  1 01  ___ r  j j j  s ta c k ..10... » »  w 3 = l i n s p a c e (0 ..... l  â  o f  i  Name 0 3 w1  * á  S  X  il£ A rra y  Í V alu e  i  j Class  [0 2 ..  j  !  S  1 I  A  . p i ) .  » w 2 = l i n s p a c e (0..5:10].m): ♦  criar w1 com 5 divisões uniformemente espaçadas entre de 0 a 10.Algumas omissões são permitidas: ♦  o s ‘[ ]' podem ser omitidos... 0.1...0000  divisões uniformemente espaçadas entre 0 e 10...0.0 3 1 7 3 3 :  i  0 .15867.  » v3 = l :5 v3 = 1  2  3  4  5  Vetores seqüenciais também podem ser criados peia função linspace.  i1 2  3 .... 1  2  3  0 . whos w3 Bytes Class Name Size 800 double array w3 1x100 Grand total is 100 elements using 800 bytes  Examine o conteúdo da variável w3 no [Array Editor] (duplo-clique no nome da variável na janela [Workspace]): ' ’ f ji..... :4  I  : 51 ! 6j 1.... assume-se incremento 1 .  :  d o u b le  Ï B w2  [024 68.H ..5000  5.5 5 7 . 6) w2 = 0 2 4 6  8  10  Se o número de elementos for omitido.5000  ♦  criar w2 com  6  7..0 9 5 2 ! ..7. .  ♦  se o parâmetro de incremento for omitido. ..  » w l = l i n s p a c e {0...  Ö  [1 ( ? X  6  '  0 .. A função linspace recebe como dados de entrada os valores inicial e final da seqüência e o número desejado de divisões uniformemente espaçadas.... Equivale a [0:2....0 6 3 4 6 7 !  4  j j  j  EB Q ] 0 j  5  ... .5) wl = 0 2..  ... a função assume 100 elementos.......  d o u b le  j  f fijw S  <1x100  d o u b le  ]  d o .’] 8j < W o rk s p a c e  > C urren t D irectory  Editor .j _______  ____ I__  _  . Exemplo: criar 100 elementos igualmente espaçados entre 0 e pi.|..126931..10. Equivale a [0:2:10].0000  10. 1465 1.3273  0.8913 0.1909  1. Funções Matriciais Elementares Assim como a função linspace._________________________ Manipulação de matrizes: considere a matriz a=[1 2. Criação de matrizes elementares: Função  Matriz  eye  Identidade  Composta por 0  zeros  Composta por 1  ones  Composta por números aleatórios (distribuição uniforme)  rand  Composta por números aleatórios (distribuição normal)  randn  Exemplo » e y e (2) ans = 1 0 0 1 >> e y e (2. a função gera uma matriz retangular n x m.3 4] Operação  Função  Informa o número de linhas e colunas da matriz  size  Informa o número de elementos da matriz  numel  Exemplo » s i z e (a) ans = 2 2 » numel(a) ans = 4  Hl  III  MA TLAEP 7 .1867 0. a função gera uma matriz quadrada n x n.7621  0.9501 0.7919  0. No caso de dois parâmetros.6068 » r a n d n (3.6656 0.1253  0 0  1 1 1  0.2) ans = 0 0 0 0 0 0 » o n e s (3) ans = 1 1 1 1 1 1 » r a n d (3. apresentada no tópico anterior.2.0376 0. n e m.3.4860 0.7258  Observação: essas funções aceitam um ou dois parâmetros.6. No caso do fornecimento de apenas um parâmetro n.1892 -0. o MATLAB® 7 possui inúmeros recursos para facilitar a criação e manipulação de matrizes elementares.4) ans = 0.4) ans = -0.8214  0.Fundamentos  .1746 -0.4326 -1.4565 0.2877 -1.3) ans = 1 0 0 1 » z e r o s (3.2311 0.6154 0.4447 0.0185 0. Operação Calcula posto de matriz  Exemplo rank  Calcula determinante de matriz det  Calcula inversa de matriz  inv  » r a n k (a) ans = 2 » det(a) ans = -2 » inv(a) ans = -2.0000 1.5000  1.0000 -0.5000  2.4. Outros Tipos de Objetos Neste tópico, apresentamos os principais tipos de objetos utilizados nas funções do MATLAB® 7, além de vetores e matrizes numéricos.  2.4.1. Matriz Tridimensional O MATLAB® 7 permite criar matrizes tridimensionais a partir da composição de matrizes bidimensionais concatenadas com o símbolo ♦  mx nx p  Por exemplo: criar matriz A 3x3x2 , a partir de duas matrizes bidimensionais 3x3 (arquivo cap2_exemplo_08.m).  A( :  : ,2 ) 1 0 0  = 0 1 0  0 0 1  2.4.2. Cadeia de Caracteres (String) É o tipo de dado char, ou seja, caractere ou texto ASCII, armazenado em 2 bytes de memória. No MATLAB® 7, cadeias de caracteres são delimitadas p o r" e exibidas em cor púrpura. Exemplo: a variável tx t recebe o texto 'Resultado', que é armazenado no MATLAB como classe char array de dimensão 1x9, ocupando 18 bytes na memória. » t x t = 'R e s u l t a d o ' txt = Resultado »  whos txt Name Size Bytes txt 1x9 18 Gra n d total is 9 elements using 18 bytes  Class char array  Cadeias de caracteres podem ser manipuladas como matrizes, ou seja, aceitam opera ções de transposição e concatenação, desde que as dimensões sejam compatíveis. Exemplos (arquivo cap2_exemplo_09.m): »txtl' ans = R e s u  % Transposicao  1 t a d o >>txt2 = [txtl 1 da Provai'] txt2 = Resultado da Provai  % Concatenacao horizontal  >>txt3 = [ txtl txt3 = Resultado da Provai  ] % Concatenacao vertical  ; ’da Provai  Observação: no caso de concatenação vertical, uma nova linha de caracteres é adicionada.  MATLAB® 7- Fundamentos  » t x t 3 (1,:) ans = Resultado » t x t 3 (2,:) ans = da Proval  A concatenação vertical com sinal só foi possível porque as duas cadeias de caracteres possuem o mesmo número de letras. Cadeias de caracteres com números diferentes de letras não podem ser concatenadas com » txt4 = [ txtl ; 'da P r o v a '] ??? Error using ==> vertcat All rows in the bracketed expression must have the same number of columns.  Nesse caso, deve-se usar a função strvcat, que executa a concatenação, ajustando os tamanhos das cadeias de caracteres com a inclusão d e 1 » t x t 4 = s t r v c a t (t x t l ,'da P r o v a 1) txt4 = Resultado da Prova »  whos txt4 Bytes Name Size txt4 2x9 36 Grand total is 18 elements using 36 bytes  Class char array  2.4.3. Matriz de Células (CelIArray) Matriz de célula (cell array) é um tipo de dado que permite o armazenamento de elementos de naturezas diferentes em uma única estrutura, identificáveis por um único nome. Internamente, cell array é uma tabela de apontadores que endereça as regiões de memórias nas quais os elementos estão efetivamente armazenados. A função cell cria uma matriz de células vazias (ou seja, uma tabela de apontadores vazios), que podem ser preenchidas posteriormente por meio de atribuições de dados: '{ }' são usadas para definir o conteúdo de células. Exemplo (arquivo cap2_exemplo_10.m): criar uma matriz de célula celula 2x2 com quatro elementos diferentes: ♦  ceiula(1,1): matriz identidade 3x3  ♦  celula(1,2): texto 'matriz identidade 3x3'  Conceitos  ♦  celula( 2 ,1 ): constante pi  ♦  celula(2,2): vetor 0:5 » c e l u l a = c e l l (2) celula =  [] []  [] []  » c e l u l a (1,1}= { e y e (3)} celula = [3x3 double] []  []  []  » c e l u l a (1,2)={'matriz identidade 3x3'} celula = [3x3 double] [1x21 char]  []  []  » c e l u l a (2,1)={pi} celula = [3x3 double] [1x21 char] [ 3.1416] [] » c e l u l a (2,2)={1:5} celula = [3x3 double] [1x21 char [ 3.1416] [1x5 double]  ]  Cell arrays são visualizáveis no [Array Editor], Um duplo-clique no elemento da célula exibe o seu conteúdo.  Cell arrays podem ser definidos apenas c o m '{ }': » cel={ o n e s (2) cel = [2x2 double]  'texto' pi } 'texto'  [3.1416]  O acesso indexado ao conteúdo da célula é feito c o m '{ }':  2.4.4. Estrutura (Struct) Estrutura (struct) é um tipo de dado que permite o armazenamento de elementos de naturezas diferentes em uma única estrutura, identificáveis individualmente por nomes de campos (.fields). Internamente, struct é semelhante ao cell array, isto é, é também uma tabela de apontadores. A diferença está na forma de acesso aos elementos internos. Enquanto cell arrays trabalham com índices, structs usam nomes (campos ou fields). A função struct cria estruturas. No exemplo seguinte, criamos uma estrutura com nome s, com três campos com os seguintes conteúdos: ♦  nome: 'Dolar Comercial'  ♦  iden: 'DOL'  ♦  valor: 3.19 » s = s t r u c t ( 'Nome', { 1Dolar C o m e r c i a l '}, 'I d e n ', { 'D O L '}, 'Valor ',{3.19}) Nome: Iden: Valor:  'Dolar Comercial' 'DOL' 3.1900  O conteúdo da estrutura é identificado pelo nome da estrutura seguido por finalizado pelo nome do campo:  e  » s.Nome ans = Dolar Comercial » s.Iden ans = DOL » s.Valor ans = 3.1900  I  É possível criar vetores de estruturas. A indexação é feita c o m '( )': » s (2).Nome='Ouro 250g'; » s (2).I d e n = 'O Z 1 '; » s (2) .Valor=39.65; » s (2) ans = Nome: 'Ouro 250g' Iden: 'OZl' Valor: 39.6500  Structs são visualizáveis no [Array Editor], Um duplo-clique no elemento da estrutura exibe seus campos.  I I Conceitos  A função fieldnames lista o nome dos campos da estrutura em um cell array, cujo conteúdo pode ser utilizado posteriormente. » campos=fieldnames(s) campos = 1N o m e ' 'I d e n ' 'Valor' »  whos campos Name Size Bytes Class campos 3x1 206 cell array Gr a n d total is 16 elements using 206 b y t e s » whos campos » campos{l} ans = Nome  Observação: esses exemplos estão armazenados no arquivo cap2_exemplo_11.m.  2.5.  Outros Tipos de Dados Numéricos  O MATLAB® trabalha tradicionalmente com matemática de ponto flutuante de precisão dupla. A partir do MATLAB® 7, números podem ser armazenados e manipulados com precisão simples e como números inteiros. A tabela seguinte mostra as propriedades dos tipos de dados numéricos suportados: ♦  Nome: identificação padrão do tipo de dado numérico no MATLAB®;  ♦  Bits: tamanho, em bits  ♦  Valor Mínimo: valor mínimo do tipo de dado numérico:  ♦  (8  bits = 1 byte), do dado na memória;  -  função realmin para números reais (precisão dupla e simples);  -  função intmin para números inteiros.  Valor Máximo: valor máximo do tipo de dado numérico: -  função realmax para números reais (precisão dupla e simples); função intmax para números inteiros.  MATLAB® 7- Fundamentos  Tipo de Dado Precisão Dupla Precisão Simples Inteiro 8 bits com sinal Inteiro 8 bits sem sinal Inteiro 16 bits com sinal Inteiro 16 bits sem sinal inteiro 32 bits com sinal Inteiro 32 bits sem sinal Inteiro 64 bits com sinal Inteiro 64 bits sem sinal  Nome  Bits  double  64 bits  single  32 bits  int8  8 bits  uint8  8 bits  intl6  16 bits  uintl6  16 bits  int32  32 bits  uint32  32 bits  int64  64 bits  uint64  64 bits  Valor Mínimo  Valor Máximo  »  »  realmin  »  r e a l m i n (1s i n g l e ')  »  i n t m i n ('i n t 8 ')  »  i n t m i n (1u i n t 8 ')  »  0 »  i n t m i n f 'i n t l 6 ')  »  i n t m i n ('u i n t l 6 ')  »  i n t m i n ('i n t 3 2 ')  »  i n t m a x ('i n t 3 2 ') 2147483647  i n t m i n ('uint32')  »  i n t m a x ('uint32') 4294967295  0 »  i n t m a x ('uintl61) 65535  -2147483648 »  i n t m a x ('i n t l 6 1) 32767  0 »  i n t m a x (1u i n t 8 ') 255  -32768 »  i n t m a x (1int8 ') 127  -128 »  r e a l m a x (1s i n g l e ') 3. 4028e+038  1.1755e-038 »  realmax 1.7977e+308  2.2251e-308  i n t m i n (1i n t 6 4 1)  »  i n t m a x ('i n t 6 4 ')  -9223372036854775808  9223372036854775807  »  »  i n t m i n ('u i n t 64')  i n t m a x ('u i n t 6 4 ')  18446744073709551615  0  0 MATLAB® 7 consegue tratar aritmeticamente as operações combinando os tipos de dados numéricos: double (real com precisão dupla) e nondouble (real com precisão simples e números inteiros). Esta capacidade é essencial para a solução de problemas em áreas como otimização e tratamento de sinais. Além disso, a escolha do tipo de dado numérico mais adequado permite uma substancial redução do espaço ocupado em memória. Os tipos de dados são indicados pela utilização das funções de conversão (arquivo cap2_exemplo_12.m):  Conceitos  Função  Descrição  Exemplo  double  converte para doubie  »  a01=double(1 0 );  sin gle  converte para s in g l e  »  a 0 2 = s in g le (1 0 ) ;  in t8  converte para in t s  »  a 0 3 = in t8 (1 0 );  uint8  converte para u in ts  »  a04=uint8(10) ;  in tl6  converte para i n t i 6  »  a 0 5 = i n t l 6 (1 0 );  u in t l 6  converte p arau in tiõ  »  a 0 6 = u in t l6 (10) ;  int32  converte para int32  »  a 0 7 = in t3 2 (1 0 );  uint32  converte para u i n t 3 2  »  a08=uint32(1 0 );  int64  converte para int64  »  a 0 9 = in t6 4 (1 0 );  uint64  converte parauint64  »  a l0 = u in t 6 4 (1 0);  Na janela [Workspace], é possível verificar a classe das variáveis criadas pelas funções de conversão. 1 i f á g m w Ifc!m iName •* jValue ÈBiaoí! 10 Sa02  EBa03 S a04 R-la05 f^aOB EBa07 ffia 0 8  H]a09 (®]a10  10 10 10 10 10 .10 10 10 10  <  -níis«'.'1 Class  double single int8 uint8 int16 uinl16 int32 uint32 in t6 4 u in t6 4  >  Current Directory W o rk s p a c e ;  Os tipos de dados numéricos podem ser combinados da seguinte forma: ♦  Tipo double pode ser combinado com qualquer outro tipo de dado nondouble. O resultado é sempre do tipo nondouble.  Exemplo: » 10+int8(pi) ans = 13  ♦  Os nondoubles (single, int8, uint8, intl6, uintl6, int32, uint32) só aceitam operações com dados do mesmo tipo ou com double. » i n t 8 (10)+single(pi) ??? Error using ==> plus Integers can o nly be combined with integers of the same class, scalar doubles.  or  » i n t 8 (10)+int8(pi) ans = 13  Veja este exemplo sobre precisão dupla e precisão simples: ♦  a variável p recebe a soma de três números de precisão dupla (0.3+0.3+0.4). Esse resultado é o número 1 armazenado com precisão dupla.  ♦  a variável q recebe a soma de quatro números de precisão dupla (0.3+0.3+0.3+0.1). Esse resultado é o número 1.000 armazenado com precisão dupla.  » p = 0 .3+0.3+0.4 P = 1 » q = 0 .3+0.3+0.3+0.1  q = 1.0000  MATLAEP 7 - Fundamentos  1 )  O resultado é um número com precisão simples.3+0.3 um com precisão simples: single( 0 .3+0.1)  qi =  1  » format hex » q l = 0 . mostramos os recursos disponíveis no MATLAB® 7 de criação e manipu lação de figuras para apresentação de resultados em formato gráfico. » p == q ans =  0  »  p == q i  ans =  1  2.Porém p é diferente de q.1) ql = 3 f 800000  Com precisão simples. e p é igual a q1 com precisão simples.3+0. é uma dízima binária.3 + s i n g l e (0. » format hex » P P = 3ff0000000000000  » q q = 3fefffffffffffff  ♦  Vamos criar a variável q1 com a soma de quatro números: -  três com precisão dupla: 0. p é diferente de q com precisão dupla. em precisão dupla. Gráficos Neste tópico.3+0.3+0. » »  format q l = 0 . o resultado não é uma dízima. A operação de geração de gráficos pode ser organizada nos seguintes passos:  . O conjunto destes recursos. Podemos usar a função format hex do MATLAB para visualizar o valor de p e q em formato hexadecimal e confirmar esse fato.6. é descrito com detalhes no capítulo 5. Sendo assim. denominado Handle Graphicsi®. pois o resultado da soma em q. Vamos observar o resultado numérico e o resultado em formato hexadecimal.3 + s i n g l e (0.3+0.  ela cria uma nova. tipo de linha e marcador). etc. Vamos executar cada um desses passos no próximo exercício. Chamada das funções de criação de gráficos O MATLAB® 7 possui funções de criação de gráficos 2D e 3D.2 * p i : O. Exercício 5___________________________________________________________________ Passo 0: Preparação dos dados.  Digite no MATLAB: »  x  »  y = x  = .Passo 0: Preparação dos dados Fase que precede a geração do gráfico propriamente dita. Gráfico Bidimensional Neste tópico. grades. Os gráficos são criados em janelas para figuras (figure window). envolve leitura de dados externos e cálculos. Em geral. o usuário define o eixo no qual seus dados são exibidos. bem como a aparência do próprio gráfico (título.  .  MATLAEP 7 .). A função plot cria um gráfico na figura corrente. Caso não exista nenhuma figura.  2.2n]. Dentro dessas janelas. é possível configurar a aparência das curvas do gráfico (cor. agilizando a geração de documentos e relatórios. divisão dos eixos.  Passo 1: Chamada das funções de criação de gráficos.Fundamentos  . legendas. Passo 1. utilizamos a função plot para gerar o gráfico da curva dada pela fórmula x * cos( 2 x).1. seguindo os passos listados anteriormente.6. Passo 2: Configuração da aparência dos gráficos No MATLAB®7. Passo 3: Impressão e exportação do gráfico Gráficos do MATLAB® 7 podem ser facilmente impressos e exportados para outros sistemas. utilizando duas funções básicas de geração de gráficos no MATLAB®7: plot (gráfico bidimensional) e surf (superfície tridimensional). ♦  Gerar o gráfico da função f(x) = x * cos (2 x) entre [~2n.* cos(2*x)  . 1 : 2 * p i .  ‘ »  plot(x.  .y)  Este deve ser o aspecto do gráfico gerado pela função plot. o 15 vetor deve conter os valores do eixo X e o 22 vetor os do eixo Y.Essa função espera como dados de entrada: ♦  Dois vetores linhas (ou colunas) com dimensões iguais: neste caso.  A função plot aceita um terceiro parâmetro.*sin(2*x))']. Digite a instrução seguinte para obter um gráfico com curva marcador'+' de cor vermelha: »  p l o t ( x .1---. » »  m = [ y ' (x. considera que cada coluna da matriz contém o valor do eixo Y de uma curva.1 ---. y . tipo de linha. e assume os valores 1:m (número de linhas da matriz) como -valores do eixo X.j---0 20 40 60 ao 100 120 140  Passo 2: Configuração da aparência dos gráficos.♦  Uma matriz: neste caso.  Exemplo: duas curvas x*cos(2*x) e x*sin(2*x). plot(m)  Fie  Edit  Víew  Insert  Tools DesViop W nd ow  Help  d 7 í # | k « iV A ® * DB  ■e1---.----. '+ r ')  .1 ---. marcador.----. que define as propriedades de exibição da curva do gráfico: cor.   Conceitos  57  . acionável pelo ícone de mesmo nome. rótulos dos eixos e legenda digite: >> >> » »  title( xlabel y labei legend  Gráfico f(x) = x * c o s ( 2 x ) 1) ('Eixo X ') ('Eixo Y ') ('x*cos(2x)')  Estes parâmetros também podem ser configurados de modo interativo. para exibição de curva: Cor y (amarela) m (magenta) c (azul-claro) r (vermelha) g (verde) b (azul) w (branca) k (preta)  Marcador . Para configurar título do gráfico. na janela do gráfico.Tipos aceitos pela função plot.(tracejada) solid (sólida)  Também é possível configurar títulos e textos de anotações. (ponto-traço) -. (ponto) o (círculo) x (x's) + (cruz) * (estrela) s (quadrado) d (losango) v (triângulo p/ baixo) A (triângulo p/ cima) < (triângulo p/ esquerda) > (triângulo p/ direita) p (pentagrama) h (hexagrama)  Tipo de linha : (pontilhada) -. por meio da janela [Plot Tools]. .2.2 * p i :0.  Por exemplo.* exp (x) .2) plot(x. s u b p l o t (1. cuja sintaxe é dada por: s u b p l o t (m.yl) t i t l e (1x * c o s ( 2 * x ) ') s u b p l o t (1.n.1:2 * p i .n.p)  .  Fite  Edit  View : Insert  Q ^ y  i :  SEI  Tools  Desktop  Windc  'k  □: y □ fc* Gfäfico f(x) -  x ’co&{2>.p)  Parâmetros de entrada: ♦  m: números de eixos (gráficos) na vertical (número de linhas).1) plot(x.J 20 Axes  30 Axes  1x126 1x126  ▼ Annotations \  Im e  'X .  ♦  n: números de eixos na horizontal (número de colunas). y2 = x .  "1  : Foure Color  Além disso. a seqüência de comandos abaixo gera a figura exibida a seguir: »  » » » » » » » » »  x = .* cos(2*x) .1.Janela [PIot Tools]: os recursos disponíveis nesta janela estão descritos no item 5. é possível criar vários eixos (gráficos) em uma mesma janela de figura utilizando-se a função subplot. yl = x .1. A -ro w \  Double A rro w  ^  Text A rro w  T  Tex18ox  I I Rectangle O  Ellipse  Figure Name j  .y2) t i t l e ('x * e x p ( x ) ') subplot(m.) £ 3 Gráfico f(x ) = x*cos(2x) I ED 4 x 'c o s (2 x)  ▼ N ew Subplots I.3  MATLAB® 7.2..Fundamentos  .  ♦  p: índice do eixo corrente (a contagem do índice é da esquerda para a direita e de cima para baixo). [ v j S how Figure Number  : Cotormep  Export Setup . Passo 3: Impressão e exportação do gráfico.  f Print Figure | I  Properties. a função print permite que a figura seja armazenada em arquivo em vários formatos bitmap: Parâmetros da função print: ♦  Conceitos  identificador (handle) da janela da figura a ser armazenada..sjp  Status:  Paused. O ícone print da barra de ferramentas da janela do gráfico abre a janela de impressão da figura:  F ie  Edt  View  In se rt  Toots  Desktop  W indow  Help .""| „.íoin j  Copie* Number of ccp<es:  í ]  [T  r.  ..  Name:  j \\e in ste r.. No exemplo.r~i L ijiH m Jí h  Além desse recurso. S docum ents w a *n g  T>çe  HP LaserJet 5  W here  \-* n 5 t« n 'ip  Comment:  I f ~ P n n tto S e  Pnnt range  fii f P-scj-íi .r. que retorna o identificador (handle) da janela de figura corrente. esta informação é fornecida pela função gcf.  » » »  Veja  x = -pi :0.jpg' podemos: ♦  usar a função imread para 1er as informações da imagem.Fundamentos  .jpg'. resultantes do cruzamento dos valores dos vetores x e y. a figura é armazenada em um arquivo com nome 'exercicio5.  Exercício 6__________________________________________________________ Passo 0: Preparação dos dados Gerar o gráfico da superfície Z(X.  ♦  usar a função image para visualizar a imagem. No exemplo. y = -pi :0 .6.2:pi. que cria duas matrizes.  Utilizamos a função meshgrid. i m a g e (a). y ) .j p g 1). [X.m.Y) = X * cos (2Y) entre [-71.p i :0.y) entre [—rc. y = . 2 :pi. » p r i n t (h. >>h=gc f .  0  conteúdo das matrizes X e Y geradas a partir dos vetores x e y:  MATLAB® 7 .2.2:pi.Y] = m e s h g r i d ( x .  Observação: a solução deste exercício está armazenada no arquivo cap2_exercicio_05.  ♦  nome do arquivo. empregamos a função surf para gerar o gráfico da superfície gerada pela fórmula x * cos(2y).7i:].  2.♦  formato de gravação. com (x. a figura é gravada em formato 'jpeg' com resolução alta.  Para visualizar o arquivo 'exercicio5.'. 1exe r c i c i o 5 . Gráfico Tridimensional Neste tópico.2:pi .d j p e g 9 0 1. No exemplo.71]. » »  a = i m r e a d (1e x e r c i c i o 5 .j p g ').  ♦  Digite no MATLAB: » »  x = -pi:0. As duas matrizes servem de entrada à geração das coordenadas tridimensionais necessárias para a definição da superfície. ..34167” | ho:... .. ..9416} .....-1.. m... .7214161...3416?...7 416Í.9416? | 7794161...5416].1416= . A matriz Z contém os valores da coordenada Z da superfície.3416..34167.5416Í .-15416!.-3....94159! -0..9416]_ -2. »  ||II  surf(Z)  .. 2: -2 5416 -2 3416 -2 5416 -2 3416 -2........3416!.. ....74161 m .....-7 l4 Í6 j‘..1416]” . -2........14161" -2.L 6 i t 2 ’ ...277416!.94159] -0. lé -3....54161.....-Í... 1. -2.3416! -2....1416] -179416! -2.-3......‘-274167. -2...--2:1416! -2 5416 -2 3416 -19416 -2 5416 -2 3416 -2..94167 -1. -3714161 ....3416] -2.9416] -1. '''''-274167 -2 7416 "-2.14161 -3..-254167 .............\%£Ar ray Editor fic A fy ® L  X  *  :.-2. -1.. -j794iâ!: 7 ”7 ’■'Í2..9416! -2.--3..9416 .'”'-27Í4l'6l..........14161  5  4  Ar ray Editor ....| 7 1 g t ..-714Í6!... -3..-734161. ...7416] ” íjj .-2...........9416! 3 .-17Í 416Í... -1.3416! -2.-77416].9416 -2. --3"l416j' .í....-Í. i r 7..1416....14161 -3...54161. ~~— -2'7416..9416] ' -2...7416] <ü  EB CD 0 & \□ h ' ..........94167 -271416... -2..sj.| -2..1416! -2"9416 ' 3: ......94159Í -0... -7l4 1 6 [..  Passo 1: Chamada da função de criação de superfície.....-25416j:.5416!.3416.... ""-3Í1416Í.14161“ -2..9416 .9416! -:i.j 6 I 7 -2 5416 -2 3416 -271416 .. .3416í 4 | -2. 3.9416 -2 7416 -277416!...9416Í 2... -27416:... -2.’5416|7'” '"'*2-34Í6Í.9416: -2.-79416:.. .....3416] :-2...9416"..........74Í6l 3 -1:7416! -1 7416 -1.941591 -o7p|  T  m  _  '“-Í7_ p ^  As coordenadas da superfície são calculadas com os valores armazenados nas matrizes X e Y: »  Z = X  .Y ffl m b a i d ’ ? x | *•03 | 1^1* ‘■m'•Stack.. -1.9416 . ... '■-1...-277416!...9416 M -3^1416]” -2..... -2.1 -779416! -1... -2714161 -2...9416: -2.9416 .... .. A função surf cria uma superfície... • “-7T416j )12j -0.S....5416! .5416! ' -2. -2....777 4 7 ! ! ....... 2754167 ..-2Ü4Í6Í7 .  b J » \ im \ StackU 2 3 ! t ~T -3...-25416!:......9416? -1. "-271416Í.14161..... '-71416!.“754167' . ..-1:1416? .. ...... I...........-1..7416! M ü ........94161 "TÍ79416Í -1.. u i ..... -27Í 4Í6: .*  COS  (2*Y) . -1.94159T"' -0...3416! . "‘-277416...1416! 73..... -3.. -1...94Í6!......34161 -1.9416[ 1: 1 ri.... ......-21416!.94161 ~ -2.1416! -1 9416 -27Í4Í6I .Í41Ü -2.9416 -2.-3....‘7 -2 5416 -2 3416 -2 1416 -1.......-2714167'.34161 -2..9416 -2.......-1 34161 1 :11j ..........34161 -2..7416! ’ -2 7416’“ ’ -2...7416] : S t .......-1.^ j ..-2.-Z94Í6 ..-37l4Í6].. '-2 1 4 1 6 '..... s i ~g...14Í6Í ...... -2... li 10 -Í1416| -2.......1416! 4..1416! .... 7Í7S4Í6|7 .7416] ^ ]: -1 7416 ....74Í6Í ...3416j -2.-25416!..5416! ' -2..........941591 -0:941591 -0....... -2 5416 -2 3416> -2.-254161.-2.. -3.. -1.1416! .....2.. . SJ... . -3.. 7. pois os arquivos de dados neste formato possuem extensão .  2.Passo 2: Configuração da aparência dos gráficos. MAT é o formato de armazenamento de dados mais eficiente (rápido e compacto) disponível no MATLAB®.  2.m at contendo todas as variáveis definidas no [Workspace]: I 62 )  MATLAB ®7-Fundamentos  .1. é possível configurar mapas de cores. A funções que manipulam dados . posicionamento de câmera (visualização tridimensional).MAT  ♦  save: grava arquivo . Leitura e Armazenamento de Dados Neste tópico. apresentamos os recursos de leitura e armazenamento de dados.MAT são: ♦  load: lê arquivo . usual mente chamado de formato MAT.8.m.  Observação: a solução desse exercício está armazenada no arquivo cap2_exercicio_06. bem como o utilitário de importação de dados.MAT (mat-file). em formato MAT. No caso de gráficos tridimensionais. Os outros recursos do MATLAB® 7 de manipulação de arquivos de dados são apresentados no capítulo 4. Este assunto está detalhado no tópico 5.1. ASCII e MS-Excel. além de configurar tipo de títulos e textos de anotação.MAT  Exemplos: ♦  grava um arquivo com nome dadosl. Arquivo MAT O MATLAB® possui um formato binário próprio de armazenamento de dados.7. transparência e iluminação. tl.  S lp r" . Arquivo ASCII Neste tópico mostramos como utilizar as funções de leitura e gravação de arquivos ASCII em formato delimitado (delimited file: dados separados por caractere delimitador): ♦  dlmread: lê arquivo ASCII delimitado.2.MAT também podem ser lidos pelo utilitário de importação de dados que é apresentado no tópico 4.mat contendo todas as variáveis fornecidas.Q . >> load dadosl  Arquivos de dados .3 :X .» » »  ♦  a = [1 2 3. contendo apenas a variável a: »  save dados2 a  A função save é acionável pelo menu contextual do [Workspace] para gravar o conteúdo da variável selecionada em arquivo.C G . No caso. save dadosl  grava um arquivo com nome dados2.m at. vamos ler o arquivo 'cap2_dados1 . b=[10 50 100] 1.txt'.4 5 6.  2.  ♦  dlmwrite: grava arquivo ASCII delimitado. que contém duas colunas de dados numéricos.2.7.  S-  .  No exercício proposto a seguir.7 .Q 9 nTj Open Selection Copy  Ctrl+C  Duplicate  Ctrl+D  Paces  Delete  ♦  Hfnax  [SSBI  Save as type:  jM A T -fiie s f  lê um arquivo com nome dadosl. As variáveis contidas no arquivo aparecem no [Workspace].7 8 9] .  E crie um gráfico com os pontos dados e a reta de aproximação.txt1contém dados sobre o crescimento da população de águas-vivas em um viveiro a 19°C.Exercício 7 O arquivo 'cap2_dados1 . 1*') .  III.  Obter valores da reta ax+b que melhor aproxime os pontos dados (mínimos quadrados / regressão linear). -  2. é um vetor linha) e a variável y recebe a 2.  Use a função plot. As informações estão organizadas em 2 colunas e 50 registros (linhas): ♦  1. I.  II.coluna: % tempo de observação (de 0 a 100%).  Solução do item I: A função dlmread recebe. para gerar o gráfico: » plot(x.coluna: % tempo de observação (de 0 a 100%). apresentada no item anterior.coluna: tamanho da população de águas-vivas.coluna: tamanho da população de águas-vivas.  ♦  2-  coluna: tamanho da população de águas-vivas.txt'). como parâmetro de entrada.  A variável x recebe a 1? coluna transposta (ou seja.  A variável m recebe uma matriz 50 x 2 com os valores numéricos armazenados no arquivo: ♦  1a  coluna: % tempo de observação (de 0 a 100%).3  MATLAEP 7 ■Fundamentos  .  ♦  2. 2 )'.txt' e criar o gráfico tempo x tamanho da população. » m=dlmread(1cap2_dadosl. Criar um arquivo 'cap2_saida. 3ã coluna. o nome do arquivo a ser lido e retorna uma matriz com os valores lidos. os valores obtidos pela regressão linear.txt' com 3 colunas: 1 .  » y=m(: . 1 ) ' .  Ler o arquivo 'cap2_dados1.  .Y.coluna transposta: »  x = m( : . .4225.233*x + 2. usamos a função polyfit.  ♦  um número n correspondente ao grau de um polinómio. correspondentes a coordenadas de pontos.  D esktop  W indow  ®. Dados de entrada: ♦  dois vetores colunas. x e y.y.  Dados de saída: ♦  um vetor p de dimensão 1 x n+1.€  Help  □ B !■ Q  120  0  10  20  40  50  60  70  80  80  100  Solução do item II: Para resolver o item II. contendo os coeficientes do polinómio que melhor aproxima os pontos dados: Pol(t) = p(1)*tn + p(2)*tn_1 + .4225  A reta que melhor aproxima os pontos dados é f(x) = 1..+ p(n)*t + p(n+1)  No caso de regressão linear.’> F igure 1 Ne  Edd  Vtew  In s e rt  Tools  □ t» B S I fe i O.1) P  =  1. usamos a função polyfit para obter um polinómio de grau 1.. Para calcular o valor de polinómio para todos os valores de x.2363  B  2. que calcula aproximação por polinómio. usamos a função polyval. » p=polyfit(x. à © .  Conceitos  .   ♦  um vetor p de dimensão 1 x n+1.m).Dados de entrada: ♦  um vetor p de coeficientes do polinómio.yp)  Solução do item III: Para resolver o item. vamos criar mais uma coluna na matriz m contendo os elementos do vetor yp (concatenar horizontalmente m com a transposta do vetor yp) e gravar a variável m no arquivo 'cap2_saida.  Para criar um gráfico com as duas curvas.x). digite: » plot(x.txt1.  ♦  um vetor x com os valores para os quais o polinómio deve ser calculado. Para compor m.  MATLAB®7-Fundamentos  . contendo os coeficientes do polinómio que melhor aproxima os pontos dados: » yp=polyval(p.m.y. digite: » m= [m yp ’].  Para gravar o arquivo.txt1usando a função dlmwrite. digite: » dlmwrite('cap2_saidal.  Observação: a solução desse exercício está armazenada no arquivo cap2_exercicio_07.'*'.x.  Dados de saída: ♦  um vetor yp com os valores do polinómio calculados em x deve ser calculado.   ♦  Txt: cell array contendo o conjunto de dados alfanuméricos. basta substituir as funções de leitura e gravação de arquivos dlmread e dlmwrite por: ♦  xlsread: lê arquivo *. porém os arquivos de entrada e saída no exercício seguinte constituem arquivos no formato MS-Excel. 1Al :B50 1)  ♦  2.xls. digite: »  x l s w r i t e (1c a p 2_saidal.xis 1.xis'.  A função xlswrite recebe.7.xls).xis 1. Exercício 8___________________________________________________________________ Como os dados estão armazenados em arquivo do MS-Excel (*.  Ra w ] = x l s r e a d ( 'cap2_dadosl.xls no qual o dado dever ser gravado e a variável a ser armazenada. >> m = x l s r e a d ( 'cap2_dadosl.  ♦  xlswrite: grava arquivo *. Para gravar o arquivo.m). Arquivo MS-Excel Considere o exercício 7 apresentado no tópico anterior.2.  A função xlsread recebe. m .  Esta função aceita dois parâmetros de entrada opcionais: »  ♦  x l s w r i t e ('cap2_saidal. sem formatação específica.3. o nome do arquivo *. 39 parâm etro: intervalo que vai conter os dados.xls a ser lido e retorna uma matriz com os valores lidos.xls').  Essa função aceita dois parâmetros de entrada opcionais: »  m=xlsread ( 'cap2_dadosl . o nome do arquivo *. 'PlanX ■.  ♦  Num: matriz numérica contendo o conjunto de dados numéricos da planilha.1A l : C 5 0 ')  2° parâmetro: nome da pasta na qual os dados devem ser gravados.parâmetro: nome da pasta que contém os dados a serem lidos.  ♦  Raw: cell array contendo todos os dados.xls. como parâmetro de entrada.  Conceitos  .  Além disso.xis 1). como parâmetro de entrada.  ♦  32 parâmetro: intervalo que contém os dados desejados. Txt. 'P l a n l '. xlsread pode retornar os dados separados em até 3 categorias: »  [Num. .  MATLAB® 7 .0 4 0 8 11. w k l íÉ fjL o tu s Z w k l  S ave W orkspace A s ... m  m  m  fia d o s '  -  M  8P  %  CK  '-.0703! 12.  3í l  ^ s  F e rra m e n ta s  m  ..m 3 c : \ ..r  % .7.\cap02_Exercicio6.f§ P ) A rq u iv o l b  JEditar  &  Q  i i  111 M  â  f : A ria í ' Í 2  E xjb ir  t í .. Page S e tu p .204:" 3. A B s C \ A....1 0 2 2 2..99151! 5": .m E xit MATLAB  C trl+ Q  Recognized Data Be$  Exemplo: leitura de arquivos 'cap2_dados1 ..1 63 3 2 6 .  -Q g ra fO S  figrafôS •Qgrafll § license Lotus l. Este comando pode ser acionado pelo [Command Window] ou pela opção [Import Data..4991 19..3166....3 9 ‘3 1 5 ^ 3Q.  C trlfS  Set P a th .  • a n EH iFrog_R ed i E dit  1 1 1 I  View  Graphics  D e b u g : D<  New  C trl+ N  Save  C trl+ 5  O pe n....4 6 8 5 2 4 > 6 ..Ò8 3 9 8 1  2: &  D  j  E  F  i  Observação: a solução desse exercício está armazenada no arquivo cap2_exercicioJ)8.......rk \ca p 0 2 _ E x e rc jc io 7 l. 25.ES  Microsoft Excel ......31381 1 7..0 9 8 2 7.3917! 14.0 3 1 6 12.cap2„saida1  I . ♦  Identifica o tipo de arquivo. .  ♦  Identifica a pasta.  C trl+ O  Close W orkspace  C trl+ W  % Recent Doctments..24 5 1 “ 2 7 . \ . P rin t.m 2 .. que verifica o formato do arquivo selecionado e executa seu carregamento utilizando a função de leitura mais conveniente disponível no MATLAB®7.0375! 7 12.... (iã  .m 4 c: \ .51 4 63 ' FS '1 ... 10.4.....  ^matisbl § re d e y e d fro g •BxdYd ffixy  C trl+ P  l c . . P re fe re nc es .  ♦  Exibe os dados....< *  ...7\w o rk \c irc u ito0 2 .  ♦  Abre a planilha.xis1. 14V 236Í .m.. Utilitário de Importação de Dados O comando im portdata do MATLAB® 7 é um utilitário de importação de dados. .  « -  ^  In s e rir  10  Ó  F o r m a ta f  V . 8. • .: H  ! Q.  2. 1 0 11...7\w o rk\circu ito 01 .. .] no menu pop-up [File]..1 2 2 4 S 26.94553! ~3 ! 4 .Fundamentos  . H11.42253: 2 ] 2 .56074: .  t à  . ! 3. manutenção e melhoria de código..r  Cr p & j n c!c-i s Í---XA esc h fow  »(■  3  f.....571 i  <  4  : iffii  36... Fortran ou Visual Basic... tanto das funções do núcleo do MATLAB® 7.....  Por estarem baseados em um núcleo extremamente eficiente.. I Conceitos  ..“ B i. M -Lint: analisador de sintaxe de programas para auxiliar o processo de depuração..531 28.: 11......8.0703112...285! 3 9.  v  .093 4522218816.27 42 69894746 .J 9j 18.. Neste tópico..098Í27...4 4 0316 12.)■  Impor» W izard  0 8 0 8 0  Select variables to import using checkboxes. quanto das aplicações desenvolvidas pelo usuário....... desenvolvidas por especialistas e validadas por professores... portanto..Size 5 0x3  j B y te s ..... J 16 327 34.74419258.51462901.  Help  |  24 4 9 " 26.65246605.*. ce ll m ode: célula de código) e depuração de código (debug mode).03749883.........08398023...M r_  2 | 3 11..  1200 double! i f ___  i¥ — >|  < |  2.3917:14... f ..  [ Fimsh  J  m  ( Cancel  ii |  Programação no MATLAB® 7  Desenvolver soluções e efetuar manutenções em programas no MATLAB® é..  --------------------------------------------------. 54 066 47.........J 10] 1..... cientistas e engenheiros no mundo todo.3166:25... O MATLAB® 7 utiliza a tecnologia 'JIT accelerator1 (Just-In-Time Accelerator).94552505..! 5: 81633 26.... j Class I  \  • ■ ..... sem dúvida.51300000....! 3 4j 61224 26.46851849...! 8I 14...315^.....: f  tp^vijçíi .499:19.. 10 204 7: 12 245 27..99151194..3S. Isto se apresenta em dois grandes aspectos: i  ♦  Núcleo do MATLAB® 7: Composto por um conjunto de bibliotecas matemáticas eficientes e confiáveis.....367138....1]_____ 20... mais eficiente e rápido do que em qualquer outra linguagem de programação convencional como C/C++..--------  —  @ Create variables matching preview.403 36 36799999 37. r v M * •nairsji.12922535.  Variables r i C:Vnat(ab7Wvorkfcap2_saida1 xls | Name *  Import  El  i W  f .. flexível....60722093. de codificação simples e. 51..798I32.... programas executados no MATLAB são mais lentos do que códigos gerados manualmente em linguagem C/C++ ou Fortran.102122.42253160...  ♦  Plataforma de desenvolvimento composta por: Linguagem de programação de alto nível.. Edit: editor de programas... |  « Back  i  j  >«>..56073953.. que aumenta a velocidade de execução...3138117... composto por ferramentas de apoio a desenvolvi mento (por exemplo.... apresentamos os conceitos básicos de programação na plataforma de desenvolvimento... fácil de ser aprendida.  Neste tópico apresentamos os aspectos de aplicação mais imediata dos recursos de edição e depuração de m-files.cU? itan? X Leitura do arquivo 1cap2_dadosl.  ♦  acionando ícones da barra de ferramenta do MATLAB »  Pi úZ  . % Ssparacao dos dados  12 r í  x = m ( : .  ♦  J  indica que a linha de comando continua na próxima linha. nem de saída. e utiliza as variáveis do Workspace. Funções utilizam seu próprio espaço de memória para armazenar variáveis locais.  ♦  '%' indica texto 'comentário'.Fundamentos  .  e  a  : -a «  a r  o  m  sm a  » •*  ■. t x t 1) .8. foram codificados como scriptfile. para automatizar algum processo repetitivo.bat' do DOS.  ♦  Function/Program :tam bém é uma seqüência de comandos do MATLAB®.  W.jSadosa.í l t t o r .  MATLAB® 7 . Existem dois tipos de m-files: ♦  Script: é uma sequência de comandos do MATLAB® e serve. por este motivo.  li  !■  e  !^ 15  %  Exifcicao dos pontes  V  ■seriei  .c : V nía t l a b / \ w o r k ^ 4 p Z . basicamente. !  Solueac.pcho on % Arquives: :c&p2_jã>:ercic'ió _G7 3 % C&PITÜLO Z . é exibida a numeração das linhas do programa em edição.  13 -  y -m ( : ..e x í í r c ic io ^ O 1. 2 )• .  Os elementos do editor de programas são detalhados. É semelhante a um arquivo '.  edit cap2_exercicio_07  f. são usualmente chamados de m-files.ASCII  1 2  ? 6 1 7 1 8 9 ||  10  % % %.êõluçao do Exercício 7 4 * leitura e gravacao d* aequive .Ln 1  Col 1  II ♦  o editor abre uma pasta para cada arquivo.  □ A. posteriormente. Editor de Programas: Edit Arquivos de programa do MATLAB® têm extensão '.m' e. m  ü  f» jf e jlX )  Ed* Text Cel Tods Debug DesWop Window Help d  a?  a  x  * • * >  =»  &  *  f. 1) •. O MATLAB possui um ambiente para edição de programas que pode ser acionado de duas formas: ♦  digitando edit na linha de comando. até este ponto. no capítulo 3 deste livro. funeso dlmread.2. Não tem parâmetros de entrada. mas aceita parâmetros de entrada e retorna parâmetros de saída.  ♦  na margem esquerda da tela.  m=dlairead ( *cap£. Os exemplos deste capítulo.1. txt* ccic a. t x t 1) |. l) = l.r 1. « cc-tn  : i a li. ou seja.] ]= a ( i. ln  9  Col 1  Depois  ( 71  . trecho de código que é executado em bloco durante a operação de depuração (debug modé) do programa..♦  os textos são exibidos em cores diferentes conforme sua classe sintática: palavras reservadas (ex.] ) .l.  % C o ic p c e o s d e m % is  j=2: i  CTRL+I  c s  %  m  Tools s  Debug -  .  Principais recursos de apoio à codificação de programas: ♦  cor de texto: identificação de texto com cores diferentes por classe sintática. Cell Tools  B  j  & %  Desktop  :■*  P U S  [L. Caso o par não seja encontrado.1 ) + a ( i. ] .e : \ m a t la b 7 \ w o r k \ t r ia n g u I o _ p a s c a L ia *  1 Füe lü  Edt G?  s i U 1  T e xt. 13  Col 5  Antes da 'indentação1  Conceitos  \^  end  9  1  T e x t -Cell  S  5-  a [ i. o editor exibe um traço.txt' m=dlmreadj_'c a p 2 _ d a d o s l .. [ } estão balanceados.1 : K : c i i B s . Edit  *Õ _ v [  •f . sublinhando ambos. f o r i= 3 :n :  5 -  fo r  \  I n ic ia  a c o rs id e n t i d a d e  la í e ia  p r iif K iic a  end end  D £3? c r  *■' (d í  c c l u u a cosei.ll£ .m): H  E d it o r . fo r  Desktop  m  W indow  Help  fà k  -  a = t n a n g u lo  fo r  6 -  *o  X I ”  ! x pascal  d  v l  * (n )  % I n ic ia  *  '-i I n i d s  p n n ie ir a  I  coa> i d e n t . a = c r ia n g u lo _ p a s c a l (n )  2 -  6 -  Debug  > 1 I  V  <  > tnangufo_pascel  .  com  Exemplo de par não-balanceado:  ♦  'indentação1automática: o editor organiza automaticamente os recuos de texto de acordo com as estruturas de programação definidas no código selecionado. Basta posicionar o cursor em um dos elementos para que o editor identifique seu par. end.j) = a ( i. j) .: for.l.  Exemplo de par balanceado: % Leitura do arquivo 'cap2_dadosl.  .  ? X  a = e y e (n ).fà f.. j.  ♦  balanceamento de expressões: o editor verifica se os elementos de expressões ( ).  end S  5 :triangulo_pascal  Lr.o lu r .. +  i  f u n c tio n  2 -i  a **e y e ( n ) .l.l) + a |i. Basta selecionar o trecho do programa e digitar [CTRL+I].f i o . 1) * 1..|  o .  3 4 -  a ( : .i d a d *  id ff.  7 8  m  File.  3 4 -  a ( :. f u n c t io n .  Exemplo (arquivo triangulo_pascal. if): azul  ♦  -  textos de comentário (indicados p o r'%'): verde  -  cadeia de caracteres em edição: púrpura  -  funções e variáveis: preto  '%%' indica delimitação de célula código (cell modé)..l.  W ndow  Heip  . . t x t '  cc  ttfi  «V  d Im re a d .|  .m  I File  E dit  Text  1 8  CeS Tools D ebug D esktop W indow  1K ä  L e it .1224] 8. que aparece identificado com o prompt  72  MATLAEP 7 . quanto no editor. o qual passa a ser indicado por um ponto vermelho. □ v-  Help  1c a p 2 _ d a d o s l .0 7 0 0  2 . Basta indicar o traço à direita do número da linha.08161 6.c :\r o d tId b 7 \w o rk \c a p 2 _ e x e rc ic ío _ ü 7 ..  9 10 -  tn ” d l m r e a d ( ' c a p 2 _ d a d o a l . Basta aproximar o cursor da variável a ser observada.  11  =1 S e p a r a e a o  12 -  X-» ( :/ !) '..3166  E d ito r . U c r ip t  ! ln  13  Col  1  lo v iS .07 11.0408' 4. é efetuada em modo de depuração (debug modé).499 26.  Em debug mode...314 26.1633] 10. = 0  1 1 .3 1 4 0  6 .392 12. t x r . |y = ro : 5 0 x 2  13 O 14  **  15 16 -  Pi  17 18 i -  dos  dados  : !  i  .0 8 1 6  1 2 . tanto na janela [Workspace]. : y .u r a % a  o \ ã>  ä do  fu c e a o  a r q u iv o  M  jr ..  -fã]  ®  #  N am e  i  File  <50x2 double> <1 x50 double>  1  Edit  View  Graphics  Value  # 1  1J 2! 3! 4i 5j 6!  T °l.2.Fundamentos !  .102 3.3 9 2 0  4 .204}  Debuç  II . 2.  A execução do m-file.2 11.8. após a configuração do breakpoint.4 9 9 0 (  __a.I ©  :  ?* ? X  ' © ! ' © : ® [IP i£ÜI í £ l h [c a p . Depuração de Programas: Debug Mode Principais recursos de apoio à depuração de programas: ♦  B reakp oint (tecla F12): configura um ponto de parada na execução do programa.  j  d o u b le . ! ) .2. é possível monitorar o conteúdo das variáveis do programa em execução.0 4 0 8  1 1 .1 2 2 4  2 6 . y.t x t ').y. '*') K » dbclear 22 % Desconfigura breakpoint na linha 22 K » dbstatus % Exibe breakpoints Breakpoint for cap2_exercicio_07 is on line 13. A última linha executada é indicada por uma seta verde.  . a tecla de função [F10] aciona a execução linha a linha do código. K » dbstack % Funcao chamada > In cap2_exercicio_07 at 13 K » dbstep % Executa proximo passo  22  %% % Exibicao dos pontos plot(x. 1*') 16 plot(x.0 promtp  (k » )  Função dbstop n dbclear n dbcont dbstack dbstatus" dbstep dbtype dbup dbquit  habilita as funções debug: Informação configura breakpoint na linha n desconfigura breakpoint na linha n avança execução até o final (tecla F5) exibe pilha de chamadas de função (quem chamou quem) exibe lista dos breakpoints configurados avança um passo de execução (tecla F10) lista o arquivo que está sendo depurado muda o contexto da janela [Workspace] encerra modo debug  Exemplo: %% m = d l m r e a d ('c a p 2 _ d a d o s l . y = m {:.2) K » dbstop 22 % Configura breakpoint na linha K » dbstatus % Exibe breakpoints Breakpoints for cap2_exercicio_07 are on lines 13. % Separacao dos dados x = m (:. K » dbquit % Encerra modo debug  >> ♦  (t Conceitos  Tecla de função [F10]: em debug mode. 22.1)1. # Í M f. Gera um relatório de ocorrência de falhas e possibilidades de melhoria detectadas.  . Kelp  M f.Ü Editor . %:?-Separac«o dds dados x-»(:.!.>$• plot (x. Le 1 1 u ra do arqu'ivo *cap2 _  % a funeao diitiread.  .8.SCrçit____  r-~-  L  <!> Tecla de função [F5]: executa o arquivo até o final.dados! »ixt-1}.\matiob/\work\côp2_exerciGÍo_0/. que podem ser isoladamente.  5i> % -Exifeioao das .i File  Edit  Text  Cell  D & B  o  t % "S sl -  Show Dependency Report Open Profiler  MATLAEP 7.(.q u e . Quando o cell mode está habilitado.porit-as plot(x. ou células de código (cell). y.iC fi  ^  C  B Q ©  ? X  5 "v  :c.1?<) In s e rt T e x t Mar  Previous C ? !  O rf-K ip  2.m Fite  Edit  T ext  D 3 S  Cell  Tools.  • cap2. pela opção [Check Code with M-Lint]. as células de código ficam destacadas com fundo laranja-claro. ♦  Ce/l: o s in a l'%%' delimita blocos de código.c.Cíu. H Editor e:\matIabAworkttrianguio_pascal..y.Fundamentos ..  7=m(:/2j1.l)'.•.p. Debug  Desktop  &  * fe  j*. arquivo funcao diisread. um analisador de sintaxe de programas que verifica se códigos de programas m-files estão sintaticamente corretos e sugere melhorias na codificação.jíWjfWj  W in d o w . •* )  Sciúcsc •:1o ate .í:uí.\  Cell  Tools  Debug  Desk  * A X  . .3. it  T ext  □ Q» "~7~--.:x f  eiC'MC'a do. no menu [Tools]. Analisador de Sintaxe de Programas: M-Lint Além do modo debug. a plataforma de desenvolvimento do MATLAB® 7 fornece a ferramenta de apoio M-Lint. 9 10 11 12 -  13 O 14 H Exíbic&o dos pontos ..  . Este modo de execução é habilitado na opção [Evaluate Current Cell] do menu pop-up [Cell] do editor.e iy r o x . 0 M-Lint pode ser acionado dentro do editor de programas edit.   .Vamos executar a verificação no arquivo . .. A sintaxe básica de definição de função segue o formato abaixo. .\ tr iangulo_pascal_err o. PsN ] = nome_funcao  Pel.m  0 M-Lint gera o relatório no Web Browser do MATLAB® 7. j-l)+a(i-. i ' : * '  File  Edft  View  Go  Debug Desktop  Window  Help'  -B  ^  -. j)..8.  .HTML. end end  3 messages 8l Parse 18: Parse .l)=l. a(:.m': ** M i i n t C o d e C h e c k R e p o r t F ie  E d it  View  Go  D ebug  D e s k to p / W indow  Help  G I# 1 M -Lint Code C hecker Report Report for file c:\matlab7\work.' r i a n g u i o _ p s 3 c a l _ e r r o f a )  function a = triangulo_pascal_erro (n) a*eye(n).3*ai-l. PeM )  .triangulo_pascal. Essas funções aceitam múltiplos parâmetros de entrada e retornam múltiplos parâmetros de saída (esta é uma característica muito peculiar e extremamente prática do MATLAB).H _ j  H  “ I  Window  Help  f.\triancrulo pascal c:\aatlab7\work\ triangulo_pascal. Vamos executar a verificação no arquivo 'triangulo_pascaI_erro. apresentaremos os elementos de programação de funções no MATLAB®. As informações podem ser exportadas para .m': V M-Lint Code Check Report Fie t d t D  a  is ’S  Text  C el  Toots  i % « T o  Q t i% a  10  . no editor edit: function <Exprl> <ExprR>  Psl.m  -  for j=2:i-1 a(i. Elementos de Programação do MATLABw7 Neste tópico.l.ticlad M-Lint Code Checker Report i. % Inicia prirasira coiuna Report for file c: \aatlab7WorkN triângulo pascal erro for i=*3:n % Ccaspoe os dexaais c :\matlab7\work.4. +  Debug ■-  Desktop a  * t. No caso de arquivos com erros de sintaxe. ^ Inicia a core ider-.(diagonal corcpcsi-& p: — . o M-Lint emite o relatório com a indicação da linha e a descrição do erro detectado.8: Parse  errorat 1= 1 appears to be invalid HATLAB syntax errorat 151 appears to be invalid MATLAB syntax errorat ')1 appears to be invalid MATLAB syntax  2. m________________________________________________________  % CAPITULO 2 .  ♦  implementa a mesma operação do script-file 'cap2_exercicio_07. coef] = cap2_exemplo_13 (Arq_Entrada. y= m ( : .Exemplo de funcao % [m. Executa as mesmas instruções em 'cap2_Exercicio_071 % 3....m' com as seguintes características: ♦  função principal: 'cap2_exemplo_13'.yp) % Montagem da matriz m: m concatenada com % o vetor yp transposto m = [ m y p '] .  ♦  Pe1..  ♦  parâmetros de saída: matriz m (completa com as três colunas).. m=dlmread(Arq_Entrada). Arg_Saida) % 1. y . <ExprR>: expressões que definem as ações a serem executadas pela função.  MATLAB® 7-Fundamentos  .. % Exibicao dos pontos p l o t (x.  A sintaxe básica de chamada de função segue o formato abaixo..  ♦  nome_funcao: nome da função (é case-sensitive). Le arquivo Arq_Entrada com dlmread % 2.m'. % Calculo do valor do polinomio yp=polyval(coef..  ♦  parâmetros de entradas: nomes do arquivos de entrada e de saída.m).x).x. que indica início de definição de função.. PeM: parâmetros de entrada.. % Exibicao dos pontos e da reta de aproximacao p l o t ( x .. Edit:  cap2_exemplo_13.. vetor coef (com os coeficientes da reta a*x + b).. '*'. 1* 1) % Calculo do a*x + b que aproxima os pontos coef=polyfit(x.1)..  Para ilustrar a construção de uma função. Retorna a matriz m e o vetor coef function [m. PsN: parâmetros de saída.y.♦  function: palavra reservada (é grafada em azul no editor). % gravacao do arquivo de saida contendo a matriz m dlmwrite(Arq_Saida. Arq_Saida ) % Leitura do arquivo Arq_Entrada com a funcao dlmread..  ♦  <Expr1> . criamos o arquivo 'cap2_exemplo_13..!) '..  ♦  Ps1. Gera arquivo Arq_Saida com dlmwrite % 4.PsN]  = nome_funcao  (Pel.P e M ) . na linha de comando no [Command Window]: »  [Psl..y. 2 ) 1. coef] = cap2_exemplo_13 ( Arq_Entrada. % Separacao dos dados x = m {■..   Com relação aos parâm etros de saída. Warning: Function call Cap2_exemplo_13 invokes inexact match c :\matlab7\work\cap2_exemplo_13. letras minúsculas e maiúsculas são consideradas diferentes. Gera arquivo Arq_Saida com dlmwrite 4. é exibido pelo comando help: help cap2_exemplo_13 CAPITULO 2 . note que:  a. % Sepsaaciao cios .  » [resultado. W Editor ..’ .  Stack •  Ln 24  Ä  .m 1 Fite Ed* Text Cel Tods Debug Desktop Window Help  mmm *  ^2 1 ’ 1  Ia  H  7 8 y 10 11 12 13 14 -  : . 1x . O MATLAB® 7 exibirá uma mensagem de aviso caso alguma diferença desse tipo seja detectada.3ac3o3 x~w(:. d a t ').  b.c:\m atíab7\workkap2_exempto_J3. coeficientes]=cap2_exemplo_13('c a p 2 _ d a d o s l .t x t 1.dat')..  O texto de comentário no início do arquivo. m=dlinread(Arq_Entrada) . t Kxihicao do» ponto» paot(x.txt'. .  com mais parâmetros que o declarado.T i. isto é. 'x. Arq Saida ) funcao diasread. Le arquivo Arq_Entrada com dlmread 2.< .  A execução da função 'cap2_exemplo_13' permite indicar os arquivos de entrada e saída e as variáveis de retorno:  » [resultado.1x . »  c.  function [ m.m. d a t ').coeficientes]=Cap2_exemplo_13(1cap2_ d a d o s l .Ê z . cap2_exemplo_13  d. o MATLAB® acusa erro Too many output arguments' (parâmetros de saída em excesso):  Conceitos  &  .. x  I  X  ’□ v  l. 7=m(:. nomes de função são case-sensitive.1 )'.'. Retorna a matriz m e o vetor coef  0 arquivo m-file e a função principal devem ter o mesmo nome. coe£] = cap2 exemplo_l3 ( Arq Entrada.t x t '. além de documentar o programa.!  . se a chamada da função for feita: ♦  com menos parâmetros que o declarado.2)' .. 7 .h ° .Com relação a esse exemplo. Arq_Saida) 1. a função retorna apenas os parâmetros fornecidos: »  ♦  resultado=ca p 2 _exemplo_13('cap2_dadosl. Executa as mesmas instruções em 'cap2_exercicio_7' 3. j + i * L i. V >  Cot 32  A partir do MATLAB® 7.Exemplo de funcao m = cap2_exemplo_13 (Arq_Entrada..  independentemente do workspace do MATLAB®. Pi  ♦  No exemplo precedente.  ♦  Parâmetros de entrada e saída são a forma (interface) mais adequada para trocar dados entre o workspace do MATLAB® e ambientes internos de funções.» [resultado. % soma n end m=Var_Per s i s t e n t * e y e (n). else Var_Persistent = Var_Persistent+n.  ♦  Devem ser definidas explicitamente dentro da função como persistent: e d i t : cap2_varpersistent_exeir. dentro de uma mesma sessão de execução do MATLAB®. recebe 1 Var_Persistent = 1. isto é. o MATLAB® armazena suas variáveis em uma área de memória denominada workspace.  ♦  Os escopos das variáveis do w orkspace e das variáveis locais de funções são distintos: -  variáveis do workspace não são reconhecidas dentro das funções.Fundamentos  .  Com relação a escopo de variáveis: ♦  Como já sabemos.coeficientes.m___________________________________________  % Arquivo: cap2_varpersistent_exemplo % Retorna Var_Persistent * (matriz identidade nxn) function m=cap2_varpersistent_exemplo (n) persistent Var_Persistent if isempty(Var_Persistent) % se vazia. ♦  Variáveis locais podem ser do tipo 'variável persistente1 (persistent}.  ♦  se nenhum parâmetro for indicado. Variáveis persistentes são variáveis locais que mantêm seu conteúdo de uma execução para outra.variáveis locais não são reconhecidas fora do escopo das funções nas quais foram definidas. a função retorna apenas o valor do primeiro parâmetro.  .t x t ' 'x. Posteriormente.  Variável Local ♦  Funções trabalham com variáveis locais.m]=cap2_exemplo_13(1cap2_ d a d o s l .  . a função inicializa o conteúdo da variável persistente com valor 1 (verifica se seu conteúdo é vazio).3  MATLAB® 7 .dat1) ??? Error using ==> cap2_exemplo_13 Too m a n y output a r g u m e n t s .plo . variáveis que ficam armazenadas em áreas de memória próprias. a variável recebe seu conteúdo mais o valor de n (parâmetro de entrada).  'i'). >> c a p 2 _ v a r g l o b a l _ e x e m p l o ( 3 ) ans = 5 0 0 0 5 0 _________0 0 5________________________________________________________________________________  Dicas para utilização de variáveis persistentes e globais: ♦  evite usar variáveis persistentes e globais. utilize whos.  ui Conceitos  . clear. a função reconhece a variável Var_Global do workspace:  e d it:  c a p 2 _ _ v a r g l o b a l _ e x e m p l o . Var_Global deve ser definida como global no workspace e declarada dentro da função 'cap2_varglobal_exemplo'.Chamada da função cap2_varpersistent_exempIo: » cap2_va ans = 1 0 » cap2_va ans =  r p e r s is te n t_ e x e m p lo (2 ) 0 % P rim e ira ex ec u cao 1 r p e r s i s te n t_ e x e m p lo (2 )  : V a r_ P e rs is te n t  = 1  0 % Segunda ex ecu cao : V a r_ P e rs is te n t = 1 + 2 0 3 » c a p 2 _ v a r p e r s i s te n t_ e x e m p lo (2 ) ans = 5 0 % T e rc e ira ex ecu cao : V a r_ P e rs is te n t = 1 + 2 + 2 0 5  3  Variável Global ♦  Variáveis globais são variáveis que podem ser reconhecidas no workspace e dentro de funções.  nxn)  Chamada da função cap2_varglobal_exemplo: » g l o b a l V a r_ G lo b a l » V a r_ G lo b a l= 5 .  ♦  Por exemplo.m _______________________  % A rq u iv o : c a p 2 _ v a rg lo b a l_ e x e m p lo % R e to r n a V a r_ G lo b a l * (m a tr iz i d e n t i d a d e f u n c t i o n m = c a p 2 _ v a r g lo b a l_ e x e m p lo (n ) g l o b a l V a r_ G lo b a l m = e y e (n )* V a r_ G lo b a l. Quando executada. Devem ser definidas no workspace como variáveis globais e ser explicitamente declaradas no código das funções. 'm1.  ♦  se precisar usar de qualquer jeito: -  evite conflito de nomes (não use nomes como 'x'. isglobal. ispersistent para gerenciar variáveis globais e persistentes. 1 ) ].m % Exemplo: item 2. ou seja.  Funções 'aninhadas' (nested functions): uma função pode conter várias funções aninhadas. início e final de definição de nested function.nl____________________________________________  % Arquivo: cap2_exemplo_14. function ml = nivell ( nl ) % Funcao aninhada 1 ml = [nl n i v e l2(n-2)]. function m2 = nivel2 ( n2 ) % Funcao aninhada 2 m2 = [n2 n i v e l3(n-3)].8 . end end end end  Chamada da função cap2_exemplo_14: » m = cap2_exem. subfunções só podem ser chamadas por outras funções definidas no mesmo m-file no qual estão contidas.  ♦  Funções auxiliares (subfunctions): um m-file pode conter várias funções desde que apenas uma seja a principal e as demais sejam auxiliares: o escopo das funções auxiliares é o próprio m-file.  MATLAB® 7 . o MATLAB® 7 possui quatro classes de funções: primárias.Com relação a escopo de funções:  ♦  Quanto a escopo.14.5. function m3 = nivel3 ( n3 ) % Funcao aninhada 3 m3 = [n3 n 3 . As palavras reservadas function e end indicam.plo_l4 ( 5 m = 5 4 3 2  ♦  1  Funções particulares (private functions): são funções auxiliares codificadas em m-files diferentes mas que só podem ser acessadas por sua rotina principal. 'aninhadas'(nesfec/ functions) e particulares (private functions). respectivamente.  ♦  Funções primárias: contêm o código da rotina principal e devem ter o mesmo nome do arquivo m-file.Fundamentos  . basta armazenar esses arquivos em um subdiretório denominado 'private1. -  ♦  cada função auxiliar possui seu próprio workspace.l ] . Caso você queira que um determinado conjunto de arquivos só seja acessível por um arquivo. edit: cap2__exemplo_.nested-function function m = c a p 2 _ e x e m p l o _ 1 4 ( n ) m = [n ni v e l l ( n . As variáveis utilizadas em uma subfunction só existem dentro deste escopo. auxiliares (subfunctions).   Símbolos de testes e operadores booleanos: Símbolo  (eq) ~= (ne)  =  < (lt)  > (gt) <= (le) >= (ge) Símbolo ~ (not) & (and) 1 (or)  Teste Igual Diferente Menor que Maior que Menor ou igual Maior ou igual  Exemplo 1== J (1 igual a J) 1~= J (1 diferente de J) l<J (1 menor que J) 1> J (1 maior que J) 1<= J (1 menor ou iguala J) 1>= J (1 maior ou igual a J)  Operador Negação E OU  Exemplo de composição ~l ( negação de 1) 1& J (1 e J verdadeiros) 11J (1 ou J verdadeiro)  Além dos operadores booleanos. Por exemplo: Funções booleanas matriciais: Função isempty isequal isnumeric ischar issparse  n j Conceitos  Teste retorna verdadeiro se matriz M é vazia matriz M1 é igual a matriz M2 matriz M é numérica matriz M é alfanumérica matriz M é esparsa  Exemplo isempty(M) isequal(M1.false)'.Com relação a estruturas de programação:  ♦  Expressões booleanas: o MATLAB® possui características de linguagem de programação estruturada e emprega expressões booleanas na implementação dos testes utilizados pelas estruturas de seleção e repetição para implantar o fluxo de programação. resultados de testes lógicos são armazenados em logical arrays. que podem assumir valor 0 ou 1: 0 (zero) ou rtil (nulo. 1 (um) ou diferente de 0 (zero) indica condição verdadeira (T .true).M2) isnumeric(M) ischár(M) issparse(M)  . No MATLAB®. vazio) indica condição falsa (F . o MATLAB possui funções booleanas para vários tipos de classes de dados. vetor de bits.   if.1> <Expressaol> elseif < E x p r e . else if < E x p r .F) isstruct(S)  1  Funções booleanas de tipo numérico: Função isfinite isint isnan isreal ♦  Teste retorna verdadeiro se N é finito N é infinito N não é número N é número real  Exemplo isfinite(N) isinf(N) isnan(N) isreal(N)  Estruturas de seleção: utilizam as expressões booleanas como critério de seleção do trecho de código a ser executado.B o o l . elseif. B o o l .Funções booleanas de teste de tipo de dado: Função iscell iscellstr isfield isstruct  Teste retorna verdadeiro se A é célula A é célula de cadeia de caracteres F é campo da estrutura S S é estrutura  Exemplo iscell(A) iscellstr(A) istield(S.2> <Expressao2> else <Expressao3> end  switch switch <Valor_Teste> case <Expr_casel> <Expressaol> case <Expr_case2> <Expressao2> case <Expr_caseI> <Expressaol> otherwise <ExpressaoN> end  . j-1)+a(i-1.> <Express3ol> <ExpressãoN> end  for for < V a l o r > = < I n i c >:< I n c r > :<Fim> <Expressâol> <ExpressãoN> end  Exemplo: função triangulo_pascal . a função gera os números do Triângulo de Pascal da seguinte maneira: ♦ inicia a com matriz identidade n x n (a diagonal é composta por 1’s).m % a = triangulo_pascal(n) function a = triangulo_pascal (n) a=eye(n).♦  Estruturas de repetição: utilizam as expressões booleanas como critério de repetição de execução de trecho de código..r ) i  1 v r J  2  1  1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6  15  20 15 6  1  edit: triangulo_pascal. j )= a ( i . % Inicia primeira coluna com l's for i=3:n % Cornpoe os demais elementos for j = 2:i -1 a ( i .  while while <Expr. ♦ inicia a 1. 1  1 1  3"r  n! r! ( n . _______________________________________________^83^  . retorna uma matriz triangular inferior contendo o desenvolvimento do Triângulo de Pascal até n .primeira coluna de a com 1's..Bool.1 .j).l)=l. end end  Ao invés de usar a fórmula.H + a w j •  Conceitos____. % Inicia a com identidade (diagonal composta por 1 1s ) a(:. ♦ gera os demais elementos a partir da fórmula: a..= ai-i.dado um número inteiro n.1 . .070 s  0. que podem fazer parte da documentação de sistemas.. cap2_exercicio_08.010 s  t Excel 10 0 Object Library Workbooks fOpaaus-functionl 2  0.8.. Para utilizar este recurso.soft Excel 10..140 s  0.140 s  3  Os  0 000 s  . o MATLAB® 7 passa a registrar a execução de todas as operações e chamadas de funções executadas na linha de comando.000 s  t Excel 10 0 Obiecl Librarv Workbook (Ooaaue-functionl  a c tx s e tY e r...9tos do Microsoft Excel 5 0 Intetvalo (Opaque-function)  2  0 010 s  0 010 s  .070 s  .. j  -  1 ^ P r o f ile tine: 0 sec  *  Profile Summary  Generated08-Jun-200418:32:31 Qsúli COM excel application fOoaaue-function)  Total Time i Self Time’ Total Time Plot !0. digite: »  profile off  Para visualizar o relatório: »  profile viewer  4 Profiler File Edit  *■  Debug  O f f ®t| Desktop Window  Help  + c Prelims Rur>tHsccrfe.  3 .5.. Por exemplo: » »  m = t r i a n g u l o _ p a s c a l (5000). digite: »  profile on  A partir deste momento. Excel 10 0 Obiect l ibrary Worksheet fOpaque-functionl 2  Os  0.080 s  1  1  J  J  MATLAB®7-Fundamentos  .0 Object Librarv..  ! 0..010 s  0...Execução: » a5= tria n g u l o _ p a s c al(5) a5 = 1 0 0 0 1 1 0 0 1 2 1 0 1 3 3 1 1 4 4 6  0 0 o 0 1  x \ \  2. Estatística de Execução de Programa O comando profile do MATLAB® 7 permite extrair relatórios com informações estatís ticas detalhadas de execução de programa.Sheets fOpaque-functionl  2  0.  Para desativar o comando.  Localize o nome da função 'triangulo_pascar para visualizar e examine o relatório detalhado da função.0 relatório é detalhado por função. §r fo p ]  *}.010 S  !  .etos do X'licrosoft ExceI5>0.self time)  COM.070 s  0. P r o f i l e r [ rs e  E dit  D ebug  D eskto p  « S ta rt P rotiling  W indow  Help  I  m  R i^ i th is code:  iV f i 9  P ro file tim e: 0 s e c  I  triangulo_pascal (1 call.0 Obiect Library.m [Copy to new window for comparing multiple runs)  H Show parent files  0 Show busy lines  0 Show child files  E l Show M-Lint results 0 Show file coverage 0 Show file listing Parents (calling functions) No parent L ines w h e re th e m ost tim e w a s spent Line Number  Code  Calls  Total Time % Time  lim e Plot  3  a(i(])=a(i-l.140 s  0.0 Object Librarv.070 s  0.-  C :’íT>ãtiãb7iW ork’p r o f:íe _ re s iits \ffe 0 .excel application (Opaque-tunction)  3  0.000 s  i  ..140 s  1  0s  0.Workbooks (Opaque-function) . .3%  —  2  a=eye(r.  12492501  6 275 s  65.. Digite: >> profsave  'J* Profile S u m f m r y .soft Excel 10.0 Object Librarv..t  Excel 10. 9.010 s  0.Sheets (Opaque-fiinction)  .t Excel 10...015 s  0.614 sec)  Generated 08-Jun-200418:35:53 M-function in file c:\matlab7\work\trianaulo pascal.. ->  0. rrA . Workbook(Opaque-function) 3  Done  1  v -J..010 s  2  0.431 s  4.interv‘aio(Opaque-function') .  2  0..i).i-l)+a(i-l.010 s  0.Microsoft Internet Explorer Pâe  E dit  View  F a v orites  Tods  Media Âçfcress £ -  i  ^  -1  e  ^  “  L -J  L ' >*  f i* ..%} Yahoo! M a i • T he b e s t fre e v*eb-besed e r r « '  3  a  >y  é] Eric W eastern's T reasure Trov es o fS d e n i •X H  This is a static copy of a profile report  i Home Profile Summary | G enerated OS-Jun-2004 18:28:31  1  Fancdoa name  CaBs Total Time Self Time* ! Total Time Plot (dark band .).2%  H Inicia  a coa  i .h tm .-1' PSRSONNAiiTE  7  -  Help  X tre n e t  s ? *  éj Goo ale . M y Com puter  .5%  1  9  end  12492501  0 163 s  1.7%  1  I  for j=2:i-l  4998  0.  i  Os relatórios podem ser armazenados em formato HTML.   III.x.y.txt' e grau 3: » » »  »  m = d l m r e a d ('c a p 2 _ d a d o s l .  interação por GUIDE. número n: grau de polinómio. cap2__exercicio_07_0 (x.yp) t i t l e (['Aproximacao por polinomio de grau ' n u m 2 str(n)])  Execução com os dados contidos no arquivo 'cap2_dados1 . % Calculo do valor do polinomio y p = p o l y v a l ( c o e f .  §  .  ♦  Saída: gráfico dos pontos e do polinómio de grau n que melhor aproxima os pontos dados.y.Geracao de interface grafica % cap2_exercicio_07_0 (x. Versão original: utilizar parâmetros de entrada.2)'. edit: cap2_exercicio_07_0.  0.n).'*'. % Exibicao dos pontos e ca reta de aproximacao p l o t (x.  interação por caixa de diálogo. apresentamos os conceitos básicos sobre como desenvolver programas com interface gráfica com usuário.t x t '). x = m (:.  A partir da versão original.2.m % CAPITULO 2 .2: ♦  Dados de entrada: -  vetores x e y: coordenadas de pontos.9.x ) .n): versão original function c a p 2 _ e x e r c i cio_07_0(x.3). As explicações são dadas por meio do desenvolvimento de várias versões do programa criado no exercício 7 do tópico 2.y.7. criamos três variações para ilustrar três formas diferentes de desenvolvimento de interface com usuário: I.1)'.y.  II.y.  interação por linha de comando (interface não-gráfica).  Criação de Interface Gráfica com Usuário  Neste tópico.n) % Calculo dos coeficientes do polinomio coef=polyfi t (x. y = m (:.  » cap2_exercicio_07_l (x. cuja sintaxe é dada por: » » dado = i n p u t (1Texto de p r o m p t : ') Texto de prompt: 10 dado =  10  edit:  cap2_exercicio_07__l .y): versão 1 function cap2_exercicio_07_l (x.n).*'. % Calculo do v a l or do polinomio yp=polyva]>tcoef.2)'.<3 if ?© ’< ■ D b  :□  Aproxim3C30 por poiincmio de grau 3  I.y) Grau do Polinomio: 2  .x) .x.t x t ').9.1)1. » x = m ( : . A entrada de dados na linha de comando é implementada pela função input.y. >> y = m ( :. % Calculo dos coeficientes do polinomio c o e f = polyfit(x.yp) t i t l e (['Aproximacao p o r polinomio de grau ' num2str(n)])  Execução com os dados contidos no arquivo 'cap2_dados1 M e grau 2: » m = d l m r e a d (1c a p2_ d a d o s l .'ß figure 1 Fiie  Edit  View  In se rt  To d s  D esktop  W indow  Help  □ o s a a . Versão 1: utilização da função input..2. Geracao de interface grafica % c a p 2 _ e x e r c i c i o_07_l(x. % Exibicao dos^pontos e da reta de aproximacao p l o t (x.y) % Solicita grau do polinomio: n = input('Grau do Polinomio: ').y. 0 modo de interação mais simples é o disponibilizado na própria linha de comando do MATLAB®.m  % CAPITULO 2 . VQ .  n=str2num(dado{l>)._______________________________________________________ edit:  cap2_exercicio_07_2.m  % CAPITULO 2 . que exibem caixas de diálogo e possibilitam a construção de programas com interface com usuário mais amigável.y) % Solicita grau do polinomio: dado = i n p u t d l g (1Grau do Polinomio: Exemplo Item 2.Fundamentos í  . Portanto é necessário converter a informação para número. usamos a função inputdlg. Nesta versão.Geracao de interface grafica % c a p 2 _ exercicio_07_2(x. Versão 2: função in putdlg (caixa de diálogo predefinida).II.y): versão 2 function c a p 2 _ exercicio_07_2(x. cuja sintaxe é dada por: » dado = i n p u t d l g ('Texto de p r o m p t ' 'Titulo da Caixa') dado = '10' » num=dado{l} n u m =10 Titula da Gwxt*  N  Observação: a função inputdlg retorna a informação digitada como uma cadeia de caracteres (string) armazenada em um cell array. O MATLAB® fornece funções muito práticas e de fácil implementação.9'). % Extrai o dado do cell array e converte % Calculo dos coeficientes do polinomio  MATLAEP 7 .  c a p 2 _ e x e r c i c i o_07_2{x. com o utilitário GUIDE . y = m (:. '* 1. % Calculo do va l o r do polinomio yp=p o l y v a l ( c o e f .2)'. criamos uma interface gráfica com a seguinte interação:  IConceitos  89  .y)  G ra u fio Polinomio: 4  1 <*  | C ancel J  III. Nesta versão.coef=polyf i t ( x .X/yp) t i t l e (['Aproximacao por polinomio de grau ' num2str(n)])  Execução com os dados contidos no arquivo 'cap2_dados1 . x = m (:. Versão 3: interface desenvolvida por GUIDE (Graphic User Interface Design Environment). y .txt' e grau 4: » >> » >>  m = d l m r e a d ( 1c a p2_ d a d o s l .t x t 1).n).Graphic User interface Design Environment.1)'. % Exibicao dos pontos e da reta de aproximacao plot(X/y. x).   I)  Cancel  |[  Help  |  MATLAEP 7 . GUI with Axes and Menu Modal Question Dialog  Q Save on startup as:  BLANK  rio OK.0 utilitário GUIDE auxilia a criação de janelas gráficas. compostas por objetos de interação. digite: »  guide  Create New GUI I Open Existing GUI GUIDE templates GUI with Uicontrols •4$. m=dlmread(arquivo). % Exibicao dos pontos e da reta de aproximacao plot(x. Passo 1: Criar o m-file 'cap2_exercicio_07_3.2) % Exibicao dos pontos p l o t ( x . A ferramenta GUIDE permite criar objetos de controle de interface com usuário. x ) . n = 1.fig). 1* ' .y.y. Para conceber uma nova interface gráfica GUIDE.1) '. como mostramos a seguir.x. em janelas gráficas.t x t 1. tal qual na figura anterior. y . edit: cap2_exercicio_07_3.m' que implementada a função callback que executa a ação.m_________________________________ % CAPITULO 2 . e são utilizadas como 'painéis de entrada de dados' para funções callback. As janelas gráficas são armazenadas como arquivos de figura (*. y = m (:. '* 1) % Calculo do a*x + b que aproxima os pontos co e f = polyfit(x. para implementar caixas de diálogo no estilo 'Visual Basic'. % Calculo do valor do polinomio yp=p o l y v a l ( c o e f .yp) t i t l e (['Aproximacao por polinomio de grau ' n u m 2 str(n)])  Passo 2: Criar a interface gráfica com GUIDE.Fundamentos  . % Separacao dos dados x = m (:.Geracao de interface grafica % cap2_ e x e r c i c i o _ 0 7 _ 3 : versão 3 function cap2_exercicio_07_3 () a r q u i v o = 1c a p 2 _ d a d o s l .n). E selecione a opção [Blank GUI (Default)] na pasta [Create New GUI]:  Ríe  E d it  Vtev*  d :^ • i  Laycut  Tods  Help  * m  m  \ i►  Insira dois objetos: ♦  Push Button: ícone de acionamento da função 'cap2_exercicio_07_3'.  Conceitos  .  ♦  Axes: eixo no qual o gráfico será exibido. . An  .  ♦  Exemplol ..ÎI with the given input argumenta.. O MATLAB® gera e armazena automaticamente as informações necessárias para a composição da interface gráfica em dois arquivos: ♦  Exemplol ..eventData.fig: imagem do painel da interface gráfica. ....... i t s e l f ....’..... m  [*  JfOjfX |  1 File Edit Text CeH Tools Debug Destóop Window Hefci  I  1  12 3 4 5 6 7  I?  M ü £ l < i % Í ? 4 Q € l stack c«» ......fig "i EXEKPLÔ1.... EXE’îPLOl (1Property1... creates a x-..... ®  hy  or  H = EXSKPLGi returns the handle to a new EXESPLOl cr the handle to the existing singleton*.....handles. Forneça o nome 'Exem plol'...... Value [h í 1[ 0-01 .....hOfojeçt.Fundamentos  . M  % **  !c %  9 ■: 10 ■ 4 11 % 12 % 13 : * 14 %  m  *1 C * .... E i P ro p e rty Inspector 1SO  f l T jf Õ jjX j  uicoM tol (p u sh b u ito fil "O K “)  t..... para abrir o menu de propriedades e configurar dois itens: ♦  Callback: cap2_exercicio_07_3 (nome da função).Dê um duplo-clique no objeto [Push Button]........ fflCDBSp [function varargout » Exemplol (varargin) fc ZXSHPLOl H-fi le for Exeiuplol.■■■■.Visible :[▼ 1on U........ >aUab7vwofk\Exemplo1. property value pairs ace applied to the GUI before Exeajpiol Openingî'unction gets called.... Starting trois the left..... EXEHPLG1(1CALLBACK1. UlContextMenu g |<Nône> ■ Units [characters : UserData § « . 1Value creates a new EXEHPLOi or raises the existing singleton*.} calls the local function named CALLBACK in EXEHPLOi.v  > ‘ Exem plol  .. O MATLAB® abre o arquivo no editor de texto... E» P roperty Inspector  B @ g  S3 uioonirol (pushbuttonl "OK1) i-'s iid e rs te p  style  Û  [0.3  In  1  Col 1  MATLAEP 7.. . ■■■■■■■■■■■■... ..01 0.............BackeroundCclor BeingDeleted \ BusyAction ButtonDownFcn  (O il  [  :A  Q queue  CDa!3  s cap2_exercicio_07_3 Clipping Son Í___ ______________________________________________  ♦  String: OK (texto exibido no ícone)...1  Finalize a criação da interface e salve-a por meio da opção [Save As] do menu [File]..m: código que implementa a interface gráfica.......1] E |OK E [pushbutton  pushbuttonl ■-Tag j~ TooliipString !.ew EXEHPLÔ1 raise» the existing singleton*.   Passo 1: Antes de criar a interface gráfica.  ♦  Pop-up Menu: lista de opções. Feche o editor de texto. chame a função Exemplol e clique em [OK]: »  Exemplol  A %  80 60 40  20 20  40:  60:  100:  OK  IV. devemos preparar a função callback para que ela possa utilizar os parâmetros de entradas fornecidos na caixa de diálogo. retorna identificador da figura corrente. Síring: conteúdo do objeto. -  II 1 Conceitos  findobj: retorna o identificador do objeto.m'. além dos objetos Axes e Push Button.  ♦  Edit Text: caixa de edição de texto. No caso. dado o conteúdo de um dos itens de propriedade. 'cap2_exercicio_07_4. utilizamos: ♦  Dois itens de propriedade de objetos importantes na entrada de parâmetros: -  Tag: identificador do objeto. Versão 4: vamos incrementar a interface gráfica com a inclusão de entrada de parâmetros. na qual indicamos o grau do polinómio. A nova função callback. na qual designamos os nomes dos arquivos de entrada.  .  ♦  Três funções: gcf. utilizamos os objetos: ♦  Static Text: texto estático. criamos uma interface gráfica na qual podemos configurar o grau do polinómio e o arquivo de entrada.Passo 3: execute o programa com a interface gráfica criada pelo GUIDE. utilizamos Tag. Nesta versão. Para isto.  edit: cap2_exercicio_07_4. tendo como referência a função callback 'cap2_exercicio_07_4. Abra o GUIDE com a figura anterior: »  guide Exemplol  Reorganize os objetos Axes e Push Button ao abrir espaço para acomodar os novos elementos. str2num: converte cadeia de caracteres em número.■S t r i n g ') .get: retorna o conteúdo do item fornecido.m'.'Tag'. 'Tag'. 'arquivo'). 'Value').  94 )  MATLAíP 7 .% índice da opcao selecionada arquivo=opcoes{indice}. 'grau').Fundamentos  .  Passo 2: preparar a figura com o GUIDE.m_________________________________ % CAPITULO 2 . % Obtem o conteúdo do campo 'String' s t r = g e t (o b j 1. % Identifica objeto com Tag = grau ob j = £ i ndobj(h.Geracao de interface grafica % cap2_exercicio_07_4: versão 4 function cap2_exercicio_7_4 () % Obtem identificador da figura corrente h=gcf. % Lista de opcoes indice=get(obj. % Converte cadeia de caracteres em numero n=str2num(str )s % Identifica objeto com Tag = arquivo obj= f i n d o b j ( h . % Obtem o conteúdo do campo 'o p c o e s ' o p c o e s = g e t ( o b j String').  a lista de opções é obtida consultando-se o campo String e o índice da opção selecionada consultando-se o campo Value.txt' 'cap02_dados2.  ♦  [String]: {'cap2_dados1.  icap2_dados1  Observação: na função callback.  ♦  texto da direita: 'Nome do Arquivo'.  Insira o objeto Pop-up Menu no qual vamos escolher o arquivo a ser lido. Esse objeto deve ter as seguintes propriedades: ♦  [Tag]: arquivo.  Introduza o objeto Edit Text no qual vamos digitar o grau do polinómio.txt'} (cell array com os nomes . Esse objeto deve ter as seguintes propriedades: ♦  [Tag]: grau.as opções são digitadas neste campo).  ♦  [String]: 1 (valor inicial)._________________________  .Insira o objeto Static Text duas vezes e altere o campo [String] de cada um deles para: ♦  texto da esquerda: 'Grau do Polinomio1.  »  Exemplo2  Aproximacao por polinomio de grau 2 1800 1600  yi « /♦  1400  1200  |1000  /+  800 600 400  *  200  00  20  G rsu do PolIrtotrtuD f  40  60  80  100  Nome do A rq u w o j cap2_dados2 .txt'. arquivo 'cap2_dados1. -  Todos os arquivos que compõem as quatro versões apresentadas neste tópico estão disponíveis no site da Editora Érica. .Modifique o nome da função callback do objeto Push Button: 'cap2_exercicio_07_4'. Modifique os parâmetros de entrada: grau do polinómio 2. yUftórtUòWhl-ért CData  i I : ! i OK  H  cao2 exercício 07 4 y on  Clipping  Passo 3: salve a nova configuração de interface por meio da opção [Save As] do menu [File] com nome 'Exemplo2'.3  MATLAfP 7 .Fundamentos  .  .  Nome New m-file Open file  Programação  leone D  Ação Cria arquivos m-file. basicamente. Opções  Conteúdo  Help Close All Docum ents 0 Com mand W indow  C trl+ 0  1 Com mand H istory  C trl+ 1  2 C urren t D irectory  C trl+ 2  3 W orkspace  C trl+ 3  4 Help  Gerencia janelas. apresentamos os principais comandos e as principais funções da linguagem de programação MATLAB® 7. com suas sintaxes mais típicas. em três formatos: 1.3  C a p ítu lo  Programação  Neste capítulo. janelas do MATLAB® 7 Desktop ou edit estão identificadas por meio de lista de itens e tabelas nas quais descrevemos os recursos à disposição nos menus. m  ♦  Descrição das opções da barra de ferramentas.  Descrição de Recursos de Utilitários  Por exemplo. O capítulo pode ser utilizado como um manual de referência para os principais recursos e funções do programa.  0 -  .  C trl+ 4  Editor  C trl+ S h ift+ Q  A c a p2_exem plo_l 1. Exemplo: ♦  Descrição das opções do menu pop-up [Windows]. As informações estão organizadas. Abre arquivos do MATLAB®. 7 8 9]) ans =  _____ 0________________________________________________________________  3.4 -5 6.4 5 6.1. descrição dos parâmetros e exemplo de utilização: ^  det  Retorna determinante da matriz.Fundamentos  . funções de testes lógicos com cadeia de caracteres estão apresentadas em forma de tabela. Descrição de Grupos de Funções de Mesma Classe Por exemplo.II.m) % determinante e' diferente de zero d e t ([-1 2 3.7 8 -9]) ans = 360 % determinante é zero d e t ([1 2 3. Sintaxe típica: »  d = det (m)  Parâmetros: Entrada m: matriz  Saída d: determinante da matriz  Exemplo (arquivo cap3_det_exemplo. Descrição Detalhada de Funções Por exemplo.  MATLAEP1 . funções de álgebra matricial estão pormenorizadas com sintaxe típica. Função  Testa se  iscellstr  é cell array de strings  ischar  é cadeia de caracteres  Exemplo » i s c e l l s t r ('abc 1) ans = 0 » i s c h a r ('a b c ') ans =  1  III. Ambiente MATLAB® 7 Este tópico mostra os comandos e recursos relacionados aos aspectos de interface com usuário (user usability) do ambiente MATLAB® 7.  ^ Help •Q.  Programação  Toolboxes L^j Shortcuts  it  Desktop Tools Web Preferences.. Principais elementos: I. MATLAB® Desktop MATLAB® Desktop nada mais é que uma tela de apresentação composta por várias janelas de gerenciamento de informações.. aplicativos como Excel Link.  Esta é a configuração padrão da tela do MATLAB® 7: Desktop layout default. ($4 Find Files.  ♦  [Current Directory]: janela de gerenciamento de arquivos. 'acomodadas' dentro da janela principal do ambiente MATLAB® 7: ♦  [Command Window]: janela de entrada de comandos. MATLAB Builder for COM. abre um menu que dá acesso aos utilitários e aplicativos instalados no ambiente MATLAB®. ♦  [MATLAB]: exibe utilitários como Import Wizard e Plot Tools.  Esse arranjo pode ser modificado de acordo com suas necessidades de redimen sionamento. semelhante ao menu [Start] do ambiente Windows.Demos 0  .  Start Button  ícone localizado no canto inferior esquerdo da janela do programa.3. inclusão ou remoção de qualquer uma das janelas.1. caso estejam instalados.1..  ♦  [Workspace]: janela de gerenciamento de variáveis.  ♦  [Command History]: janela de gerenciamento de instruções..  podemos definir shortcut como um script-file.  ♦  [Find Files. na opção [Shortcut] do [Start Button]:  Labei: Callback:  cap 2 _e X ernp1 o_ 1 1  Help Browser F avo rite s Toolbar S hortcuts W h a t a re Shortcuts?  Category:  leoa-  I S S tandard ic on  S a v e s s h o rtc u t to S tart butto n . s (2).2).♦  [Toolboxes]: lista dos Toolboxes instalados. s(2) % nome dos campos campos=fieldnames(s)  Selecione a subopção [New Shortcut]. edit: cap2_e:xemplo_ll.  ♦  [Desktop Tools]: gerenciamento de janelas.I d e n = 'O Z 1 '.m % Exemplos do item 2.4.1.m' apresentado no item anterior.19}) % Cria vetor de struct s (2). que cria um elemento struct. S electing "Toolbar S ho rtc u ts " c a te g o ry also s a v e s to S h o rtc u ts toolbar.m________________________________________________ echo on % Arquivo: cap2_exemplo_ll.  ♦  [Demos]: abre pasta [Demo] do Help Browser. 1V a l o r '.{'D O L '}.N o m e = 'Ouro 250g'.  ♦  [Web]: lista de URLs relacionados com MATLAB. cuja chamada pode ser colocada no menu de opções do [Start Button].  ♦  [Shortcuts]: atalhos (veja o item II)..1.  MATLAB®7-Fundamentos  .]: abre a janela de busca de arquivos (veja o tópico 3..4: Struct % Cria struct com 1 elemento s = s t r u c t (1N o m e '. De forma simplificada.65.  II.{3.  ♦  [Help]: bre Help Browser (veja o tópico 3. Shorcuts Shortcut ('atalho') é uma forma prática de executar um grupo de comandos.1. { 1Dolar C o m e r c i a l 1}.  ♦  [Preferences]: aciona o comando preferences (veja o tópico 3.Valor=3 9.2). 'I d e n '. Por exemplo: considere o arquivo 'cap2_exemplo_11.2). s (2) .   W hat are Shortcuts?  | Move to Category.  Help Browser Favorites | | j Toolbar Shortcuts  J Edit Shortcut. \0 Heip  s = Nome: 'Dolar Comercial' Iden: 'DOL' Valor: 3...m).....Ô* Demos | ( 4 S ta rt]  1  A opção [Organize Shortcuts] abre a janela de gerenciamento de shortcuts..'I d e n '..4: Struct % Cria struct co m 1 elemento s = s t r u c t ('Nome'. J  \E  m  a  | Delete Shortcut  *  | Close j j Help |  III.. |n te  j Desktop Tools > [ V Web ►^ ^ ^ Preferences. ■ *) :Shortcuts  Organize  | New Category. . % Exemplos do item 2. The MathWorks Web Site  if j  Products  (14 Find Files. e muitos recursos de apresentação e publicação de informação fazem uso deste tipo de padrão de interatividade: ♦  Opção [Web] do [Start Button]: lista de URLs relacionadas.  E clique em [Save] para criar a opção [Exemplo]. .1900  I-..4.  1 4 MATLAB Toolboxes  ►b _ 2 3 é ► ifgf^ Help Browser Favorites ► ► Desktop Tools ►1^ Toolbar Shortcuts 1 0 Web > $ What are Shortcuts? \%j Preferences...{'Dolar C o m e r c i a l '}..  a ta u u a i. Web Browser As telas de interação do MATLAB® 7 seguem os padrões de Web Browsers.  ♦  [Callback]: m-file a ser executado (cap2_exemplo_11 . Find Files.. Qp Organize Shortcuts.Ü3 Shortcuts  im  j New Shortcut. que pode ser executada..  B  U  B  ij 8 .  ^  0 %  Help  ^  Membership Technical Support Knowledge Base  Demos  ^  Check for Updates  S tart j  @ MATLAB Central jjp l MATLAB File Exchange MATLAB Newsgroup Access ®  Programação  MATLAB Newsletters  j  .... .. o | ^ ] New Shortcut..E configure as opções do [Shortcut]: ♦  [Labei]: nome (Exemplo).ui) ! . 010 s  1  .070 s  0. í c :V natlab7\w ork  S h o rtc u ts  Help File  la  Edit  © View  Go  F avorites  D esktop  W indow  .4).010 s  0.  | | ] 1 Go Yahoo! Mai! .  102  MATLAB® 7 . W orkbooks (Opaque-function)  0. .t Excel 10.:  MATLAET  Q Getting Started  a? Si  0  -X  Hefci  Examples l l j Desktop Tools and Development Environme {£ Startup and Shutdown & Desktop ££ Overview of the Desktop $ Arranging the Desktop-Overview  Functions: « By.0 Obiect Librar/.000 s  1 I M y C om puter  ♦  [P ublish to HTML]: utilitário disponível no edit que publica o código do m-file..-.070 s  1  .Categojy ®  Handle Graphics:  .  ♦  1  )  I  C  £ !M  Dem os : a  In s t a lla tio n  .0 Obiect Librarv’. W orkbook (Opaque-function) 3  0s  0..Fundamentos  .010 s  0.Sheets (Opaque-function)  0. bem como os resultados de sua execução.010 s  1  . Profile Summary .t Excel 10.. .0 Obiect Librar.140 s  1  ..Microsoft Internet Explorer File  E dit  V iew  F a v o rite s  Tools  ■r  Help  ’ U 9 ..soft Excel 10.8..etos do Microsoft Excel 5.T h e b e s t fre e v*eb-based en w ä r  Eric W eisstein's T re a s u re T ro v e s o f Science  y>  Tfeis is a static copy o f a profile report  Home P rofile Sum m aiy  Generated 0S-Jun-2004 18:38:31 Function name  Calls Total Time Self Time* Total Time Plot (dark band = self dine)  COM excel application (Opaque-function)  3  0.140 s  0.  File  Edit  D ebug  IJi'O? j :  D esktop  ß  W indow  * ff  Help  ''  S Cf  (Ö  Current D irectory:.♦  [Help Browser]: utilitário de help...Interval© (Opaque-function)  2  0.:1  In A lp h a be tical O rder o b je c t "P ro p e rtie s  1  [P rofiler]: gerador de relatórios de estatística de execução (veja tópico 2..0. f e e : Vnatiab7\!A ork’ï)ro f)le _ re s ü ts ’>iie0.htm l Ú & 3 ^ IÍ A Ú P B * S O W M L I T É  $ |] | X tra n e t  G oogle .+  X  4  Name  Search I Release Notes  Contents I index |  camf | IB i f * & 0 H 3s  fr. em formato HTML. . Debug  Desktop  Opções  Window  Help  !  Conteúdo Acesso a arquivos e dados:  I j I I I I Edit ^ :I  D ebug  Desktop  W indow  O p e n ...  C trl+ Z  R edo  Edit  Cut...Valor=39. I d e n ... P re fe re n c e s ....65.. Delete..  1 c :\..._____ File  Menu  Edit . .  Paste Special... Paste Special.. Find F iles.  Preferences: preferências..  I Edit  T ext  ......  C trl+ O  M-File  Open: abertura de arquivos..html V A r q u iv o .  Set Path: configuração de path...  Instruções de limpeza do conteúdo de janela. 4 : .......' O  Z t 'i  3(2).....  D esktop  W indow  H  ► \ « /.  „  e a p 2 _ e x e w p lo _ X ..  C opy  A lt+ W  Paste  C trl+ Y  Select All...... Edição 'padrão Windows':  I É | M D ebug  D esktop  W indow  Undo  H  Undo..  P rin t. Menus Pop-up Os principais menus pop-up do MATLAB® 7 são: ........ 4 ... 'SOW...  Cell  Tools  Debug  ....  S et P a th . Redo. s(2)  Home: 'Dclsz Vç&ççcàäl’ Ztíaa...  File  New: criação de arquivos... Save W orkspace A s .... Page S etu p. Paste.  C trl+ S  GUI  Save Workspace As: salva variáveis..N o m e = 'O tt tr o 250g‘. < 1 P o X a r...k \c a n ? exem olo l l .....  %  s(2)...  . Print: configuração de impressão. 1 s ( 2 ) .. Clear C om rrand W indow Clear Com m and History Clear W orkspace  Programação  ♦  Find Files: chama utilitário de busca de arquivo...  Selp  ’:.l...“ Open.. Select All D elete Fin d .. »  % E x a ia p lo « d o I c e » 2 ..  Model  Im p o rt D a ta .  Figure Variable  Close Com mand W indow  Import Data: importação de dados....  C trl+ D  Find: busca palavra na janela corrente... m C trl+ Q  Page Setup...tit  View  Go  Debug  Desktop  W in dow  Help  Location: ] C:rtnatlab7/work/htmlA:ap2_exemplQ_11 ...C o m e E C la I 1 > . Copy... a i Qrl+O  fï.S e e u c t % C r i a s t r u c t c o a l i e le m e n t o ' s=struct ( l'K o n e ‘ .. Valor: 3:1900  IV.   Open file  fe 7  Abre arquivos do MATLAB®..  MATLAB® 7 . ^  Current Directory: j c:Vrcatlab7\work  V .  Instruções de depuração de programa quando este modo está ativo.m  . Full P ro d u c t Fam ily Help  Opções de acesso a textos de ajuda e consultas a documentação eletrônica (manuais) do MATLAB® 7 Help Browser. Copy.Fundamentos  .  E xit D ebug M ode  W indow  Help  Organização do layout das janelas: D efault Com mand W indow Only  ♦  Default: restaura configuração padrão.  H istory and Com mand W indow AH Tabbed  </ Com mand W indow  Desktop  v* Com mand H istory y< C u rre n t D irectory ✓ W orkspace w Help Profiler  As outras opções ativam/desativam exibição de janela.Menu  Opções  Conteúdo D esktop  w in d o w  Help  <✓ O pe n M-Files w hen Debugging  Debug  Step  F10  S tep In  F ll  S tep O ut  S h ift + F ll  Continue  F5  Clear B reakpoints in All Files S to p if E rrors /W a rn in g s . Semelhante ao menu [Debug] disponível no edit. Paste do Windows®.  C trl+S hift+O  A c a p2 _exem plo_l 1 ..  Cut.  ♦  Save Layout: armazena configuração. Barra de Ferramentas D lã" i ^ % S Nome  ^  ^ üâ ...  ♦  Organize Layouts: gerencia layout.  MATLAB Help Using th e Desktop Using th e Com m and W indow  Help  W eb Resources C heck fo r U pdates Dem os A b o u t MATLA3  V. [t]  Ação  ícone  New m-file  □  Cria arquivos m-file. .  v* Toolbar ✓ S h ortcu ts Toolbar  >/Titles  Help Close All Docum ents  Window  0 Command W indow  C trl+ 0  1 Command History  C trl+1  2 C u rren t D irectory  C trl+ 2  3 W orkspace  C trl+ 3  4 Help  C trl+ 4  E ditor  Gerencia janelas. Paste  Cut.. Copy.   Help  Chama Help Browse.  GUIDE  £ f  Chama o comando GUIDE.  í F ile T . k Iciencxfica cbjeto com Tar = «ran obj=findobj(h.'gr&u').c:\mâtiab7\work\cap2__exfircic30_ô7_4.a <le car. 'String*).c:\matlab7\work  ? x  È o fiS @0 A IIFifca [ I B  Por exemplo: indicação. abre o menu contextual com opções de operações válidas para o arquivo.  New  >2001  .'Tag'.ast-eresem nunwirc n = 3 1 r 2 n u rn (a t r ) . com botão direito do mouse.  Current Directory . -7)fi  [1o ~T*  “  t l  }■. CAPITULO 2 . % Cktern o conteuuc <:io ca»pc 'String' str=get(obj ' ..era identificador da figuracorrente h=gcf. c a p 2 _ e x e rc ic io _ 0 7 _ 4  Programação  «a B 1) p  X  iLn  1  .p e  S  Open  l l à c ir c u it.  \  VI. ou com qualquer ícone dos tipos: LrrJ ou Editor . Redo  o  Undo.m File  Edit  Text  n^u to  &  1 2 3 4 5 6 7 9 10 11  -  ■<. % Convex: te cade j.1 C urren t Dt  11  Rename De)ete  C trl+X Copy  C trl+ C  File Filter Add to Path Refresh  VII.m na janela [Current Directory]. É um menu flutuante cujas opções variam de acordo com o contexto no quai o menu foi aberto. Menus Contextuais Menu aberto pelo botão direito do mouse.  View Help  Ü  c ir c u it. in  Cell  Tools  tu a -  D ebug  D esktop  W indow  Help  "o.r  Current Directory  ] c:Vnatlab7\work  v  Define diretório de trabalho.  im p o rt D ata  (2002  c lo c k . —•— -----. do arquivo circuito.Nome  Ação  ícone  Undo. Redo do Windows®.Geracao ci* interlace yraljica % cap2__exercicio_07_-{: versa© 4 function cap2_exercicio_07_4 () H Cbr.  [ / $ C irc u it  $ L a s t M o d ifie d  ”“ ^002 a i 72002  Q002  72002 72004  Open as T e x t O pen O utside MATLAB  c irc u it. Editor de Programas: Edit O editor de programas pode ser aberto digitando-se 'edit1 na linha de comando. m a /.  Run  ^ c ir c u it..  n*  Simulink  *  Chama o Simulink®.  Cut... S s v *« 8 Publish T o HTML  File  Im p o rt D a ta .  . S ele ct All  Edit  C trl+ A  D e le te  D elete  F in d a n d R e p la c e . Copy.. S e t P a th .Fundamentos . Increase Indent: avança um nível de parágrafo. Close. C le ar Com m and W indow C le ar Com m and H is to ry C le ar W orkspa ce  rata texto de código: Evaluate Selection: executa código. F9  Wrap Select Comment: coloca os textos de comentário selecionados em uma só linha.  106  MATLAB® 7 .Menus pop-up do edit:  Menu  Opções I 2 I I I E dit  Conteúdo  T ext  Cell  Tool?  D ebug  N ew  C ►  Acesso a arquivos e dados: ♦ New. Find.. Delete. P rin t.. Smart Indent: organiza níveis de parágrafo no código selecionado.  C trl+ O  S efeciibn  C H 40  Close E ditor . S ave W orksp ace A s ... Abertura de arquivos: ♦ Import Data.  O p e n . Preferences: preferências.. P age S e tu p ...  PttvSookiiiftrk. Decrease Indent: tira um nível de parágrafo. Save As.  C trl+ P  P ont S s b c f e v E x it MATLAB  ♦  Set Path. Go To Line  C trl+ G  S e t/C le a r B ookm ark  C trl+ F 2 . Save.  U n do Piidi"}  C ïrlî-V  Cut  C trl+ X  C o py  C trl+ C .m C trl+W . D ebug  De.  ♦ Go To Line: localiza linha.  C trl+ Q  U S ' T e x t.. Redo..Close cap 2_ e xercicio_07_4 .  t b f t Bookmark-  nt  Edição 'padrão Windows': ♦ Undo.. Paste Special.  ♦  Page Setup. Save Workspace As.. Select All.. C td t-V  P a s te Spe cia l. Open. Instruções de limpeza do conteúdo de janela. P re fe re n c e s ...  C trl+ F  F in d f t e i  r'4  F in d P rp y h v ? F in d Selection  C trl+ F 3  F in d File s.  Uncom m ent  C trl+ T  §11111 Cell  Tools /D e b u g  E va lu a te Selection  Desktop  W ra p Selected Com m ents  Text |  D ecrease In d e n t  C trl+ [  Incre a s e In d e n t  C trl+ ]  Sm art In d e n t  C trl+ I  Uncomment: desfaz Comment. Publicação de Script-file: ♦ Publish To HTML: exporta o código e o resultado da execução em HTML. S svr S ave A s .. Cell h ls o ls . Paste.. ♦  Find Files: chama utilitário de busca de arquivo.  Publish To  ►  So u rce C o ntro l  ►  ♦ Publish To: outros formatos.. Print: configuração de impressão.  Com m ent  C trl+ R  Comment: transforma em comentário...   ♦  Continue.  F12  S et/M o d ify Conditional B reakpoint.m  Desktop  Dock Editor ✓ Editor Toolbar ✓ Cell Toolbar Docum ent Bar  Programação  Exibe opções análogas ao menu pop-up [Desktop] do MATLAB®7. In se rt Text Markup  ►  N ext Cell  Ctrl+Down  Previous Cell  Ctrl+Up  Insert Cell Divider: insere Insert Text Markup: insere textos de  comentário. Next Cell: vai para a próxima célula. Disable/Enable: desabilita/habilita modo cell. Step In.. Go Until Cursor: execução.  C heck C ode w ith M -Lint  Tools  S how D epende ncy R e p o rt O pe n P rofiler  Open Profiler: gera relatório de estatística de execução. Evaluate Current Cell and Advance:  Disable CeS Mode  Cell  Evaluate Current Cell  Ctrl+Enter  Evaluate Current Cell and Advance  C trl+S hift+E nter j  executa célula atual e avança.  ♦  Exit Debug Mode: sai do modo debug.. E xit D ebug Mode  I W indow  Help  V Undock cap2_exerdcio_07_4. erramentas: Check Code with M-Lint: chama M-Lint. E nable/D isable Breakpoint C lear Breakpoints in All Files S top if E rro rs /W a rn in g s . Previous Cell: retorna para célula  anterior. Evaluate Current Cell: executa célula  atual.  Evaluate Entire File  Evaluate Entire File: executa o arquivo  In se rt Cell Divider  todo. D ebug  D esktop  Windc  Show Dependency Report: gera relatório de dependências ('quem chama quem')..  .  ♦  Set/Clear Breakpoint: ponto de parada.Conteúdo  Menu  ata célula de programação. D esktop  w in d o w  Help  ✓ O pen M T iIe s w hen Debugging  Debug  Step  F10  S tep In  F ll  S tep O u t  S h ift + F ll  C ontinue  F5  G o U ntil C ursor S et/C le ar Breakpoint  Instruções do modo debug: i  ♦  Step. Step Out: passo a passo.  As opções de layout do edit são apresentadas a seguir. Copy. a  Procura texto.3  Imprime.  Cut. Redo do Windows®. Paste  1  Undo.  Find Show functions  . Paste do Windows®.  MATLAEP 7 .  f.m  MATLAB Help Using th e M -file Editor  Help  Exibe opções similares ao menu pop-up [Help] do MATLAB®7. + ! » : 1.Menu  Opções  Conteúdo Help ►  E B Tile f T l L e ft/R ig h t Split H  T o p /B o tto m Split  [ 5 F lo at ✓  n  Exibe opções semelhantes ao menu pop-up [Windows] do MATLAB®7.  % (1  Cut.1  ! X  Ê I  «a ■d HP 1 0 0  1cep2_exercicio_07_4  v]  ffl D] B S _□  ___________________________________________________________________________________________  (cone  Ação  New m-file  D  Cria arquivos m-file. Redo Print  Undo. Copy.Fundamentos  .  Save  y  Armazena arquivo.  Exibe nome das funções.  W eb Resources C h eck'for Updates  Opções da Barra de Ferramentas □ Ä U U O  ■*! t S |R  ’  ' “  Nome  10  t .  Open file  &  Abre arquivos do MATLAB®.  M axim ize  C ascade Docum ents  Window  Minim ize D ocum ents Close D ocum ents 0 Com m and W indow  C trl+Q  1 Com m and H istory  C trl+ 1  2 C u rre n t D ire c to ry  C trl+ 2  3 W orksp ace  C trl+ 3  E ditor  C trl+ S h ift+ O  A c a p2 _e xercicio_07_4 .   Tiling  ffl m  s  5  □  Arranjo de layout para vários arquivos em edição..O t i ü  Stack-  ffl t u B  i<>:  &\n  o il  % C o n c a te n c a o  4 -i  a= [ 1 2 .. 3 4]  5-  b = [1 0  6 -  c = [a  7  1ÊÊÊÊÊÊÊ .  -mo pÉr i s m te is  Cell  ... Por exemplo:  File  Edit .........  Clear breakpoint  m  Desconfigura todos os breakpoints.. »  3  ..! y Í? X  4 1 K') f i~ .m * s c rip t  Programação  cep2_exem plo 04 m  x\ Ln  1  Col  1  ...4 0  por 50  I ir t h a 60]  to]  C c n c a te n c a o  8 -  d = [l 2 3]  9 -  e = [d ...  i + l "v \ 1. T e x t  D  fb l |  Cell  Tools  % ''l-> I H O  Debug  D esktop  W indow  #4  | Q  '*  1 -  fs c h o  2  *i A r q u i v o : c a p 2 e x e m p l o 0 4 ...  Cell divisor  Insere/remove delimitadores de células..  Help  20  3 0 ...b ]  p o r .  .. .  ..  Debug  m -M M  Instruções em modo debug. —.c o lu n a  10  > cap2_exem plo_01  m * :c*p'2_exemplo _ 0 2 m 'X cap2_exem plo_03..  Opções de layout para vários arquivos em edição....JTo  Operators  Instruções em modo cell.1 ] k Operações com conteúdo de variáveis..Nome  ícone  Ação  Set/Clear breakpoint  ë  Contigura/desconfigura breakpoint.  Barra de Ferramenta com Cell mode habilitado: Nome  leone  Ação  Publish to HTML  Gera relatório em HTML.... .... ilÈ É S H E i1'!  ’□ X A  n t a o t.......m % Concafcencaopor iinha a=[l 2:3 1] b=[10 20 30. c a p 2 _ e x e m p io _ 0 2 ...................3  E d ito r  I File  Edit  D  Or U  Text  a  i l  Cell  Tools  Debug  ..... ...m i ü cao2 'exemplo .. cap2_exem plo_04 rn  sc-k<___________________  VIII.....  i W o rk s p a c e j C urren t D ire c to ry ] " "  MATLAB® 7..m §efr cap2_exemplo_03... in h C o n c a te n c & o p o r l i n h a  i|  : 4 -  a=®[ 1 2 ........< cap2_exem plo J31 ... m Íècap2_exemplo_02..Fundamentos... m H§i cap2_exemplo_06. 10/06/2004 09:57:27 Arquivo...’.. ...40 SO 60} c = [a  b]  x ...... EBä  C ú r r e o i & í r é c t o f v .... ♦ [Last M odified]: data da última modificação..  % C a r ..M-file  La s t M odified  [ D e s c n p ti.......i -  c = [a  9 -  20  5 0 ..C O  J l  eps r e a lm a x cap2_exem plo_04....6 0 ]  2  por  3]  s -  3 e -S  6 -  2 -S i P i  i| II  8 “ 9 -•  r e a lm in  -  x  1 . ♦ [D escription]: descrição. com informações organizadas em quatro colunas (peias quais os arquivos podem ser ordenados): ♦ [A li Files]: nome do arquivo....  e = [d .....m  File Type!-  •xtSTfre"“ M-fiIe M-file M-flíe M-file M-fi Ie M-file M-file .......1  (sc h o o n  j  ! 2 I 3  X A r q u i v o : c a p 3 ^ c ^ é f e V p r c j_ -Ü 4 .......4 0  1 7 -.... i i il in i  Help  oj e  %® a i  □ 5:5 n  11 12 3 4 5 : 6 c a p 2 _ e x e m p io _ 0 l m  echo Arquivo: cap^cxeispio Oi.m í[^c a p 2 exemplo 07...... 10/06/2004 10:09:44.....b ]  ..m n c ap2_e x emp Io_05........... 10/06/2004 10:12:22 ... 10/06/2004 09:56:35 Arquivo. ir % E x e m p lo  2  1 3 " !j 4 -  b]  ! '1 l ®  1  ( 'n i -----------  1  ...ê : V r w it la b ? \w o r k  a tf õ j í A li Files -■*  cap2_exemplo_01... 10/06/2004 10:11:03 Arquivo........... Arquivo....... s 6 -  b * [1 0  3 0 ..  * ... SI n ........m :[|§i cap2_exemplo 04.. : cap2_exem plo_02 j n  echo  :  1  c o lu n a  ! Í 3* P  % A r e / u i v o : e a p 2 e x i î ï r t p l o _G 1 .. .  H ........08...... Janela [Current Directory] Exibe a lista de arquivos contidos no diretório corrente.......... 10/06/2004 10:02:18 Arquivo......... I  10/06/2004 09:55:50 Arquivo.... ♦ [File Type]: tipo do arquivo..... ...5  i{  * ’ cap2_exempJo_03 .m  *  c a p 2 _ e x e m p ‘c _ 0 3 m  Click and drag to m o v e e a p 2 _ e x e m p lo _ 0 ô m ...  Desktop  < I Ä  W indow  «  Help  fifi  A  %  '% 1  a  * .... ....Arquivo....r ..  ..m  ' 10 I ......m 'x f  íT j Z T ...c a te n c a o  > 8 -  d = [1  ...m * : .. 3  4]  ..... 10/06/2004 10:05:48 Arquivo...... “ a l r a l s  ?  ■  File  Edit  Text  Ceii  Tools  Debug  D eskicp  W indow  c 2? a \ %«..—  1  ö  on  7 “  11 Í 0  S  -1 .....   & :  M l i a M j ..f ile  f o r E x e m p lo 2 . As informações estão dispostas em três colunas: Name (nome da variável).k '^ . Ctrl+X j Cut  c a p 2 _ e x e a p lo _ 0 1 .....f ig  E x e m p lo 2  jM . ta  0  S o rt b y C o n te n ts m  f D S h o w a c t io n s  0  S h o w file s iz e s  L J S h o w f u n c tio n /s c rip t  D  «  us>>ü3G  S h o w t h u m b n a ils  SCf &&> I File Type  A:  [ run..Opções da barra de ferramenta ícone  Nome  Ação  Go up one level  S  Vai para o diretório 'pai1.i c:Vnatlab7\work  v]  :■» . As variáveis podem ser ordenadas pelas colunas Name ou Class. Value (conteúdo) e Class (classe).. a  Í  ■V  '  c irc u it  Cire Uit  E x e m p lo i  I Last Modified  Open  Copy  >/200i^  Ctrl+C  j__ ___________________ Í  F ie Filter  j  Add to Path  IX... Depois da execução dessas instruções.m  /2002  Run  c irc u it  view Help  c irc u it  Open as Text  b0O2!h k2002 j . V E TO R )  c a p 2 e x e a p ln 01  A r q u iv o :  ca j> 2 e x e m p lo 0 2  A r q u iv o :  c a p 2 _ e x e a ip l./2002i.■ f . 0 padrão é chamar a execução do M-Lint para verificar a sintaxe dos m-files..  (^3 C overage R eport  Menu contextual [Current Directory]  (*) Modo 'Visual'  File..i&  c a p 2 e x e m p lo 0 4  A r q u iv o :  c a p 2 _ e x e a p lo _ D 4 .o _ 0 1 . Janela [Workspace] Exibe a lista de variáveis definidas na janela [Command Window] durante a sessão corrente.  Open Outside MAUAB  &004  [ ^ c ir c u it  In port Data  jk -l d o c k !  New  /2Ü02  ------.  New folder  &  Cria um novo subdiretório..B L  cat>2 e x e a p l o 0 3  A r q u iv o :  c a p 2 _ e x e a p lo _ Q 3 ..fig  G r A r ó u iv o  ! r u n e a o G r A r q u i v o ( A R Q U IV O .^ e p o r t TO DO / PI XM £ r "°  t  Help R eport  Directory Reports  C ontents R eport ?. Chama o utilitário de busca de arquivo..  Find Files Show Visual Directory  Muda o modo de visualização do diretório (*).g D ependency R eport File Com parison Report  Configura o tipo de relatório a ser gerado para o conjunto de arquivos contidos no diretório. c o n te n ts r p t 1 n e w file ]  ___ i  |H -£ ile  f o r E x e m p lo l. a janela [Workspace] deve conter:  ..iivKf ^ '. Edit  View  Debug  Deski oc  W indow  help  .Renam e Cyn-ertW De!ete I Source Coibol }.. 4 2 3 ] 3 3 c o íi f I.....  Menu contextual da janela [Workspace]: 4 F ig u re  ■•íâ É  S  Name ..  New variable Open selection  gf  Abre o Array Editor com as variáveis selecionadas..iCSily .a  Fie  .... coef]  = c a p 2 _ e xemplo_13('cap2_ d a d o s l ..2363 12......  112)  MATLAEP 7 -Fundamentos  ..2 3 6 3 1 2 .......  [ 3 ^ contour (m..I j Value I Class [1...t x t '...423] double <50x3 double> double  Opções da barra de ferramenta Nome  Ação  ícone  Cria uma nova variável.â Í *É llE lP llf^ .>> clear >> [m. W orkspace  Name S c °e f  Ml  .txt’). ..■>. O pe n Selection  33Ü  120\ 100  Save A s ....  *  X]  "H.1 1112  D «  E ci  view  u 3  Insert  Teots Desktop window  k c c o  ®  ® n  | V alu e  [1 ..25  30  35  40  45  S3  M ore P lo ts .d m ih l Q. C opy  C trl+ C  Duplicate  C trl+ D  D e le te  D elete  n L f  i !'AA\ > 60  E dit Value  C u rre r  I  Hi  b a r (m )  ■  60  Renam e  <___  Help  ■*: o m  — 1  (/'I  W  '  40  im agesc (m ) c o n to u r (m ) s u rf (m ) m esh (m )  25  0) I  5  10  15  20  ...  Load data file  #  Chama o import Data.  ffl ~A  Save  Armazena variáveis em arquivo...  Plot selection  Escolhe operação para geração de gráfico a partir das variáveis selecionadas. .  Delete  %  Elimina variáveis selecionadas...'c a p 2 _ s aida..  Print  a  Imprime variáveis selecionadas. coef) More Plots.. .xv.....6 9 5 . 38513 35 ... .1 0 2 . Select All  Edit  D e le te ....3 1 6 ! 34 7 9 8 3 2 607.1 2 9 ° 36' x a ' 37 .... Clear C ontents  C re a te Variable fro m Selection r in d .3 1 6 6 ! 2 5 .  'OpftnSi&eiian  Edição 'padrão Windows':  D elete  Instruções de limpeza do conteúdo de janela...0 4 0 0 : 3 4..  Im p o rt D a ta .2 7 0 9 0 . 18 357: 11 ..2 3 6 9 1R y ? 7 10. P refe re n c e s ... ro  s á A r r a y E d it o r nie  E ilt  '  Graphics Defcpjg DesKIop W indow  View#  ’Ù * '•£ f i s t  -  m  . «ii m Y I T > 7  ■À .\ 3 4 2 f 1 2 .  æ  ..  C trl+ O  Figure  Save  C trl+S  Variable Model  Close A rra y Editor Close m  C trl+W  GUI  Acesso a arquivos e dados......  ♦  Clear Contents: limpa conteúdo.nioafca  CfelrfV xmi w v r t  Paste S pecial.  C trl+ A  In s e rt. Exibe opções semelhantes ao menu pop-up [File] do MATLAB® 7.2 7 .Stóck-  m  5  m  s  e  6  ’  4991  >  v  Os menus pop-up do Array Editor são: Menu  Opções l & j t i E dit. 22 515 3...9 4 6 ' 12 31 4. Graphics  C trl+ Q  Debug  D esktop  Undo  • Oxil-Z  Cut  C trl+ X  Copy  C trl+ C  W ind  O r!*y  Pas?» ir.......  C trl+S  S et P a th ...  2 2 . 2 0 408! 12 22 443 13 2 4 ..2 0 4 ] 7 .6 5 2 ° 4 0 17 6' 4 2 ... E xit MATLAB  H § !1 1 View :.......  ♦  Delete: elimina dados....0 7 1 '" 1 1 ..3 9 2 1 4 ...  ♦  Insert: insere dados..  File  Help  C trl+N  5 a v e W orkspace A s ... 14 ......0 0 6 ' 3 6 27 4 2 ... Array Editor 0 Array Editor exibe o conteúdo das variáveis na janela [Workspace]. 4 Fi 1 2 24 5.Ö 816.. View  Conteúdo Graphics  D ebug  Des t o p  W indow  M-File O p e n .4 3 ' il C " :  ■» ? X  H eb  '3..4 b y ?r 19997 2 6 .4 2 3 1 1 .  ♦  CreateVarlable from Selection: cria nova variável a partir da seleção de valores. Page S e tu p .  C trl+ P  P rint S election.12 2 4 5 8 ....0 3 8 ... P rin t...X... 0 1633 6 1 0 . Find Files. JÜ 084° 3 9 ..... .  Clear Com mand W indow Clear Com mand H istory Clear W orkspace  Programação  ( 113  . i/.5 6 1 -...   ? U ndock m  Desktop  D o c k A r r a y E d ito r V A r r a y E d ito r T o o lb a r D o cu m e n t B ar  Help :  H  fflT te  ►I  H I L e ft/R ig h t Split R  T o p /B o tto m S p lit  [ 5 F lo a t </ Q  Exibe opções semelhantes ao menu pop-up [Windows] do MATLAB® 7.  M a x im iz e  C a s c a d e D o c u m e n ts  Windows  M in im iz e D o c u m e n ts C lo s e D o c u m e n ts 0 C o m m a n d W in d o w  C t r l+ 0  1 C o m m a n d H is to r y  C trl+ 1  2 C u r r e n t D ir e c to r y  C t r l+ 2  3 W o rk s p a c e  C t r l+ 3  A r r a y E d ito r  C t r l+ S h ift + 3  :  A F ig u re 1 Bm  MATLAB ®7■Fundamentos  .  Graphics  1 D e s k to p  W in d o w  H e lp . As opções de layout do Array Editor são apresentadas a seguir.  y» O p e n M -F H es w h e n D e b u g g in g  &ÆP  10 r ii  S tep ï n  Debug  •Stóg O -ã  sh ift  C o ntiftus  R3  Exibe opções semelhantes ao menu pop-up [Debug] do MATLAB® 7.  E x it D eb u g M a te  I W in d o w  H e lp  Mostra opções similares ao menu pop-up [Desktop] do MATLAB® 7..  C le a r B r e a k p o in ts in A ll F ile s S to p i f E r ro r s /W a r n in g s .  .. lo n g  View  lo n g E lo n g G ' hex bank  Opções de geração de gráficos a partir dos dados selecionados no Array Editor.Menu  Conteúdo  Opções  s h o r tE < ✓ s h o rtG  Configura formato de exibição de dados numéricos. 1633! 6 | " ..... ' >  % ■:  .....  m  Tiling  ffl m  Fife Edit View Graphics Debug Desktop:•Wndow ■■■Beis : : *sj i M M i 1 f~ 2: 2..561] ]" .408: 36.26.. 27 098 Í 4....11 07! 12 423 .....2:3)) contour (m( 1:50....6 52 ! 1 ...............42.245! sJ 141286.............10 204! "iX 12..  imagesc (m(l:50...11.102! 22 515! ....6  .....  Up  No caso de variáveis compostas (struct.....I ' ” 34.ÍÍÍ 3 9 2 ]........ 3.....31 66 !.. Paste do Windows®. Copy.469: ..  a  > ..327] 34.  Escolhe operação para geração de gráfico a partir dos valores selecionados.... '"43 ..... 1 2 3 1 4 ! .X  Slack ..084?.Menu  Opções  Conteúdo ESI M A T L A B H e lp  FI  U s in g th e A r r a y E d ito r  Help  W e b R e s o u rc e s  Exibe opções similares ao menu pop-up [Help] do MATLAB®7. Cut.. 10:204? 3 3166" 12.2:3)) More Plots....258: ’ "37....006:.].... f " J _______  Programação  B e E t*  v  vi«w .499!..0408.798! 18. 19.2 :3)) surf (m (l:50.1 76 !...367V ' 38 513{ ' 20......... 16 3271 .7981 32... 4.367? .368=  "39m"  &  19.....245.  á í  1  *  CZ jS I  V  Slack. 30.......... .... &aphcs DebugDesktop Window : Help..4081 ...  Opções de organização do layout para exibição de mais de uma variável.f 26.0408...0816] 4 j ’’ .1!:  & Rà © ........  m  a  Print  Imprime seleção..m m B s ... sobe um nível.22...... ! 27.18..p • m * 2~ !.. “ \ • ..... cell array).5 30"0: 32....098! 27.. ' 25 02 3:..9921.v  ■2423'  M  mz  jim je  11..315:......... 4 " 5 .. 6 j ::*i .2:3)j mesh (m(l :50..... Copy..07] 2.... 3 .. 17. 14 945:'...........|. 11 392 4 0816 12 314 6 12241 26 499 8 1 6 3 3 '" 26..0.... Paste  EB CD B  ]  %  Armazena variável em arquivo..102.....513: 35129 ' 36.... 20.  ►  C h e c k f o r U p d a te s Dem os A b o u t M A T IA B  Opções da barra de ferramenta I ffl I  m  !  u *  rrv_ N I  \ im i m  Nome  N  * | tg g  I sta ck  ícone  S  □  Ação a ■*  Save  I  Cut......R1224Í 8.9:  □  ""225 ” 25$ 27..  9 ] 0 1 % I Stack:| ô-íòí Plot selection]*»®®*  ITÍll bár'(m (l:50..9 ! 0 f ...607! : 38.449!  B  &  □  •*  í..39..2:3))  Plot selection  f ....286: 16.... ..... Executa o conjunto de instruções selecionadas...... c ç % i...... Janela [Command History] Janela na qual ficam armazenadas todas as instruções executadas na janela de trabalho [Command Window].. ' n i 1 ...  XI. 12..... !............ c o i e f ] = c a p 2 _ e x e m p lo _ i .■  .... Elimina todas as instruções executadas até a instrução selecionada.Sé A r ra y F rfito r fils  Ed* View &sphics Debug Desktop ...423! 14.. cr2.. >'  Cm. Window Help i..........23 63 .469! 19 992  4  :  5  :  6 A  >  i.  MATLAB® 7-Fundamentos I  ..($  a  s  Stack -  -  4  ffl [D B ilf ?  □ !  f 3  2 ’ 1. Chama o utilitário profile..423:  •  i  4  5  SCj  6 '?*.............0816: 6 1224  ~TM 3 12..946! 17.....0408! 4.. : .... ' t i s p l a f N o r o e 1 ....... As instruções ficam armazenadas permanentemente (não são eliminadas após o encerramento do MATLAB®).... pois as instruções são totalmente perdidas: C o iw n a a a H is to r y cap2  *  Cut  Ctrl+X  Copy  Ctrl+C  X M  Evaluate Selection Create M-Fle Create Shortcut c ic c le a r  Profile Code Delete Selection  Delete to Selection 1 ( Clear Entire History Cm... No caso de dúvida........-. p l o c (m ... o sistema pede confirmação... ■ i :2 !3 4  § 1  ■ ■ ■ ■ ■ 2 11. Elimina o conjunto de instruções selecionadas..  ..  •> ............  <.. j o / 0 |  r f \  A re y o u s u e y o u w a n t to d e a r y o u r com m and h is to ry ?  Q Q  Opções do menu flutuante da janela [Command History] Opção Cut.... [ ..07! 1 i 332: 12. Copy Evaluate Selection Create M-file Create Shortcut Profile Code Delete Selection Delete to Selection Clear Entire History  116  Ação Corta/Cola as instruções selecionadas. As informações da janela [Command History] só são eliminadas se o usuário acionar a opção [Clear Command History] do menu pop-up [Edit] ou a opção [Clear Entire History] do menu contextual. 3 ( :y ...314! 26 499  »  ... Cria um m-file com as instruções selecionadas...... Apaga todas as informações da janela.. Cria um atalho com as instruções selecionadas..   Ctrl+2  configura [Current Directory] como janela corrente.  F10 (next step)  executa próxima instrução (debug mode).  F11+Shift (step out)  sai da execução da função corrente (debug mode).  Ctrl+I (smart indent)  organiza parágrafos de m-files (editor de texto).  0 -  .  Ctrl+S (save)  salva a rq u ivo .  Ctrl+Q (quit)  fechar sessão e sai do MATLAB® 7.  Ctrl+O (open)  abri arquivo.  Ctrl+F (find)  procura.  Ctrl+X (cut)  corta.  Ctrl+A (select all)  seleciona tudo.  Tab  avança para o próximo campo. Teclas de Atalho A maioria das teclas de atalho estão indicadas nas opções dos menus pop-ups.XII.  Tab+Ctrl  avança para a próxima janela.  Ctrl+W  fecha janela [Command History].  Ctrl+V (paste)  cola.  Ctrl+D (duplicate)  duplica.  F5 (run)  executa a função até o final (debug mode).  Ctrl+4  configura [Help] como janela corrente (se estiver aberta).  Ctrl+1  configura [Command History] como janela corrente.  Ctrl+C (copy)  copia.  Programação  Tec la  Ação  Alt+S  abre menu [Start].  ESC (escape)  cancela comando em execução.  Ctrl+3  configura [Workspace] como janela corrente.  Ctrl+0  configura [Command Window] como janela corrente.  Ctrl+P (print)  imprime.  Ctrl+Shift+O  configura [Edit] como janela corrente (se estiver aberto).  F11 (step in)  entra na execução da próxima função ( debug mode).  Ctrl+N (new)  cria novo arquivo.  Ctrl+Z (undo)  desfaz.  Ctrl+Y (redo)  refaz.   ♦  cor de fundo por janela.2. é possível ajustar os parâmetros de preferência do sistema: ♦  fonte e cor de texto por janela... Utilitários e Arquivos Especiais 0 MATLAB® 7 possui utilitários e arquivos especiais para facilitar a configuração e o gerenciamento de arquivos neste ambiente. I. Utilitário Pathtool Pode ser acionado pela opção [Set Path] do menu pop-up [File] ou pelo comando pathtool.1. Utilitário Preferences Pode ser executado pela opção [Preferences] do menu pop-up [File] ou pelo comando Preferences. Ss Forts Custom Colors s Command W indow Keyboard & hdenting Command History B Editor/Debugger Display Keyboard & Indenting Language Publishing Publishing Images Autosave Help Web Current Directory Workspace Array Editor GUIDE 53 Figure Copy Template Copy Options Instrument Control  General Preferences Toolbox path caching.  li 1  MATLAB®7 .. Por intermédio de sua caixa de diálogo... Por meio de sua caixa de diálogo. é possível configurar os diretórios reconhecidos pelo MATLAB® 7: ♦  adicionar novos diretórios..  ♦  mover diretórios (mudar prioridade de busca).  ♦  padrões de exibição de informações..3.  ♦  eliminar diretórios..  MAT-Files Source Control ... P I Enable toolbox path cache □ Enable toolbox path cache diagnostics I Update Toofciox Path Cache  |  Specify how colored Snes and text w e sent to the prrter ® Use printer defaults O Always send as black and white  O Always send as color Default behavior o f the delete function O  Move !ies to the Recycle &n  < 5 Delete lie s permanently  1 OK  1 1 Cancel  | | Apply  |  f  Help  j  II..Fundamentos J  .  este utilitário abre uma caixa de diálogo semelhante às janelas de help de aplicativos Windows em geral...VnollabAloolbox\ínal... ..... é possível procurar arquivos..\natIabAioolbox\m allab\m alfun C:\m atlab7\toolbox\mailab\datafun C.\rnallab/\lc..í iJ C. Sua interação é semelhante ao comando Search do Windows®.hpalh  ....\m atlab7Mcolbox\fn3il3b\po!yfun C..\ni3llab7\loolbox'mallob\au<Jiuvi(J»u . Por meio de sua caixa de diálogo.\rnatlab7McDlbox\mafIab\íiinfun :2 íí C:\m allabAloolbox\m ailah\sparfun '_ j C \ro. ..>lbux\ínatld'a\specfun CJ C . _ J C.. ■ . A particularidade do [Find Files] é a existência da opção de busca nos diretórios definidos no pathtool do MATLAB® 7. nA F in d f ile s j F ind files n am ed: r  Find files co n tain in g t e x t  Look h: C u rren t d irec to ry  C lo se j  j  Help  IV.A3 .nar«jfis Uwe eltect rnneJtatsff  Aod FoCíf  WATLABiesr-...ClJ C:\m al Iab7\leolbox\mat!ab\!imefun I Dtttmri D  J i  "--« n  III..lfisB I  I » . Utilitário Find Files Pode ser executado pela opção [Find Files] do menu [Start]. C \m atIab7\toolbox\m ailab\imagpsei  _  L3 C:\m allab7\loolbox\ma1l3b\iofun .ab\graph2d J C:Vna{lab7Mooibox\mal!3b\graph'J(i _ J C. Utilitário MATLAB® Help Browser Acionável pelo ícone 1311..  | Act! w*n Subtoide»s .Vnatlab7\íoolbox\mailab\ops C:\ni3tlabAtiolbnx\m allab\Jang C \matlab7\ioolbox\m 3il3b\elm at C \mallab7\loolbox\m allab\elfun 1 ) C.....itlah7\luulbox\iny|!ab\scribe C.....VnatlabAtoo'b3x\mat!3b\specgraph ...£2 C Ynatlab7\i30ib0x\m ailab\grapfiics _ J C:Vnatlab7\t50Íbox\m atl3b\uilools ■£ ] C \matlah7Mooibo*\matlab\strlur..  |  Move Down  j  ■ Move tc Rottom J  | Remove | ío v j  j I C.. Porém como particularidades do MATLAB® Help Browser podemos citar:  Programação  (119  ...... 0 Excel Link B: 0 MATLAB Builder for COM H0 MATLAB Builder for-Excel S ^ MATLAB Compiler r'0 MATLAB Webserver S.  ♦  pasta [Demo]: contém exemplos de utilização do MATLAB® 7. 0 Data Acquisition Toolbox s 0 Database Toolbox s '0 Datafeed Toolbox Ü0 Filter Design Toolbox Financial Toolbox i 0 Financial Derivatives Toolbox $ Financial Time Series Toolbox  Functions: « BiL.m  startup.E o arquivo de 'inicialização' do MATLAB® 7.Este arquivo pode ser criado e alterado pelo usuário.  MATLAB ®7-Fundamentos  . cujos nomes são reservados e possuem as seguintes propriedades: Nome do Arquivo  Definição . F8e Edit  View.Este arquivo é executado quando o MATLAB® é aberto.  matlabrc. Arquivos Especiais Os arquivos especiais do MATLAB® 7 são m-files. 8 In  Handle Graphics:  Alphabetical Order object Properties  Documentation Set  » Getting Started Introduces MATLAB and gets you started using it  «User Guides  Provides tutorials and comprehensive information about MATLAB v List o f User Guides  i■Of Fiypri In rn rn p TonlK oy  V.bat' do DOS. este arquivo é executado imediatamente após o matlabrc.Contém a configuração padrão do MALTAB® 7.Go Favorites Desktop Window  Help :  0 | # :(î4 Contents [ Index §-Search | Demos?  |  @ Begin Here  m.Não é recomendável alterar este arquivo.Restaura o path padrão.Este arquivo é alterado pelo utilitário pathtool.Cateao.♦  pasta [Contents]: toda a documentação do MATLAB está acessível em formato eletrônico nesta pasta. . .m. ^R elease Notes !B-0 Installation  i [Title: I MATLAB  IMATLAB'  'ti. .m  . ■Contém a configuração de path padrão.m.m  pathdef.Equivale ao antigo arquivo 'autoexec. . .m restoredefaultpath.iy. 0 Bioinformatics Toolbox s 0 Communications Toolbox s 0 Control System Toolbox s 0 Cujve Fitting Toolbox 5. . .Se o MATLAB® 7 detectar a existência do startup.  graus e hiperbólico  as e c . graus e hiperbólico  as i n . graus e hiperbólico  sin.  sinh  seno: radianos.  acscd. graus e hiperbólico  Funções Exponenciais Elementares Nome  Retorna  exp(x)  exponencial (ex)  expml(x)  exponencial de x menos (ex . graus e hiperbólico  sec.  asech  arco-secante: radianos.  atand.y)  potência real x*  sqrt(x)  raiz quadrada  . graus e hiperbólico  ac o t .base e  loglp(x)  logaritmo natural de x+1 (ln(x+1))  log2(x)  logaritmo na base 2  loglO(x)  logaritmo na base 10  nextpow2(x)  próxima potência de 2.  tanh  tangente: radianos. graus e hiperbólico  cot.  codh  co-tangente: radianos.1. graus e hiperbólico  at a n .  3.  asecd.  cscd.  cosh  co-seno: radianos.3. graus e hiperbólico  tan. graus e hiperbólico  ac s c . organizadas por disciplina. graus e hiperbólico arco-tangente (quatro quadrantes)  atan2(x. listamos as principais funções de operações matemáticas disponíveis no programa.  csch  co-secante: radianos. Operações Matemáticas no MATLAB® 7 Neste tópico.1 )  l o g (x)  logaritmo natural (In) .  asinh  arco-seno: radianos. Funções Matemáticas Elementares Funções Trigonométricas Elementares Nome  Retorna  ac o s .  atanh  arco-tangente: radianos.  sech  secante: radianos.  acoth  arco-cotangente: radianos. tal que x < 2n  pow2(x)  potência de 2  reallog(x)  logaritmo natural real  realpow(x.  acsch  arco-cosecante: radianos.2.  seed.  acosd.  tand.  acosh  arco-coseno: radianos.  sind.  cosd.  acotd. graus e hiperbólico  csc.  asind.  cotd.2.y) cos.  se o número é real  real(z)  parte real de z  s i g n (z)  sinal de z  Funções de Arredondamento e Resto Nome  Retorna  fix( X )  trunca o valor de x (arredonda para zero)  floor(x)  trunca o valor de x para o inteiro mais próximo menor  ceil(x)  trunca o valor de x para o inteiro mais próximo maior  round(x)  trunca o valor de x para o inteiro mais próximo  mod(x.b)  número complexo a + bi  conj(z)  conjugado de z  cplxpair(m)  ordena números complexos conjugados  i m a g (z )  parte imaginária de z  isreal(z)  verdadeiro (trué).6  x=-1. se o número é primo  lcm(nl. y)  resto da divisão de x/y  Exemplos: Função  x=1.n2)  máximo divisor comum de n1 e n2  isprime(n)  verdadeiro (trué).n2)  mínimo múltiplo comum entre n1 e n2  nchoosek(n.y)  módulo da divisão x/y  rem (x.6  fix (x)  1  -1  floor (x)  1  -2  ceil (x)  2  -1  round (x)  2  -2  Números Primos e Fatoração (Matemática Discreta .Funções de Números Complexos Nome  Retorna  a b s (z )  valor absoluto  a n g l e (z )  ângulo em radiano do número complexo  c o m p l e x (a.Números Inteiros) Nome  Retorna  factor(n)  decomposição em fatores primos  factorial(n)  fatorial de n  gcd(nl.k)  coeficiente binomial nl / (kl * (n .Fundamentos  .k)l)  MATLAEP 7 .  r a t s (n)  Exemplos das funções mod e rem:  Exemplo da função factor: >> f = factor(210) f = 2 3 5  7  % 210 = 2*3*5*7  Exemplo da função perms: >> p e r m s ([1 5 10]) ans = 1 5 10 1 5 10 10 1 5 5 1 10 10 1 5 1 10 5  seis possiveis permutações  Exemplo das funções rat e rats:  3. Vetores e Matrizes Funções de Teste Lógico Retornam informação de classe lógica: 0 {false) /1 {trué).2.Retorna possíveis permutações dos valores em n lista de números primos menores que n fração aproximada de n  Nome p e r m s (n) primes(n) r a t ( n ) .  Programação_________________________________________________  .2. Nome isempty(m) isegual(ml.3 4.m2) isfloat(m) isinteger(m) islogical(m) isnumeric(m) isscalar(m) issparse(m) isvector(m)  Retorna true se: a variável é vazia uma variável é igual à outra a variável é numérica de ponto flutuante a variável é numérica inteira a variável é lógica (bit 0 /1 ) a variável é numérica a variável é escalar a variável é uma matriz esparsa a variável é um vetor  Informações básicas sobre matrizes Nome length(m) ndims(m) numel(m) size(m)  Retorna número máximo de elementos por dimensão número de dimensões da variável número total de elementos número de elementos por dimensão  Operações e Manipulações s  cumprod  Produto acumulado. Sintaxe típica: >> P = cumprod(m)  Parâmetros: Entrada m: vetor m: matriz  Saída P: vetor com produtos acumulados P: vetor com produtos acumulados por coluna  Exemplo: >> c u m p r o d ([1 2 3 4 5 ) ans = 1 2 6 24 » c u m p r o d ([1 2 .5 6] ) ans = 1 2 3 8 15 48  120  MATLAB® 7 ■Fundamentos  .  Sintaxe típica: »  D = diag(m)  Parâmetros: Entrada m: vetor m: matriz Exemplo:  Programação  Saída D: retorna matriz com os elementos de m na diagonal D: retorna os elementos da diagonal de m  . 3 4.S  cumsum  Soma acumulada. Sintaxe típica: »  S = cumsum(m)  Parâmetros: Saída S: vetor com somas acumuladas S: vetor com somas acumuladas por coluna  Entrada m: vetor m: matriz Exemplo:  15  V V o  » cumsum ( [1 2 3 4 5] ) ans = 6 10 1 3 [1 2. 5 6] ) ans = 2 1 4 6 12 9  S  diag  Diagonal de matriz. Fundamentos j :  . 7 8 0].y  find  Localiza elementos dentro de uma matriz. » find(m) % indice dos elementos diferentes de zero » find(m) ans = 1 3 5 6 7 8 » find(m == 0) % indice dos elementos iguais a zero ans = 2 4 9 >> find(m<0) % indice de elementos < 0 ans = 1 5  S  fliplr/flipup  Move elementos da matriz da esquerda para a direita / de cima para baixo. Sintaxe típica: >> ml = fliplr(m)  / flipup(m)  Parâmetros: Entrada m: matriz  Saída m1: matriz com elementos deslocados  Ii MATLAB® 7. f. Sintaxe típica: »  índice = f i n d (Critério)  Parâmetros: Entrada Critério: critério de localização  Saída Indice: vetor com os índices dos elementos que satisfazem o critério  Exemplo: » m=[-l 0 3 0 -5 6. Exemplo:  s  kron  Produto de Kron.m2)  Parâmetros: Saída k = matriz com produto de Kron de m1 e m2  Entrada m1.m2) ans =  2 4 8 16  3 5 12 20  3 5  4 8 10 20  6 10 15 25  6 12 12  9 15 18  . Sintaxe típica: >> k = kron(ml. m2: matrizes Exemplo: » ml= [1 2 3.-4 5 6] ml = 1 2 3 4 56 » m2= [2 3.4 5]  m2 : 4 » kron(ml. s  m ax/m in  Valor máximo /m ínim o. Sintaxe típica: »  P = prod(m)  Parâmetros: Entrada m: vetor m: matriz  Saída P: produto dos elementos P: vetor com produtos por coluna  Exemplo: » prod( [ 1 2 3 4 5]) ans = 120 » prod( 1 2 . 3 4.5 6 ] ) ans = 1 2  s  prod  Produto dos elementos. 5 6 ] ) ans = 5 6 » mi n ( [1 2 .3 4 . Sintaxe típica: »  v = max(m)  / min(m)  Parâmetros: Entrada m: vetor m: matriz  Saída v: valor máximo / mínimo do vetor v: vetor com valores máximos / mínimos por coluna  Exemplo: » m a x ([1 2.3 4 .5 6 ] ) ans = 15 48  MATLAB® 7-Fundamentos  .  col: números de linhas e colunas  Saída R: matriz com elementos replicados  Exemplo: » m=[l 2. col)  Parâmetros: Entrada m: variável lin.4) % dimensões devem ser compatíveis ans = 1 8 4 11 7 3 10 6 2 9 5 12  . 3 ) R = 1 2 1 3 4 3 1 2 1 3 4 3  s  % replicar m em 2 linhas e 3 colunas 2 4 2 4  1 3 1 3  2 4 2 4  reshape  Redimensiona matriz.  lin. Sintaxe típica: »  R = repmat(m.y  repm at  Replica matriz.  col)  Parâmetros: Entrada m: variável lin.3. col: números de linhas e colunas  Saída R: matriz redimensionada  Exemplo: » m= [1 2 3 4 5 6. 7 8 9 10 11 12] m = 1 2 3 4 5 6 7 8 9 10 11 12 » reshape(m.2 . Sintaxe típica: »  R  =  reshape(m.  lin. 3 4] m = 1 2 3 4 » R = r epmat(m.  Sintaxes típicas: >> S = sort(m) >> S = sort(m.S  rot90  'Roda' matriz em 90°. Sintaxe típica: >> R = rot90(m)  Parâmetros: Entrada m: matriz  Saída R: matriz 'rodada'  Exemplo: » m= [1 2 3 4 5. 6 7 8 9 10] m = 4 5 1 2 3 9 10 6 7 8 >> rot90(m) ans 5 10 4 9 3 8 7 2 1 6 » m' % rot90 e' diferente de transposta ans = 1 6 2 7 3 8 4 9 5 10  S  sort  Ordena elementos. 'descend'  ______________________________________________ Saída S: vetor ordenado S: matriz com colunas ordenadas  S  . metodo)  Parâmetros:  _________ Entrada m: vetor ou matriz metodo: 'ascend'.  Sintaxe típica: »  S = sum(m)  Saída S: matriz ordenada  .Exemplo: » s o r t ([1 3 4 5 2]) ans = 4 5 1 2 3 » s o r t ([1 3 4 5 2]. Sintaxe típica: »  S = sortrows(m. 'd e s c e n d 1) ans = 5 4 3 2 1 » m=[5 1 3. 2 4 6] m = 5 1 3 2 4 6 » sort(m) % Os elementos estao em ordem por coluna ans = 2 1 3 5 4 6  S  sortrows  Ordena elementos de matrizes tendo uma coluna como chave de ordenação.  col)  Parâmetros: Entrada m: matriz col: índice da coluna Exemplo:  s  sum  Soma dos elementos. 5 6]) ans = 9 12  •S tril/triu Matriz triangular inferior/superior. Sintaxe típica: »  R = tril(m)  / triu(m)  Parâmetros: Entrada m: matriz Exemplo:  Saída R: matriz triangular  .3 4.Parâmetros: Saída S: soma dos elementos S: vetor com somas por coluna  Entrada m: vetor m: matriz Exemplo: » s u m ( [1 2 3 4 5]) ans = 15 » s u m ([1 2.  mn)  Parâmetros: Entrada matrizes  Saída R: matriz 'diagonal'  Exemplo:  v  eye  Cria matriz identidade.. m2. m: dimensões  Saída M: matriz identidade  e a s t«  Exemplo:  Programação  S-  . Sintaxe típica: »  R = bkldiag  (ml.m)  Parâmetros: Entrada n.. cria uma matriz com a diagonal formada pelas matrizes fornecidas.Construções Matriciais Elementares  s  blkdiag  Dadas n matrizes.. Sintaxe típica: »  M = eye(n)  / eye(n.  .  Sintaxe típica: »  V = logspace(In. Sintaxe típica: »  V = linspace(Inicio.6228 56.5)  S  m eshgrid  Cria duas matrizes resultantes do cruzamento dos valores dos vetores x e y.Fi. 10Fi) N: número de divisões  Saída V: vetor com N elementos (se N for omitido. 0 0 0 0 » V = l i n s p a c e (0.5) 0  S  0.7828 31. 7500  1 .2500  0.y)  MATLAEP 7 .2.0000 17. 0 0 0 0 » eye (2)  logspace  Cria vetor com espaçamento logarítmico.y  linspace  Cria vetor com espaçamento linear.N)  Parâmetros: Entrada ln.2341 1 0 0 .my]  = meshgrid(x.Final. a função gera 50 divisões)  Exemplo: >> V = l o g s p a c e (1.5000  0. Final: intervalo N: número de divisões Exemplo: »  V = l i n s p a c e (0. Sintaxe típica: I»  [mx.1.N)  Parâmetros: Saída V: vetor com N elementos (se N for omitido. a função gera 100 divisões)  Entrada Inicio.1.5) % 5 divisões entre 10^1 a 10^2 V = 10.Fundamentos  .Fi: intervalo (10ln. y) mx = 1 2 3 4 1 2 3 4 1 2 4 3 my = 1 1 1 1 2 2 2 2 3 3 3 3 » s u r f (mx. >> y = l :3. >> [mx. Sintaxe típica: »  M = ones(n)  / ones(n.Parâmetros: Entrada x.my]=meshgrid(x.3) ans = 1 1 1 1  S  1 1  rand  Cria matriz de números pseudo-aleatórios uniformemente distribuídos entre 0 e 1.my: matrizes com vaiores cruzados  Exemplo: >> x = l : 4 .*my)  s  ones  Cria matriz de 1's.m)  . Sintaxe típica: »  M = rand(n)  °rogramação  / rand(n.m)  Parâmetros: Entrada n. y: vetores  Saída mx.m: dimensões  Saída M: matriz de 1's  Exemplo: » o n e s (2. 6656  0.0185  0.2877  .m)  Parâmetros: Saída M: matriz de números aleatórios  Entrada n.9501 0.m: dimensões Exemplo: » r a n d n (2) ans = -0. Sintaxe típica: »  M = randn(n)  / randn(n.8214 0.7621  0.6068 0.Parâmetros: Saída M: matriz de números aleatórios  Entrada n.3) ans = 0.m: dimensões Exemplo: » r a n d (2) ans = 0.8913 0.4326 -1.4565 0. »  r a n d ( 1S t a t e s u m ( 1 0 0 * c l o c k ) )  ■/ randn Cria matriz de números pseudo-aleatórios com distribuição normal entre -1 e 1.4447  Observação: a instrução seguinte configura 'semente' para iniciar a geração de números aleatórios.4860  0.2311 » r a n d (2.1253 0. 0000 2. Sintaxe típica: »  M = zeros(n)  / zeros(n.S  zeros  Cria matriz de 0's.0000  Programação  -6  1.m: dimensões  Saída M: matriz de 0's  Exemplo: »  z e r o s (2)  o  O o  1o  n 3  C onstru ções M atriciais Especiais S  compan  Cria matriz companheira do polinómio dado.m)  Parâmetros: Entrada n.0000  1.  2  e  3  . Sintaxe típica: »  M = compan(p)  Parâmetros: Entrada p: vetor polinómio  Saída M: matriz cujos autovalores são raízes do polinómio  Exemplo: »  P=poly( [ 1  2  3] )  % coeficiente do polinomio de raizes  P = 1  -6  11  » m=compan(p) m = 6  -11  6  1  0  0  0  1  0  » eig(m) ans = 3 .  Sintaxe típica: »  c = cond(m)  Parâmetros: Entrada m: matriz  Saída c: condição de inversão  Exemplo: » m l = [-1 2 3. 4 5 6. Álgebra Linear A n á lis e M a tric ia l s  cond  Retorna condição de inversão da matriz. 7 8 9 ] . Sintaxe típica: »  P = p a s c a l (n)  Parâmetros: Saída P: matriz de Pascal  Entrada n: ordem da matriz Exemplo: »  p a s c a l (4) 1 1 1 1  1  1  2 3 4  1 3 6 10  4 10 20  3. 8131e+016  MATLAB ®7-Fundamentos  . g r a n d e 1. 7 8 -9] .y  pascal  Cria matriz de Pascal de ordem n.3211 » m 2 = [1 2 3. » cond(ml) %valor 'pequeno1.2. m2 nao tem boas condicoes de ser » cond(m2) %valor invers1v e 1 ans = 3 .3. 4 -5 6. ml tem boas condicoes de ser inversivel ans = 4. m)  s  norm  Retorna norma do vetor ou da matriz.m) % normal de vetor norm([0 1 2 ] ) % s q r t (5)= sqrt(2A2 + 1 ) .4 -5 6.7 8 -9]) ans 15. Sintaxe típica: »  n = norm  (m)  Parâmetros: Entrada m: vetor m: matriz  Saída n: comprimento do vetor n: maior valor singular da matriz  Exemplo (arquivo cap3_norm_exemplo.s  det  Retorna determinante de matriz.0079  i Programação  [0 1 2]  S-  . comprimento de ans = 2. Sintaxe típica: »  d = det(m)  Parâmetros: Entrada m: matriz  Saída d: determinante da matriz  Exemplo (arquivo cap3_det_exemplo.2361 %normal de matriz n o r m ( [-1 2 3.  7 8 -9] .8165 -0.1046 -0.4072 -0.0611 0.0852 0. Sintaxe típica: »  q = orth  (m)  Parâmetros: Saída q: matriz ortogonal  Entrada m: matriz Exemplo: » »  m=[-l 2 3.0000 -0.0000 0.3982 » q' *q % Identidade ans = 1.S  null  Retoma subespaço nulo de uma matriz com determinante 0.0000  0.0000 1.0000 0.1202  -0. q=orth(m)  q = -0.0000 1.0000 -0. 4 5 6. » det(m) % determinante e' zero ans = 0 » null(m) ans = -0. 7 8 9]. Sintaxe típica: »  k = null  (m)  Parâmetros: Saída k: matriz do subespaço nulo  Entrada m: matriz com determinante 0 Exemplo: » m= [1 2 3.0000  . 4 -5 6.4082 0.0000 -0.9113 0.4082  S  orth  Retorna matriz ortogonal.9909 0.9094 -0. 4 5 6. entao o determinante é zero r a n k ([1 2 3.m2)  Parâmetros: Entrada  Saída  m1. 1 1]. m2: matrizes  a: ângulo em radianos  Exemplo: »  m l = [1 1.  »  m 2 = [-1 -1.7 8 -9]) ans = 3 % posto me n o r que dimensão da matriz. Sintaxe típica: »  a = subspace  (ml.m2) ans = 1.m) % posto=dimensao da matriz.4 -5 6.■/  rank  Retorna posto de matriz (número de linhas ou colunas linearmente independentes). entao o determinante e 1 diferente de zero r a n k ([-1 2 3.5708 % pi/2 = 90 graus  (planos perpendiculares)  .  » subspace(ml.1  -1]. Sintaxe típica: »  p = rank  (m)  Parâmetros: Entrada  Saída  m: matriz  p: posto da matriz  Exemplo (arquivo cap3_rank_exemplo.-7 8 9]) ans = 2  S  subspace  Retorna ângulo entre os subespaços definidos pelas duas matrizes de entrada. 1861 » m*q % Identidade ans = 0 1.0000 1.0000  0 -0.0000  0.7 8 -9]) ans = -15  E q u a ç ã o L in e a r s  inv  Retorna matriz inversa.0750 0. q=inv(m)  q = -0.0000 » q*m % Identidade ans = 1.0000 0 -0.Fundamentos  .4 -5 6.0083  -0.0333 0.0000 0 0 -0.0000 0.0000 0.trace  S  Retorna soma dos elementos da diagonal da matriz.0083 0.0500 -0.0000 0.0000 1. 4 -5 6.0611 0.2167 -0. Sintaxe típica: »  q = inv (m)  Parâmetros: Entrada m: matriz  Saída q: matriz inversa  Exemplo: » »  m = [-1 2 3.1167 0. Sintaxe típica: »  d = trace(m)  Parâmetros: Saída d: soma dos elementos da diagonal  Entrada m: matriz Exemplo: » t r a c e ([-1 2 3.0000 1. 7 8 -9].0000 1.0000  MATLAEP 7 .  4 -5 6. A*x = B.0000 0 1.5714 11.3731  .0000 8.1429 5. Sintaxe típica: >>  [L. tal que a * x = b  Saída x: resultado do sistema  Exemplo:  s  lu  Decomposição LU (triangular inferior e superior).5714 1.U] = lu(m)  Parâmetros: Entrada m: matriz  Saída L: matriz triangular inferior U: matriz triangular superior  Exemplo:  Programação  O  o  » m=[-l 2 3.0000 0 0 U = 7.U]=lu(m) L = -0.b)  Parâmetros: Entrada a: matriz b: vetor.S  linsolve  Resolve sistema de equações lineares.3284 1. 7 8 -9].0000 0 -9. Sintaxe típica: | »  X = linsolve(a.1429 -0.0000 0. » [L.0000 -9.  7 8 9].3117 0.8616 0 .S  pinv  Retorna matriz pseudo-inversa para matriz com determinante igual a zero. 4 5 6.1698 8.0000 2.0000 3.0000 1.5278 >> m*q*m' % m = m*q*m' .1851 -5.0000 5.1944 0.0000 4. 7 8 -9] .6389 0.Fundamentos  .propriedade da pseudo-inversa ans = 7.6882 -8.9492 -0.8127 0.R]  = qr(m)  Parâmetros: Entrada m: matriz  Saída Q: matriz ortogonal R: matriz triangular  Exemplo: >> m = [-1 2 3.0000 9.0000 6. » [Q. 4 -5 6.1240 4.5592 0 5.1667 0.0556 -0.0556 0.3056 -0.2895 0.5057 R = 8.R]=qr(m) » [Q.4924 0.R] =qr (m) Q = % Ortogonal (det(Q) = 1) 0.1231 0. Sintaxe típica: »  q = pinv(m)  _____________________________________________  Parâmetros: Saída q: matriz pseudo-inversa  Entrada m: matriz Exemplo: » »  q  m=[l 2 3. q=pinv(m)  % det(m)  = 0  =  -0.1667 0.0000  S  qr  Decomposição ortogonal-triangular.1004 0 0  MATLAB® 7 .0000 -0.0000 8.0425 0. Sintaxe típica: »  [Q.  D] =eig (m) % m * V = V * D V = -0. 4 -5 6. » [V.6116 ■0.5918 0.6019 -0.2152 0 0 0 0 -14. Sintaxe típica: »  [V.3760 D = % as diagonais sao autovalores de m 4. Autovetor  s  eig  Retorna autovalores e autovetores (usados para o cálculo de potência de matriz).5343  y  poly  Dada uma matriz m. Sintaxe típica: »  P = poly(m)  Parâmetros: Entrada m: matriz  Saída P: vetor com os coeficientes do polinómio característico de m  .8620 -0.4929 0.5250 -0.7045 -0.1182 -0. retorna os coeficientes do polinómio característico de m: det(Hambda-m) = 0.D]  = eig(m)  Parâmetros: Saída V: matriz de autovetores D: matriz diagonal de autovalores  Entrada m: matriz  1  CO  Exemplo: -J  » m=[-l 2 3 .7494 0 0 -5.Autovalor. 2152 -14. 4 -5 6. 7 8 -9].V) tal que m = U*S*V'. » D=polyeig(m) % Auto-valores de m D = 4. det(U)=l -0.V]=svd(m) U =% U matriz unitaria.4072 -0.S.5343  y  mm l|  svd  Retorna decomposição em valores singulares (U. » [U. Sintaxe típica: »  R = polyeig(m)  Parâmetros: Saída R: vetor contendo as raízes do polinómio característico de m  Entrada m: matriz  Exemplo: » m=[-l 2 3.9094 -0.1202 S = % S matriz diagonal  MATLAB ®7-Fundamentos  .S.9113 0.Observação: o primeiro elemento do vetor contém o coeficiente de maior grau: P(t) = P (1)*t3 + P (2)*t2 + P (3)*t + P(4).0852 0.V]  = svd(m)  Parâmetros: Entrada m: matriz  Saída U: matriz unitária.1046 0.7494 -5.0611 0.S. det(V)=1  Exemplo: » m= [-1 2 3. 7 8 -9].3982 0. Sintaxe típica: I»  [U. 4 -5 6.9909 -0.__________________________________________  ■/  polyeig  Retorna as raízes do polinómio característico de m: det(Hambda-m) = 0. det(U)=1 S: matriz diagonal com os valores singulares V: matriz unitária. 5 6] ) ans = 0 0 2 3 6 8  S  mean/median/std/var  Média.6090 0.3 4 .9064 0 0 0 0 3.0274 0.2.3213 -0.0079 0 0 6.15.5000  » c u m t r a p z ([1 2 . mediana.7594 -0.4.2273 0.0000  .4732 V = % V matriz unitaria. desvio padrão e variância. Sintaxe típica: »  S = cumtrapz(m)  Parâmetros: Entrada m: vetor m: matriz  Saída S: vetor com somas acumuladas S: vetor com somas acumuladas por coluna  Exemplo: » cumtrapz( [ 1 2 3 4 5 ans = 0 1.9466 0. det(V)=1 0.7251 -0.6500  3.2287 0. Sintaxe típica:  12. Análise de Dados e Transformada de Fourier O perações Básicas y  cumtrapz  Soma acumulada 'trapezoidal' (integral por área de trapézio).5000  ) 4.0000  7. 3 4 .3 4 .5 6] ) ans = 4 4  S  trapz  Integração discreta (trapezoidal). Sintaxe típica: >> R = trapz(m)  Parâmetros: Entrada  Saída  m: vetor  R: integral discreta do vetor  m: matriz  R: integral discreta por coluna  Exemplo: » a r e a ( [ 1 2 1 3 1]) » R=trapz([l 2 1 3 1]) R = 7  s  MATLAB® 7 ■Fundamentos  .5 6 ] ) ans = 2 2 » v a r ([1 2 .3 4.5 6]) ans = 4 3 » s t d ( [1 2 .Parâmetros: Entrada  Saída  m: vetor  v: média/mediana/desvio padrão/variância dos valores no vetor  m: matriz  v: média/mediana/desvio padrão/variância por colunas  Exemplo: » m e a n ( [1 2 3 4 5]) ans = 3 » m e a n ( [1 2 .3 4 .5 6 ] ) ans = 4 3 » m e d i a n ([1 2.  i=2 a n D: vetor de diferenças finitas por coluna  . Sintaxe típica: »  D = diff(m)  Parâmetros: Entrada m: vetor m: matriz Exemplo:  Programação  Saída D: vetor de diferenças finitas: m(i)-m(i-1).Diferenças Finitas ^  diff  Diferenças finitas. PY]=gradient(Z.m): % Gerar superficie [X.*Y.  MATLAB® 7 .Y]=meshgrid(.2) . Z = c o s ( X ) .1.s  gradient  Diferenças finitas parciais.1.0. 0. % Visualizacao dos resultados s u b p l o t (2.Fundamentos  .2. Sintaxe típica: »  G = g r a d i e n t (m)  Parâmetros: Saída G: matriz de diferenças finitas parciais  Entrada m: matriz  Exemplo (arquivo cap3_gradient_exemplo.p i :0.2) c o n t o u r (Z) hold Current p lot held quiver(PX.2:pi) .PY) t i t l e (1G r a d i e n t e s ')  Gradientes  Superfície  I30 ■25  20  10 5  Correlação  s  corrcoef  Retorna matriz de coeficiente de correlação. % Calculo do gradiente % Derivadas parciais da curva [PX.1) s u r f (Z) t i t l e ('Su p e r f i c i e ’) s u b p l o t (2.2:pi.-pi:0. 0000 -48.0000 0.6547 1.3296 -0. » corrcoef(m) ans = -0.6667 42.0000 -21.0000  C onvolução e Filtros ■/ conv Retorna multiplicação de polinómios.3333 -21.Sintaxe típica: »  C = corrcoef(m)  Parâmetros: Entrada m: matriz  Saída C: matriz de coeficiente de correlação  Exemplo: » m=[-l 2 3.0000 63.0000 -0.0000 1.6667 16.q)  Saída C: matriz de covariância  . Sintaxe típica: >> C = conv(p.3296 1. Sintaxe típica: »  C = cov(in)  Parâmetros: Entrada m: matriz Exemplo: >> m = [-1 2 3. 7 8 -9].9295 0.3333 -48.0000 8.9295  ■/  COV  Retorna matriz de covariância. » cov(m) ans = 8.6547 -0. 7 8 -9] . 4 -5 6. 4 -5 6.  % (x + 1) » C=conv(p. q: coeficientes de polinómios  Saída C: coeficientes do polinómio resultante da multiplicação  Exemplo: » p=[l 2 3]. Sintaxe típica: »  D = deconv(p.R] =deconv(p.q)  Parâmetros: Entrada p.a.q) C = 1 3 5 3 % (x~3 + 3*x~2 + 5*x + 3)  s  deconv  Retorna divisão de polinómios.Fundamentos  .q) D = 1 1 % (x + 1) R = 0 2 % 2 0  S  filter  Aplica filtro nos valores fornecidos. % (x + 1) % p = D*q + R » [D. % (xA2 + 2 *x + 3) » q= [1 1] .Parâmetros: Entrada p.X)  MATLAB» 7 . Sintaxe típica: »  Y = filter(b. % (x"'2 + 2*x + 3) » q=[l 1] . q: coeficientes de polinómios  Saída D: coeficientes da divisão R: coeficientes do resto  Exemplo: » p=[i 2 3].  s=sin(15*t)+sin(50*t). fs=filter(b. p l o t (t .fs)  Transformada de Fourier v'  fft  Retorna transformada discreta de Fourier. Sintaxe típica: »  Y = fft (X)  Parâmetros: Entrada X: vetor de valores do sinal  Programação  Saída Y: valores da transformada  [ 153  .10.01:pi.s).5).a.a]=ellip(4. a: coeficientes dos polinómios b/a X: valor a ser filtrado  Saída Y: valores depois da aplicação do filtro  Exemplo (arquivo cap3_filter_exemplo.Parâmetros: Entrada b.m): % Gerar sinal c om frequencias 15 e 50 Mhz t=0:0.0.20.s . [b.t . y s i )  MATLAB ®7-Fundamentos  . contem a transformada » ysi = ifft(Y). p l o t (f .P y y (1:257)) t i t l e (1F r e q u e n c i a 1)  ✓  ifft  Retorna inversa da transformada discreta de Fourier.m . x = s i n ( 2 * pi*50*t)+sin(2*pi*120*t).2) f = 1000*(0:256)/512.512).001:0.  Y: valores da transformada  X: valores do sinal  Exemplo: % Apos executar cap3_ fft_exemplo: % ys.retirado do Tutorial do MATLAB® 7) % cap3_fft_exemplo () echo on % Gerar sinal co m frequencias 50 e 120 Mhz t = 0:0.' . Sintaxe típica: »  X = ifft(Y)  Parâmetros: Entrada  Saíc. s u b p l o t (1.y s (1:50)) t i t l e (1Sinal co m ruido') % Transformada de st Y = fft( y s .2.y s . % Conjugado de Yst Pyy = Y-* conj(Y)' / 512. s u b p l o t (1. contem o sinal % Y.[1:length(ysi)]. % Sinal obtido pela inversa » p l o t ([1:length ( y s ) ].Exemplo (arquivo cap3Jft_exemplo.2.6. ys = x + 2 * r a ndn(size(t)).1) pl o t ( 1 0 0 0 * t ( l : 5 0 ) . 5.3.  Dmgramação  .2. retorna os coeficientes do polinómio cujas raízes são os elementos de R. Polinómios S  poly  Dado um vetor R. o retorno é o polinómio característico da matriz.1.2  1 .1  2  Observação: se a função poly recebe uma matriz. conforme apresentado no item anterior.2*x~2 .2 .x + 2. tem raizes -1. Sintaxe típica: »  P = poly(R)  Parâmetros: Entrada R: vetor  Saída P: coeficientes do polinómio cujas raízes estão em R  Exemplo: » p l = p o l y ( [-1 1 2]) pl = % x~3 .  Sintaxe típica: »  P = polyfit(X.Y. Sintaxe típica: »  PI = polyder(P)  Parâmetros: Entrada P: coeficientes do polinómio  Saída P1: coeficientes da derivada  Exemplo: » »  P=[l -2 -1 2] .5 3.5 3 3 2.0291 -0.  .5 2.Y).3) p3 = 0.Y) x = l :10. y= [2 3 3. % Polinomio de grau 3 p3=polyfit(x.2780  I  0.x + 2 = 3*x~2 . e um escalar g. Dados dois vetores X e Y.g)  Parâmetros: Entrada X: vetor de coordenadas X dos pontos X: vetor de coordenadas Y dos pontos g: grau do polinómio  Saída P: coeficientes do polinómio de aproximação  ?!  Exemplo (arquivo cap3_polyfit_exemplo.m) % Pontos (X.4808 2. Pl=polyder(P) % derivada de x~3 .2*x"2 .5 3 4 ] . retorna os coeficientes da derivada do polinómio.1667  MATLAEP 7 . retorna o polinómio de grau g que melhor aproxima os pontos dados por (X.y.Fundamentos .4*x -1 PI = 3 -4 -1  ■/ polyfit Aproximação por polinómio.s  polyder  Dado um vetor P com coeficientes de um polinómio. y.x n . 1Polinomio *)  |Programação  (157  .2 . Sintaxe típica: »  Y = polyval(P.m) % Pontos  (X. % Polinomio de grau 3 p3=polyfit(x.Y)  X = 1 :10. % Valores p ara avaliacao do polinomio x n = l i n s p a c e (1. Pl=polint(P) % x^3 .x  1 S  .1  0  polyval  Avalia polinómio. % Visualizacao dos resultados p l o t ( x . Dado um vetor P.10. 1 : 1. Sintaxe típica: »  PI = polyint(P)  Parâmetros: Entrada P: coeficientes do polinómio  Saída P1: coeficientes da integral  Exemplo: » »  P = [3 -4 -1].5 3.  y = [2 3 3.X)  Parâmetros: Entrada P: coeficientes do polinómio X: vetor de coordenadas X  Saída Y: valores do polinómio calculados em cada valor em X  Exemplo (arquivo cap3_polyval_exemplo. 1r 1) l e g e n d (1Pontos 1. que contém coeficientes de um polinómio.3).20). y n . avalia polinómio para cada valor fornecido.2*x/'2 .5 3 4 ] .s  polyint  Dado um vetor P contendo coeficientes de um poiinômio. e um vetor X de valores. % Avaliacao do polinomio y n = p o l y v a l ( p 3 .5 2. y .x n ) .5 3 3 2. retorna os coeficientes da integrai do polinómio.  Zl)  .. retorna uma matriz Z1 com valores que formam a superfície (XI.. retorna as raízes.2.0000  3.  MATLAEP 7 . Y..0000  1. Z) de pontos no espaço e (XI. Interpolação S  griddata  Interpolação de superfície por 'gradeamento' (ajuste de pontos no espaço).0000 2.. Dadas as matrizes (X.. Sintaxe típica: »  1  R = r o o t s (P)  Parâmetros: Entrada P: vetor de coeficientes do polinómio  Saída R: raízes do polinómio  1  Exemplo: »  roots([l -2 -1 2])  -1.Fundamentos  ...6..... Yl.. e um método de interpolação. Yl) pontos de interpolação..Dado um vetor P com coeficientes de um polinómio. Y. YI: matrizes tipo meshgrid metodo: 'linear'.Y.2) s u r f (XI.Y]=meshgrid([1:5]. YI) que melhor aproxima os pontos no plano dados por (X.Y.que melhor aproxima os pontos no espaço dados por (X.Z.YI]=meshgrid([1:0. % Pontos de interpolacao [XI. Dados os vetores (X. % Superficie de interpolacao Z I = g r iddata(X. Y) de pontos no espaço e XI valores de interpolação. Y.YI .m) % Pontos no espaco [X.'cubic'). % Visualizacao dos resultados s u b p l o t (1.Z) t i t l e (1Pontos do espaco') s u b p l o t (1. e um método de interpolação. retorna um vetor Y1 com valores que formam a curva (XI.YI. Y.2.YI. Y). 'v4'  Saída ZI: coordenada Z para todos os pontos definidos por (XI. 'nearest'. de acordo com o método solicitado.[1:5]) .[1:0.X I .  Parâmetros: Entrada X.2.XI.  Programação  . 'cubic'. Z = r a n d n (5). Z: matrizes tipo meshgrid XI. de acordo com o método solicitado.Z.YI)  Exemplo (arquivo cap3_griddata_exemplo. m e t o d o ) . Z).2:5]).1) s u r f (X. Sintaxe típica: »  ZI = g r i d d a t a (X.2:5].ZI) t i t l e ('Superfice i n t erpoladora')  Pont os do sspaco  S  Superlice interpoladora  interpl  Interpolação de pontos (ajuste de pontos no plano). 10.0)  S  interp2  Interpolação de superfície (ajuste de pontos no espaço). y = r a n d ( l . retorna uma matriz Z1 com valores que formam a superfície (XI. 1:'. YI) pontos de interpolação. Y.50). x i . 'cubic'.'r ') l e g e n d ( 1Pontos 1. 'spline'.XI.Y. de acordo com o método solicitado.m) % % Pontos no plano x = l :10.10).y i . Z) de pontos no espaço e (XI. % Visualizacao dos resultados p l o t ( x . Y. 'pchip'.  MATLAB ®7-Fundamentos  .Sintaxe típica: »  Y = interpl(X. y . Dadas as matrizes (X. % Pontos de interpolacao x i = l i n s p a c e (1. 'võcubic'  Saída YI: valores interpolados para todos os elementos de XI  Exemplo (arquivo cap3Jnterp1_exemplo. Y: vetores de coordenadas XI: vetor com valores de interpolação metodo: ‘linear1. 'nearest1.'c u b i c '). y .metodo) . % Curva de interpolacao yi = i n t e r p l ( x . ’Interpolacao C u b i c a ’. e um método de interpolação. Z).x i .  Parâmetros: Entrada X. YI. Zl) que melhor aproxima os pontos no espaço dados por (X. Y I .Y. Z: matrizes tipo meshgrid XI.Y I ] = m e s h g r i d ( [1: 0. 'cubic1. 'nearest'.Z I 2 ) t i t l e ('Superfice I N T E R P 2 ')  Observação: na figura obtida no exemplo é possível observar que as funções griddata e interp2 trabalham com os mesmos parâmetros de entrada mas processam interpolações diferentes. 'cubic').Y] = m e s h g r i d ( [1:5].Y. Z=cos(pi+randn (5)).  Parâmetros: Entrada X. 'o') hold Current plot held s u r f ( X I .2) plot3(X.XI.Y I . Y .XI.1) p l o t 3 ( X . Z . % Visualizacao dos resultados s u b p l o t (1.Z.Y .Y. 'o') hold Current plot held su r f ( X I .2. 'cubic').Z I 1 ) t i t l e (1Superfice G RID D A T A ' ) s u b p l o t (1.metodo) . Y. 'v4'  Saída ZI: coordenada Z calculada para todos os pontos definidos por (XI. [1:0 .  Programação  .2 :5].Sintaxe típica: »  ZI = interp2(X. Y I .YI. ZI2=interp2(X. % Pontos de interpolacao [XI.Y X .XI.Yl)  Exemplo (arquivo cap3Jnterp2_exemplo.2 :5]).m) % Pontos no espaco [X. Yl: matrizes tipo meshgrid metodo: linear'. % Superficie de interpolacao Z I l =griddata(X.Z. [1:5]).2.Z. Z . 100).m) % Pontos no plano x = r a n d (1.20).100.y) l e g e n d (1P o n t o s '.11 n t e r p f t '. x. Dado um struct com informações da spiine (retorna da função spline) e um vetor X.20). % Visualizacao dos resultados p l o t (linspace(1. Sintaxe típica: »  Y = in t e r p ft(X.Fundamentos  .  Parâmetros: Entrada X: vetor de valores n: número de valores a serem calculados  Saída Y: valores interpolados por FFT  Exemplo (arquivo cap3_interpft_exemplo. l i n s p a c e (1. retorna um vetor Y que contém os valores da spline calculada para todos os valores em X.^  interpft  Interpolação de pontos no plano com método FFT (Transformada Rápida de Fourier).n). % 100 pontos de interpolacao y = interpft(x.100. retorna vetor Y com n valores que interpolam os valores dados em X.100).0)  Fie  íd t  View laser:  !co!s üeíktoc Vender«  heb  Q « a s .  MATLAEP 7. Dado vetor X de valores no plano e escalar n.> ' « rç n ® '« QPi  ■s  o  ppvaf  Avalia spline.  Dados os vetores (X. % Calculo dos valores da spline ys=ppval(S.0)  I  ■  /  sp lin e  Interpolação de pontos no plano com método de spline.  Parâmetros: Entrada S: struct da spline X: vetor de valores  Saída Y: valores da spline  Exemplo (arquivo cap3_spline_exemplo.10. 'Spline 1.y).xs).Y) de valores no plano e escalar n.10). % Calculo dos coeficientes da spline S=spline(x.x s .y.  Programação  .y s .Y). % Visualizacao dos resultados p l o t (x. y = r a n d ( l .':'. Sintaxe típica: »  S = s p l i n e (X.X).Sintaxe típica: »  Y = ppval(S. retorna um struct contendo os polinómios de grau 3 que compõem a curva spline de aproximação.100) . 'r 1) l e g e n d (1P o n t o s '. % Pontos de interpolacao x s = l i n s p a c e (1.m) % Pontos no plano x = l :10. 0353  3.0278 0.0668 -0.10) .r) % t : angulo e m X Y % p: angulo de XY % r: distancia  Exemplo » [t.6847 -0.0523 -0.1.2365 0.0625 0.0272 -0.3524 0.r]=cart2pol(1.4142 » [x. Conversão de Sistemas de Coordenadas Função  Conversão de coordenada  cart2sph(x.6155 r = % distancia 1.7895 -0.p.0928 0.z)  cartesiana para esférica  cart2pol(x.2644 0.r) % p: angulo % r: distancia  poiar para cartesiana  sph2cart(t.4610 -0.1954 -0.0000 y = i » [x. s=spline(x.r) x =  1.Parâmetros: Entrada X.0523 0.1) p = % angulo 0.y)  form: breaks : coefs : pieces : order: dim: » s.0668  'pp' [1 2 3 4 5 6 7 8 9 10] [9x4 double] 9 4 1 % Coeficientes dos nove polinomios de grau 3 que % compoem a curva spline 0.3840 -0.5176 -0.2.3502 0.2539 0.4514 0.4357 -0.0384 -0.2375 -0.7854 r = % distancia 1.0439 0.y)  cartesiana para polar  pol2cart(p.y.3127 0.0000  z =  1.r) x = 1  esférica para cartesiana  Y  =  1.p.0129 -0.Y : vetores com dois pontos  Saída S: struct com as informações da spline  Exemplo: » » »  x=l:10.3173 0.coefs ans = 0.r]=cart2sph(1.0761 0.6983 -0.0000  .2833 0.5084 0.6831 0.p.y.4983 0.5808 0.7321 » [p.z]=sph2cart(t.3266 0.7854 p = % angulo com plano XY 0. y=rand(l .8.y]=pol2cart(p.1) t = % angulo no plano XY 0. 2.1:p i . Métodos Numéricos Não-lineares Equações Diferenciais Ordinárias Solvers de equações diferenciais do tipo y' = f(t.s in(x)).1) plot (cos (x) .r) s u b p l o t (1.  ♦  ode23: solver de equações diferenciais non-stiff de ordem baixa.p i :0.  ♦  ode15s: solver de equações diferenciais stiff de ordem variável.m): % Converte coordenada cartesiana p ara polar x = .8. [p.2.  ♦ ode23s: solver de equações diferenciais stiff de ordem baixa.c a r t e s i a n a ') s u b p l o t (1.sin(x) ) t i t l e ('Coord.r]=cart2pol( cos(x).Exemplo (arquivo cap3_cart2pol_exemplo. Programação ♦  ode23t: solver de equações diferenciais de ordem baixa (regra trapezoidal).y) disponíveis no MATLAB®:  I  ♦  odel 13: solver de equações diferenciais non-stiff de ordem variável.2) polar(p.r) t i t l e ('Coord.  . polar(p.p o l a r ')  3.2. 1 1.  ♦  m: massa do corpo.  Inicialmente.  ♦  k: constante de elasticidade da corda.8 60 0. considerando apenas as forças indicadas no esquema:  Elasticidade k*y  Tração b*y’ +  f m ^  Peso m ‘ g  y” =g .Fundamentos j  .  ♦  b: constante de tração.b/m * y'  em que: ♦  y: deslocamento em relação ao ponto de fixação da corda.  ♦  g: aceleração da gravidade.0 0 1000 [0 0]  MATLAB®7. consideramos: Variável g (aceleração da gravidade) m (massa do corpo) k (constante de elasticidade da corda) b (constante de tração) Tinicial (tempo inicial) Tfinal (tempo final) Condlnic (y e y' iniciais)  166 )  Valor 9.Parâmetros: Entrada  Saída  ■funcao': m-file que implementa a equação  t: vetor de tempo y: resultados da equação a cada instante  [Tinicial Tfinal]: tempos inicial e final Condlnic: vetor de condições iniciais  Exemplo (no arquivo cap3_ode45_exemp!o.k/m y . dependente do deslocamento (y).m): modelar um 'bungie jum p' de forma bem simplificada. dependente da velocidade (y1). 0.[Tinicial Tfinal].  A função cap3_ode45_exemplo1 chama o solver ode45 para função cap3_fbungie1.K * y(l) . subplot(2.1.2): 2. % aceleracao da gravidade k= 0.m function yp = cap3_fbungiel (t.1): 1ã coluna armazena o deslocamento do corpo. »  cap3_ode45_exemplol  Programação  167  .m_________________________ % cap3_ode45_exemplol () function cap3_ode45_exemplol ( ) Tinicial=0. Tfinal=1000. B = b/m.A função cap3_fbungie1 codifica a equação diferencial: edit: cap3 _ f b u ngiel.8.B*y(2) ] . a função ode45 retorna em y uma matriz com duas colunas:  ♦ y(:.2)).y) % y (1) 1 = y (2) % y(2) ' = g .coluna armazena a sua velocidade.-y(:. yp= [y (2) g .(b/m) * y(2) g = 9.2) p l o t (t.(k/m) * y (1) .Condlnic).  title('Velocidade')  De acordo com os retornos armazenados da função cap3_fbungie1.1. % fator de tracao m= 6 0.  Condlnic=[0 0] .1) plot(t. edit: cap3_ode45_exemplol. % fator de elasticidade b = 1.y(:.1.y]=ode45('cap3_fbungiel1.1)). [t. title(1Deslocamento 1) subplot(2. % massa K = k/m. ♦  y(:.  yp=[y(2) g . dependente do deslocamento (y).1) p l o t (t .B * y (2)]..2)).y ] = o d e 4 5 ('c a p 3 _ f b u n g i e 2 1. Nesta segunda versão.2) p l o t ( t . a função cap3_ode45_exemplo2 recebe três parâmetros de entrada. que são repassados para o solver ode45 com para função cap3_fbungie2: ♦  m: massa do corpo.8.b).0. % aceleracao da gravidade % k = fator de elasticidade % b = fator de tracao % m = massa K = k/m.0. flag.m. Condlnic=[0 0]. com os parâmetros m. [Tinicial T f i n a l ].k. B = b/m.y ( :.b) Tinicial=0.5  .k.__________________ A função cap3_ode45_exemplo2 chama o solver ode45 para função cap3_fbungie2.b) % y (1)' = y(2) % y (2) ' = g .m________________________ function yp = cap3_fbungie2(t.Os solvers também aceitam rotinas com passagem de parâmetros.C o n d l n i c . k e b.  Observação: o parâmetro flag é necessário para manter a compatibilidade de chamada de função.  ♦  b: constante de tração.y . t i t l e ('Velocidade')  Chamamos cap3_ode45_exemplo2 com: Variável m (massa do corpo) k (constante de elasticidade da corda) b (constante de tração) »  cap3_ode45_exemplo2  (80.  Valor 80 0. dependente da velocidade (y1).  ♦  k: constante de elasticidade da corda.1.1)).K * y(l) .5).2 0.. edit: cap3_ode45_exemplo2.k.  A função cap3_fbungie2 codifica a equação diferencial com parâmetros: e d i t : cap3_fbungie2.m function cap3_ode45_exemplo2(m. tt. y (:. [ .1.(b/m) * y (2) g = 9. m. Tfinal=1000. t i t l e ('D e s l o c a m e n t o 1) s u b p l o t (2.(k/m) * y(l) .2. s u b p l o t (2. Este é o resultado para os novos parâmetros:  Otimização  s  fminbnd  Dada uma função f(x) e um intervalo. Sintaxe típica: »  [xmin.  Chamamos a função fminbnd para obter o valor mínimo da função cap3_funcao1 nos intervalos de [0.m):  Programação  ( 169  .m________ % funcao cap3_funcaol function Y = cap3_funcaol(x) y = x+sin(2*x) + c o s (4*x).x1: intervalo  fxmin: valor mínimo def(x)  Exemplo.x l )  Parâmetros: Entrada  Saída  'funcao': implementa f(x)  xmin: valor para o qual f(x) é mínimo  x0.5] e [1.5. função f(x) = x+sin(2*x)+cos(4*x) (arquivo cap3_funcao1 . retorna x tal que f(x) é mínimo no intervalo.1.m): edit: cap3_funcaol. 3] (arquivo cap3_fminbnd_exemplo.fxmin]  = f m i n b n d (1f u n c a o x O . 5. função f(x) = x-4*sin(x)+cos(x) (arquivo cap3_funcao2. f x l : minimo no intervalo [0..cap3 _ f u n c a o l ( x )..1 . .f x 2 ] = f minbnd(1c a p 3 _ f u n c a o l 1.3] l e g e n d ('F u n c a o '.0)  s  fzero  Dada uma função f(x) e um xO inicial. % x2.5.f x 2 .5] x 2 .3]•.edit: cap3_fminbnd_exemplo.5). 5 ] 'Minimo entre [1.m % cap3_fminbnd_exemplo () function ca p 3 _ f m i n b n d_exemplo( ) % x l . % Visualizacao do resultado x = 0 :0.m % funcao cap3_funcao2 function y = cap3_funcao2(x) y = x-4*si n ( x ) + c o s ( x ).3).. .0.fxl.5 .3] [x2.fxl]=fminbnd('c a p 3 _ f u n c a o l ’. plot(x.1:pi... 1 . retorna x tal que f(x) = 0.  MATLAEP 7-Fundamentos  .5] [xl.'r*'.m): edit: cap3_funcao2..'r o ') % minimo entre [1.1.1. % minimo entre [0.. % Funcao xl.xinic)  Parâmetros: Entrada  Saída  'funcao1: implementa f(x)  xO: valor tal que f(xO) = 0  xinic: valor inicial de x  Exemplo. f x 2 : minimo no intervalo [1.5.1. 'Minimo entre [ 0 . Sintaxe típica: >> xO = f z e r o (1funcao'. . . iniciando a busca a partir de 0 e a partir de 2 (arquivo cap3_fzero_exemplo. 0 .. % busca a partir de 0 x 2 .Chamamos a função fzero para obter o x tal que cap3_funcao2 = 0..2). % Funcao x l . % x 2 : busca a partir de 2 x l = f z e r o ('c a p 3 _ f u n c a o 2 1.1:2 * p i . .'r * '.. Sintaxe típica: »  optim = optimset  ( 'Param'..0.0) .m): edit:  cap3_fzero_exemplo.cap3_funcao2(x). p l o t (x. 'Busca a partir de 2'. % Visualizacao do resultado x = 0 :0..m  % cap3_fzero_exemplo () function cap3 _ f z e ro_exemplo( % x l : busca a partir de 0 xl = f z e r o ('c a p 3 _ f u n c a o 2 '. Valor)  Parâmetros: Entrada  Saída  'Param': parâmetro  optim: estrutura de dados que contém os parâmetros de otimização  Valor: valor a ser configurado  Programação  .0)  S  optimset  Configura parâmetro de funções de otimização. 1r o ') % busca a partir de 2 l e g e n d (1F u n c a o '.. 'Busca a partir de 0 ' . 2.0.xinic..2. ’r o ’. y=cap3_funcao3(x.01:2.Exemplo: » o p t i o n = o p t i m s e t (1M a x l t e r 1.. p 2 .m % funcao cap3_funcao3 function y = cap3_funcao3(x. x z e r o l = f z e r o (1c a p 3 _ f u n c a o 3 1.p2.y. Esta forma é muito utilizada com as funções fzero e fminbnd..optimset.10) option = Display [] MaxFunEvals [] Maxlter 10 TolXInteger TypicalX  []  []  A função optimset sem parâmetros retorna a estrutura de dados. 0 .optimset. 1b * 1)  .xl. % Buscar zero a partir 0 xzero2 = f z e r o (1c a p 3 _ f u n c a o 3 1...p l ... função f(x) = x-a*sin(x)+cos(b*x) (arquivo cap3_funcao3.optimset.a.xO.1.b) Y = x-a*sin(x) + c o s ( b * x).4).4) ...xzerol.optimset. 0 . são parâmetros de entrada da função a ser otimizada. fminbnd e fzero também aceitam funções com passagem de parâmetros.m): edit: cap3_funcao3. Exemplo..4).2. Sintaxe: » [xmin.xzero2.p2.) >> xO = f z e r o ('funcao'.  Execução: usar os parâmetros a=2 e » » » de » de »  b-4  x = 0 :0.pl. fxmin] = f m i n b n d ('funcao'.)  Onde p1 . % Buscar zero a partir 1 p l o t (x. xl  )  Parâmetros: Entrada 'funcao': implementa f(x) x0.m): x = 0 :0.0.'Maxiter1) ans = 10  Integração Num érica •/  quad/q uadl  Dada uma função f(x) e um intervalo.05:3.x 0 . x q = 0 :0.l : 0.x0. p l o t (x.0742  Para visualizar a área calculada (arquivo cap3_quad_exemplo.1:2. yq=cap3_funcaol (xq) .m). Sintaxe típica: »  valor = optimget  ( option.x l )  /  quadl  1f u n c a o 1.x1: intervalo  Saída q: integral numérica  Exemplo. função f(x) = x+sin(2*x)+cos(4*x) (arquivo cap3_funcao1 .y) a r e a (xq. retorna a integral numérica f(x) no intervalo.s  optimget  Obtém os valores configurados nos parâmetros de funções de otimização. Sintaxe típica: »  q  =  q u a d ( 1f u n c a o ' . y=cap3 _ f u n c a o l ( x ) . x = . »  g = q u a d (’c a p 3 _ f u n c a o l 1.yq)  Programação  .  'Param')  Parâmetros: Entrada option: estrutura que contém os parâmetros 'Param': parâmetro  Saída Valor: valor do parâmetro  Exemplo: » o p t i m g e t (option.05 :2 .2)  % integral de f(x) entre 0 e 2  q = 3.  retorna a integral numérica dupla de f(x.y) z = cos (x) H-cos (y) .y) entre [-1.y) no intervalo./fig u r e 1 File  E d* .ymax: intervalo  Saída d: integral numérica dupla  Exemplo. y m i n . função f(x.y) xmin.1. de ordem alta.y) = cos(x)+cos(y) (arquivo cap3_funcao3. Sintaxe típica: »  d = d b l q u a d ('f u n c a o x m i n .7318  MATLAB® 7-Fundamentos  .1) d = 6.y) e um intervalo.xmax..m): edit: cap3_funcao3. y m a x )  ________________________  Parâmetros: Entrada 'funcao1: implementa f(x.m % funcao cap3_funcao3 function z = cap3_funcao2(x.-1.-1. View  Insert Tools Oeskiop Window  D^HiU  Help  O®:'* O S Io O  Observação: a função quad utiliza um método de ordem baixa. x m a x .1]  ______  _____  — ____  —  » d = d b l q u a d (1c a p 3 _ f u n c a o 3 1.-1] e [1.  Integral de f(x. e a quadl.ymin.  S  dblquad  Dada uma função f(x. 1:1.-1.2.2 :0. [X.2 :0 . Matrizes Esparsas Matrizes Esparsas Elementares  s  spdiags  Cria matriz esparsa de banda a partir de todas as diagonais não-nulas da matriz dada. s u r f (X.9.7318 é o volume objeto no interior da superfície exibida na figura.1) x= .7 8 9] a = 1 2 3 4 5 6 7 8 9 % cada coluna de S e ' uma diagonal de a » S=spdiags(a) S = 7 4 1 0 0 0 8 2 5 0 0 0 9 6 3  Programação  .-1.YD.1: 2 . x d = .ZD)  3. echo on % cap3_dblquad_exemplo. y = .4) hold w a t e r f a l l (XD. y d = -1:0.Y.1:1. Z D = C O S ( X D ) + C O S (YD). [XD.Y]=meshgrid(x. Z = c o s(X)+cos(Y).1:2.y).yd).1.Y D ] =meshgrid ( xd.Z) a l p h a (0.d=6. Sintaxe típica: »  S = spdiags(a)  Parâmetros: Entrada a: matriz  Saída S: matriz esparsa diagonal  Exemplo: » a = [1 2 3.4 5 6.l :0.m d = d b l q u a d ( 'c a p 3 _ f uncao3'.  a=eye(100).m.m. Sintaxe típica: »  S = speye(n)  /  speye(n.  MATLAB® 7 .m)  Parâmetros: Entrada n. aproximadamente.D)  / sprandn(n.  ■S full Converte matriz esparsa em matriz comum.0.m: dimensões  Saída S: matriz esparsa de identidade  Exemplo: » » »  S = s p e y e (100).2832 0.v'  speye  Cria matriz esparsa de identidade.Fundamentos  .m: dimensões D: densidade entre 0 e 1  Saida S: matriz esparsa de números aleatórios  Exemplo: »  S = s p r a n d ( 1 0 0 .59)  0.D)  ::: Parâmetros: Entrada n. Sintaxe típica: »  S = sprand(n. whos Name Size S 100x100 a 100x100  S  sprand/sprandn  % Observe a diferenca de tamanho Bytes Class 1604 double array (sparse) 80000 double array  Cria matriz esparsa com números aleatórios (distribuição uniforme/distribuição normal).45) (27.200. a proporção entre números aleatórios gerados e o total de elementos da matriz esparsa.0001)  s = (85.2259  % matriz 100x200 com apenas 2 elementos  Observação: a densidade D indica. 2259 >> a=full S ) .Sintaxe típica: »  a = f u l l (S)  Parâmetros: Entrada S: matriz esparsa  Saída a: matriz comum  Exemplo: » S=sprand(100. Sintaxe típica: »  S = s p a r s e (a)  Parâmetros: Entrada a: matriz comum  Saída S: matriz esparsa  Exemplo: » » »  a=eye(500).59) 0. whos Name Size S 500x500 a 500x500  Bytes 8004 2000000  Class double array (sparse) double array>>  Manipulação de Matrizes Esparsas  s  issparse  Verifica se a matriz é esparsa.200.  Programação  et  .2832 % matriz 100x200 com apenas 2 elementos (85.0.45) (27.OOOl) OJ _ i — 0. % Converte S para matriz comum » whos % Observe a diferença de tamanho Name Size Bytes Class S 100x200 828 double array (sparse) a 100x200 160000 double array  S  sparse  Converte matriz comum em matriz esparsa. S = s p arse(a).  Sintaxe típica: »  n = nnz(S)  Parâmetros: Entrada  Saída  S: matriz esparsa  n: número de elementos diferentes de zero  Exemplo: » S = s p r a n d (100.Sintaxe típica: »  issparse(a)  Parâmetros: Entrada  Saída  a: matriz  true se matriz for esparsa  Exemplo:  S  nnz  Retorna quantos elementos diferentes de zero a matriz esparsa contém.0.Fundamentos  . » nnz(S) ans = 945  s  nonzeros  Retorna um vetor comum com todos os elementos diferentes de zero da matriz esparsa.1). Sintaxe típica: »  v n = nonzeros(S)  178 )  MATLAEP 7 .100. 2000.0001).6519 0.0. Sintaxe típica: »  s p f u n (funcao.200.Parâmetros: Entrada  Saída  S: matriz esparsa  vn: vetor de elementos diferentes de zero  Exemplo: » S = s p r a n d (100.f=spfun(@exp.toc % Executa em menos tempo Elapsed time is 0.7082  spfun  S  Executa a função para os elementos diferentes de zero da matriz esparsa.001).S)  Parâmetros: Entrada  Saída  funcao: função a ser executada  matriz resultado  S: matriz esparsa  Exemplo: » S = s p r a n d (1000. » nnz(S) ans =  2000 >> tic. Sintaxe típica:  .320000 seconds.0.050000 seconds  S  spones  Substitui os elementos não-nulos por 1's. » nnz(S) ans =  2 » V=nonzeros(S) V = 0.S).f= e x p ( S ) . » t ic.toc Elapsed time is 0. 100.2.6656 » spones(S) ans = (28.001')  Saída  .2) 1 (91.4326 (91.0001) S = (28.200.0.108) -1.01') s u b p l o t (1.Parâmetros: Entrada  Saída  S: matriz esparsa  S1: matriz com as substituições  Exemplo: » S = s p r a n d n (100.01)) t i t l e ('Densidade 0.2) s p y ( s p r a n d (100.108) 1  ✓  spy  Gera visualização gráfica dos elementos não-nulos da matriz esparsa. Sintaxe típica: »  spy(S)  Parâmetros: Entrada S: matriz esparsa  Exemplo: » » >> » »  s p y (sprand(100.001)' t i t l e (1Densidade 0.100.0.2) -0.0.  int8.3. etc. single.1. Programação Neste tópico. Sintaxe típica: c = c l a s s (m)  Parâmetros: Entrada m: variável  Saída c: classe  Exemplo: » n=pi.  3. char.3. listamos os principais elementos e recursos referentes à linguagem de programação do MATLAB® 7. » c l a s s (n) ans = double  Classe logical char double single int8 uint8 int16 uint16 int32 uint32 int64 uint64 cell struct Drogramação  Tipo de Dado lógico (0 ou 1) / (verdadeiro ou falso) alfanumérico precisão dupia precisão simples inteiro 8 c/ sinal inteiro 8 s/ sinal inteiro 16 c/sinal inteiro 16 s/ sinal inteiro 32 c/ sinal inteiro 32 s/ sinal inteiro 64 c/ sinal inteiro 64 s/ sinal cellarray struct  Bytes 1 1 8 4 1 1 2 2 4 4 8 8 -  -  .3. int32. Estrutura e Tratamento de Dados Classes  s  class  Retorna a classe do dado: logical. double. int16. eye(2)) ans = 1 » s = s t r u c t ('I d '. » isstruct(s) ans = 1 » i s v a r n a m e ('c a p 3 1) ans = 1 » i s v a r n a m e ('1231) ans = 0 » isve c t o r ( e y e (2)) ans = 0  .Testes lógicos com classes: Função  Testa se  isa  é da classe dada  iscell  é cell array  isequal  é igual  isfield  é campo de struct  isfloat  é número com ponto flutuante  isinteger  é número inteiro  iskeyword  é palavra reservada da linguagem MATLAB®  islogical  é variável lógica  isnumeric  é numérico  isreal  é número real  isscalar  é escalar  istruct  é struct  isvarname  pode ser nome de variável  isvector  é vetor  Exemplo » i s a ( p i .0 l].{1D ' 1Z ’}). » isfield(s. 'd o u b l e ') ans = 1 » i s c e l l ({1 2 3}) ans = • 1 » i s e q u a l ([1 0.{'D ' 'Z '}). 1I d 1) ans = 1 » isfloat(pi) ans = 1 » isinteger(int8(pi)) ans = 1 » i s k e y w o r d ('function') ans = 1 » i s l o g i c a l (pi > 0) ans = 1 » isnumeric(3+i) ans = 1 » isreal(3+i) ans = 0 » isscalar(pi) ans = 1 » s = s t r u c t ('I d '. s 2 ) ans = 0 » s l = 'C a r a c t e r e '.s2 ) ans = 1  blanks  Cria cadeia de espaços em branco.  . Sintaxe típica: str = blanks(n)  Parâmetros: Entrada  Saída  n: números de espaços  str: cadeia de espaços em branco  Exemplo: » str=['123' str = 123 45  •/  b l a n k s (2)  '45']  char  Converte variável numérica em cadeia de caracteres (código ASCII).Char)  Testes lógicos com cadeia de caracteres:  y  Exemplo  Função  Testa se  iscellstr  é cellarray de strings  ischar  é cadeia de caracteres  isletter  é letra  isspace  é espaço em branco  strcmp strncmp  uma cadeia é igual a outra  strcmpi strncmpi  uma cadeia é igual a outra (sem diferenciar letras minúsculas de maiúsculas)  >> i s c e l l s t r ('a b c ') ans = 0 » i s c h a r ('abc 1) ans = 1 » i s l e t t e r ('a b c l 2 1) ans = 1 1 1 0 0 >> i s s p a c e (112 34') ans = 0 0 1 0 0 >> s l = 'C a d e i a l 1. » s trcmp(sl. >> s t r c m p i (s l . » s 2 = 'c a r a c t e r e '.Cadeia de Caracteres  (String. >> s 2 = 'C a d e i a 2 1.  Sintaxe típica: cel = cellstr(str)  Parâmetros: Saída cel: cell array  Entrada str: matriz tipo char Exemplo: » s t r = [ '12345'. Sintaxe típica: str = datestr(data)  . » cel=cellstr(str) cel = ■ '12345' 'A B C D E ' 1X X X y y ' » whos Name Size cel 3x1 str 3x5  s  'XXXyy']. 1A B C D E '.Sintaxe típica: str = char(m)  Parâmetros: Saída str: cadeia de caracteres  Entrada m: variável numérica Exemplo: » c h a r ([65 66 67]) ans = ABC  ■/ cellstr Cria um cellarray a partir de uma matriz de cadeia de caracteres.  Bytes 210 30  Class cell array char array  datestr  Converte data em número real para cadeia de caracteres. Parâmetros: Entrada data: número real  Saída str: data em cadeia de caracteres  Exemplo: » data=now data = 7.3211e+005 » datestr(data) ans = 12-Jun-2004 03:16:17_________________________________  s  deblank  Elimina espaço em branco de final de cadeia de caracteres. Sintaxe típica: eval(str)  Parâmetros: Entrada str: cadeia de caracteres  Saída resultado da execução  . Sintaxe típica: str = deblank(m)  Parâmetros: Entrada m: string ou cell array  Saída str: m sem brancos no final  Exemplo: ' '2 brancos no final » cel = { '3 brancos no final cel = [1x21 char] [1x20 char] » deblank(cel) ans = '2 brancos no f i n a l 1 '3 brancos no f i n a l '  S  eval  Executa as instruções contidas em uma cadeia de caracteres. )  Parâmetros: Entrada formato: %f.04.560 e Desvio Padrao: 0.Fundamentos  . Sintaxe típica: str = lower(m)  / upper(m)  Parâmetros: Entrada m: string ou cell array  Saída str: m convertida  Exemplo: » str='Cadeia de Caracteres'.Exemplo: » e v a l ('s i n ( p i / 2 ) ') ans =  1 •/  low er/upp er  Converte cadeia de caracteres para letras minúsculas / maiúsculas...040  MATLAEP 7 . %i a v a riá v e is  Saída str: cadeia de caracteres  Exemplo: » media=0.a.dp) str = Media: 0.3f e Desvio P a d r a o : % 2 . » s t r = s p r i n t f ('Media: %2. » l o w e r (str) ans = cadeia de caracteres » u p p e r (str) ans = CADEIA DE CARACTERES  S  sprintf  Gera cadeia de'caracteres a partir de dado numérico formatado.56.media. » dp=0. Sintaxe típica: str = s p r i n t f (fo r m a t o ..3 f '. .04 ' . Sintaxe típica:  .S  sscanf  Lê dado numérico formatado em uma cadeia de caracteres.  • * ** i j  strjust  Alinha texto na cadeia de caracteres.  1234A B C D E F *  * *  S  ' A B C D E F'.  . 5 6 0.0400  s  strcat  Concatena cadeias de caracteres. Sintaxe típica: str = strcat(strl.  str2.5600 0.. '%f % f ') v =  0..: cadeias de caracteres  Saída str: cadeia concatenada  Exemplo: » st rc at(' ans =  1234' .formato)  Parâmetros: Entrada str: cadeia de caracteres formato: %f.. » v = s s c a n f ( s t r .. str2. Sintaxe típica: m = sscanf(str. %i  Saída m: valores lidos  Exemplo: » str=' 0 .)  Parâmetros: Entrada strl. formato)  Parâmetros: Entrada str: cadeia de caracteres formato: % f.1%s % f .Parâmetros: Entrada str: cadeia de caracteres tipo: 'right'.. Num]  = strread(str. 'center'  Saída str1: cadeia com texto alinhado  Exemplo: » str=' Texto » strjust(str. 'r i g h t ') ans = Texto » strjust(str. %s  Saída Txt: dados alfanuméricos Num: dados numéricos  Exemplo: » str='Media 0. 1) Txt = 'Media' 'Variancia' Num = 0.9. Variancia 0.9000 0.2'. » [Txt.  strread  Lê dados numéricos e alfanuméricos formatados em uma cadeia de caracteres. 1c e n t e r ') ans = Texto  S  '.2000  s  strrep  Executa substituição de subcadeia de caracteres. ■left') ans = Texto » strjust(str. Sintaxe típica:  . Sintaxe típica: I [Txt.Num]=strread(str. 'left'.. . Sintaxe típica: strl = s t r v c a t ( s l. s2: substituir s1 pors2  Saída s trl: cadeia com substituição realizada  Exemplo: » s t r = 'ABC 123 ABC 453 1. ABC 1.s2.s2. Sintaxe típica: strl = strtrim(str)  Parâmetros: Entrada str: cadeias de caracteres  Saída s trl: cadeia sem brancos nos extremos  Exemplo: » str=’ Texto » strtrim str) ans = Texto  y  '....)  Parâmetros: Entrada s1 . 'X Y Z ') strl = XYZ 123 XYZ 453  s  strtrim  Elimina espaços em branco do início e do fim da cadeia.: cadeias de caracteres  Programação  Saída s trl: cadeia concatenada na vertical  . » s t r l = s t r r e p (s t r . completando as dimensões com branco.Parâmetros: Entrada str: cadeia de caracteres s1.  strvcat  Concatena cadeia de caracteres de comprimentos diferentes na vertical.. padrao)  Parâmetros: Saída k: índices das ocorrências  Entrada m: cell array ou string Exemplo: » s t r = 1aquilo.  strtok  Localiza delimitador.Fundamentos  .  MATLAB® 7.d)  Parâmetros: Entrada str: cadeia d: caractere delimitador  Saída s1.s2]=strtok(str.Exemplo: » s t r = s t r v c a t (1abc 1 '123456 ’. ' : 1) sl = Procurar delimitador s2 : resto da cadeia  resto da cadeia'. s2: cadeias antes e depois do delimitador  Exemplo: » s t r = 1Procurar delimitador » [sl. » strfind(str. 1a q u 1) ans = 17 1 9  s  aquela'. ’X Y 1) str = abc 123456 XY » whos str Bytes Name Size 36 str 3x6  S  Class char array  strfind  Localiza subcadeias em uma cadeia de caracteres. Sintaxe típica: [sl. Sintaxe típica: k = strfind{m.s2]  = strtok(str. aquele. .]  = d e a l (fieldl..campos.Valor) Prl = 3. Var2. 39. Var2....1900 Iden: 'DOL' » s (2) ans = Valor: 39.P r 2 ]= d e a l (s.)  Parâmetros: Entrada fieldl.6500  Saída Var1.19 'DOL' .1900 Pr2 = 39. Sintaxe típica: [Varl.dim)  Parâmetros: Entrada cel: cell array (conteúdo) campos: nome dos campos dim: dimensão  Saída s: struct  Exemplo: » cel={ 3 .. » s = cell2struct(cel..Struct v'  cell2str  Converte cell array em struct.: campos de struct Exemplo: » [Prl. » s(l) ans = Valor: 3..2) .campos....6500 I d e n : '0Z1 '■  ■/ deal 'Distribui1valores campos de struct para variáveis.field2.65 '0 Z 1 '} » campos= { 'Valor' 1I d e n ' }. Sintaxe típica: s = cell2str  (cel..: variáveis  . field2.  campo)  192  MATLABP 7 . Sintaxe típica: nomes = fieldnames(S)  Parâmetros: Entrada S: struct  Saída nomes: cell array com os nomes dos campos  Exemplo: » nomes=fieldnames(s) nomes = 'Valor' 'I d e n '  s  orderfields  Reorganiza struct com campos em ordem alfabética.Fundamentos  .y  fieldnames  Retorna os nomes dos campos da struct. Sintaxe típica: Sl = rmfield(S. Sintaxe típica: | Sl = orderfields(S)  Parâmetros: Entrada S: struct  Saída S1: struct com nomes dos campos em ordem alfabética  Exemplo: »  sl=orderfields(s)  sl = 2x1 struct array w ith fields: Iden Valor  S  rmfield  Remove campo de struct. . { 1DOL' 'O Z 1 1}.65}) s = 1x2 struct array with fields: Iden Valor  s  struct2cell  Converte struct em cell array.19 39.: cell array com valores  Saída S: struct  Exemplo: » s = s t r u c t ('I d e n ' .)  Parâmetros: Entrada c a m p o lstring com nomes dos campos valorl..Parâmetros: Entrada S: struct campo: nome do campo a ser removido  Saída S1: struct sem o campo  Exemplo: » s2=rmfield ( s .  campo2.. Sintaxe típica: cel = struct2cell(S)  Parâmetros: Entrada S: struct  Saída cel: cell array  .  . ' Valor') s2 = 2x1 struct array w ith fields: I den  y  struct  Cria struct.. Sintaxe típica: S = struct  ( campol.{3.'V a l o r '. valorl.  valor2.  Sintaxe típica: R = c e l l f u n (funcao.  MATLAB ®7-Fundamentos  .6500]  Cellarray y  cell  Cria cell array.1) = % a cell array e' criada com 3 dimensões ’D O L ’ [3.:. m: dimensões Exemplo: » c e l = c e l l (2.2) = 'OZ1' [39.1900] >> c2=struct2cell(s) % No caso de vetor de struct C 2 ( :.m)  Parâmetros: Saida cel: cell array  Entrada n.:. Sintaxe típica: cel = cell(n)  /  cell(n.1900] c2(:.Exemplo: % cell array com 2 dimensões » c l = s t r u c t 2 c e l l ( s (1)) cl = 'DOL' [3.3) cel =  [] S  []  []  cellfun  Aplica uma função para todos os elementos do cell array.cel)  Parâmetros: Entrada funcao: a ser aplicada cel: célula  Saída R: resultado da aplicação da função para cada elemento do cell array. Exemplo: » cel={ 'DOL' 3.1000  10.0000  20.1000] [1x2 double] » m=cell2mat(cel)  m= 0.19.0000  Observação: para aplicar a função cell2mat. todos os elementos do cell array devem ser numéricos.1900] 'OZ1' [39. Sintaxe típica: ce l l d i s p ( c e l )  Parâmetros: Entrada cel: cell array  .Programação  Saída  .c e l ) ans = 3 1 3 1  y  cell2mat  Converte c e lla rra ye m matriz numérica.6500] » c e l l f u n (1l e n g t h 1.1 [10 201} cel = [0. 'O Z 1 1 39.65 } cel = ■DOL’ [ 3.___________________________________________________________________  y  celldisp  Lista o conteúdo de um cell array. Sintaxe típica: m = cell2mat(cel)  Parâmetros: Entrada cel: cell array  Saída m: matriz  Exemplo: » c e l = { 0 . 1} =.  ■S cellplot Exibe graficamente o conteúdo de um cell array.  021  y  Tools  □ □ D e s k to p  W in d o w  H elp  a m lw iW í  mat2cell  Converte matriz numérica em celt array.6500  'OZ1'  39. Sintaxe típica: cellplot(cel)  Parâmetros: Entrada cel: cell array  Saída  Exemplo: » cel={ 'DOL' 3. » c e l l d i s p (cel) cel{l.65 }.2} = 39.1900 cel{2.  He  View  E dit  d of  In s e rt  Mi.1} = OZ1 cel{l.19.19.Exemplo: » c e l = { 'DOL' 3.Fundamentos  .  196  MATLAB® 7 .2} = 3. >> cellpl o t ( c e l )  'OZ1'  39.65 }. DOL c e l {2. m: dimensões em que a matriz vai ser dividida  Saída cel: cell array  Exemplo: » X = [1234. >> C = m a t 2 c e l l ( X . Sintaxe típica: cel = num2cell (m)  Parâmetros: Entrada m: variável numérica  Saída cel: cell array  Exemplo: » c e l = n u m 2 c e l l ([1 2 3]) cel = [11 [2] [3]  Conversão de Tipos de Dados Cadeia de caracteres para número: Função  Conversão  Exemplo  base2dec  número em caracteres na base dada para número em base decimal  bin2dec  número em caracteres em base binária para número em base decimal  hex2dec  número em caracteres em base hexade cimal para número em base decimal  >> b a s e 2 d e c (110'. 5 6 7 8 9 10 11 12].n.m)  Parâmetros: Entrada X: matriz n.Sintaxe típica: cel = mat2cell(X.16) ans = 16 » b i n 2 d e c (11 0 0 0 0 1) ans = 16 » h e x 2 d e c ( '10 ') ans = 16  Programação  197  . [1 2]. [1 3] ) C = [ 1] [1x3 double] [2x1 double] [2x3 double]  S  num2cell  Converte matriz numérica em cell array. 6000  Número para cadeia de caracteres: Função  Conversão  Exemplo  char  matriz de números para cadeia de caracteres (código ASCII)  dec2base  número para cadeia de caracteres na base dada  dec2bin  número para cadeia de caracteres em base binária  dec2hex  número para cadeia de caracteres em base hexadecimal  int2str  número inteiro para cadeia de caracteres  mat2str  matriz numérica para cadeia de caracteres  num2str  número para cadeia de caracteres  » c h a r ([65 66]) ans = AB >> d e c 2 b a s e (16.1416 » mat2str(m) ans = [1 2 .0000 2.6') ans = 0.14159265358979] » num2str(pi) ans = 3.6') ans = 0.Função  Conversão  Exemplo  str2double  número em caracteres para número real (precisão dupla)  str2num  número em caracteres para número  >> st r 2 d o u b l e ('0.1416  Outras conversões: Função  Conversão  logical  matriz numérica em matriz lógica (matriz de 0's e 1's: os elementos da matriz numérica diferentes de zero são transformados em 1)  func2str  converte nome de função em cadeia de caracteres  str2func  converte cadeia de caracteres em handle de função  dec2hex  número para cadeia de caracteres em base hexadecimal  Exemplo a = 5 0 3 6 » logical(a) ans = 1 0 1 1 >> s=func2str(@sin) s = sin » dec2bin(5) ans = 101 » h = s t r 2 f u n c ('s i n ' ) h = @sin  MATLAB® 7-Fundamentos  .0000 3.6000 » str2num ('0.3 3.0000 3.16 ) ans = 10 » dec2bin(5) ans = 101 » dec2hex(16) ans = 10 » i n t 2 s t r (-123) ans = -123 m = 1.  0 1]) A =  0  1 1  0  » B = u i n t 8 ([0 0.2.1) ans =  0 0  Programação  2 2  .3.3.B) TTand =  0 0  0 1  » TTor=bitor(A. Operadores Operadores  Bitwise(Operações sobre Números Inteiros) Função bitand bitcmp bitor bitmax bitset bitshift bitget bitxor  Operação AND (e) complemento OR (ou) máximo inteiro em ponto flutuante configura posição de bit desloca bits obtem posição de bit XOR (ou não e)  Exemplo: ♦  implementar tabelas'Verdade1:  » A = uint8([0 1. 1 1]) B =  0 1  0 1  >> TTand = bitand(A.B) TTor =  0 1  ♦  1 1  Complemento e shift: >> bitcmp(A) ans =  255 255  %  254 254  >> b i t shift(A. v2) ans = 3 4 5  MATLAEP 7-Fundamentos  .m2)  Parâmetros: Entrada m1. m2: variáveis  Saída c: conjunto de intersecção  Exemplo: » vl=[l 2 3 4 5]. » v 2 = [3 4 5 6 7].Operadores Relacionais (Símbolos de Testes e Operadores Booleanos) Símbolo (eq) ~= (ne) <(lt) >(gt) <= de) >= (ge)  Teste Igual Diferente Menor que Maior que Menor ou igual Maior ou igual  Exemplo 1== J (1 igual a J) 1~= J (1 diferente de J) 1< J (1 menor que J) 1> J (1 maior que J) 1<= J (1 menor ou igual a J) 1>= J (1 maior ou igual a J)  Símbolo ~ (not) & (and) && (and) 1(or) II (or)  Operador Negação E E para matrizes OU OU para matrizes  Exemplo de composição ~l ( negação de 1) 1& J (1 e J verdadeiros) M1 && M2 11J (I ou J verdadeiro) M1 II M2  Função lógica ali any false true xor  Teste testa se todos os elementos são diferentes de zero testa se algum elemento é diferente de zero testa se todos os elementos são false testa se todos os elementos são true testa elementos XOR  Operadores de Conjunto  y  intersect  Retorna 'intersecção' entre dois vetores. Sintaxe típica: c = i n t e r s e c t (ml. » i n t e r s e c t (vl.  Sintaxe típica: R = ismem b e r ( m . é necessário fornecer o parâmetro 'rows'. s )  Parâmetros: Entrada m: matriz s: elemento(s) Exemplo:  Programação  Saída R: vetor lógico  .No caso de matrizes. Além disso. as matrizes devem ter o mesmo número de colunas e a operação de intersecção é efetuada coluna a coluna:  S  ismember  Verifica se o(s) valor(es) é elemento da matriz.  m2 = [3 4.4'  \ *J  issorted(v)  ' Á -d  --  Parâmetros: Entrada v: variáveis  Saída truel false  Exemplo: » issortedt [1 2 3 4]) ans = 1 » issorted) [1 2 4 3]) ans = 0  MATLAEP 7 .m2. Sintaxe típica:  . b: variáveis Exemplo: » v l = [1 2 3 4 5].v2) ans =  1  2  No caso de matrizes.5 6.  issorted  Verifica se o vetor está ordenado. » setdiff(vl.3 4. retoma os elementos que estão em A e não estão em B.7 8.Fundamentos  . ' rows '} ans = 1 2  » »  s  .7 8]. Sintaxe típica: D = setdiff(a. » v 2 = [3 4 5 6 7] . Ademais as matrizes devem ter o mesmo número de colunas e a operação de verificação é efetuada coluna a coluna: »  m l = [1 2.5 6.Dados dois vetores (ou matrizes) A e B. é preciso indicar o parâmetro 'rows'.9 10] s etdiff(ml.b)  Parâmetros: Saída D: conjunto de diferenças  Entrada a.  r o w s ') ans = 1 2 9 10 ■V:  .m2)  Parâmetros: Entrada m1.S  setxor  Retorna os elementos que não estão na 'intersecção' entre dois vetores. » setxor(vl v 2 ) ans = 1 2 6  7  No caso de matrizes.9 10] . ■ I  /  union  Retorna a união de dois vetores. >> m2=[3 4. 5 6. 7 8. o parâmetro 'rows' deve ser fornecido. Sintaxe típica: c = u n i o n (ml.3 4. m2: variáveis  Saída c: conjunto 'xor'  Exemplo: » vl=[l 2 3 4 5]. >> setxor(ml m 2 . Sintaxe típica: c = s e t xor(ml. m2: variáveis  Saída d: conjunto de união  Exemplo: » vl=[l 2 3 4 5] . » v 2 = [3 4 5 6 7] . as matrizes devem ter o mesmo número de colunas e a operação é efetuada coluna a coluna: >> m l = [1 2. >> union(vl.m2)  Parâmetros: Entrada m1. Além disso.7 8] .v2 ans = 1 2 3  Programação  4  5  6  7  . 5 6. » v 2 = [3 4 5 5 7] . 7 8. » m 2 = [3 4. Sintaxe típica: c = u n i q u e (m)  Parâmetros: Entrada m: variável  Saída C: conjunto sem repetição  Exemplo: >>v=[ 1 1 3 3 3 5 2 5 ]  »  1 1 u n i q u e (v) 1  2  3  3  3  5  3  5  2  5  A função também pode retornar os índices dos elementos 'únicos'.No caso de matrizes.9 10] .5 6.  M4 71/40®7-Fundamentos  . 'rows') ans = 1 2 3 4 5 6 7 8 9 10  </ unique Elimina repetição de elementos em um vetor.m 2 .5 6 .3 4 .ind]=unique(v)  3  3  5  2  5  = 1  2  3  5  5  8  ind = 2  7  Operadores de Data e Hora  s  addtodate  Adiciona valor a uma data.7 8 ] . » u n i o n (ml. >>v=[ 1 1 3 3 3 5 2 5 ]  » vl  1 1 3 [vl. o parâmetro 'rows' preciso ser indicado. as matrizes devem ter o mesmo número de colunas e a operação é efetuada coluna a coluna: » m l = [1 2 . Além disso.  mês. 'month'.N.Tipo)  Parâmetros: Entrada D: data em número real N: quantidade a ser adicionada Tipo: 'day1. Sintaxe típica: c = calendar  (Ano.20.2 0 0 4 1). data. mês  Saída c: matriz  Exemplo: Junho de 2004 » c = c a l e n d a r (2004. minuto e segundo atuais.'month')  732556 » datestr(r) ans = 01-Sep-2005  •f  calendar  Gera uma matriz com o calendário da data solicitada. dia. hora. 'year'  Saída R: data  Exemplo: adicionar 20 meses à data ’01 -Jan-2004' »  r=addtod a t e ( d atenum(101-Jan .Sintaxe típica: R = addtodate  (D. Mes)  Parâmetros: Entrada Ano. 6) c = 0 0 1 2 6 7 8 9 13 14 15 16 20 21 22 23 27 28 29 30 0 0 0 0  s  3 10 17 24 0 0  4 11 18 25 0 0  5 12 19 26 0 0  clock  Retorna um vetor com 6 elementos: ano. Sintaxe típica:  . 1496 » date ans = 08-Jun-2004 >> now ans = 7 .Fundamentos  .0060  0.0e+003 * 2. Sintaxe típica: D = datenum(str)  Parâmetros: Entrada Saída str: data e m cadeia de caracteres  D: data numérica  Exemplo: » d a t e n u m ( 10 8 .0140  0. date: retorna data em cadeia de caracteres.0040 0. 3211e+005  S  datenum  Converte data (cadeia de caracteres) em número. Sintaxe típica: cputime / date / n o w  Exemplo: » cputime ans = 903. em segundos.0360  0. now: retorna data em valor numérico (data base 1:01-01-0000). A data base 1 é '01-01-0000'.Exemplo: » clock ans = 1. de uso do MATLAB® na sessão atual.2 0 0 4 1) ans = 732106  S  datestr  Converte número em data (cadeia de caracteres).0530  ■/ cputime / date / now cputime: retorna o tempo.J u n . A data base 1 é '01-01-0000'.0120  0. MATLAB® 7.  Sintaxe típica: V  =  datevec(str)  Parâmetros: Saída V: vetor  Entrada str: data em cadeia de caracteres Exemplo: >> d a t e v e c ('08-Jun-2004 ans = 2004 6  10:30' ) 8  10  30  0  ■s tic/toc Implementa contador de tempo de execução.toc % Tempo gasto. Exemplo: >> m=rand(500) . são usualmente chamados de m-files.  . por este motivo. » tic .3. em segundos.m1e. para Elapsed time is 0. % inverter uma matriz 500x500  3.3. M-files Como já mencionado no Capítulo 2. arquivos de programa do MATLAB® têm extensão '.221000 seconds.Sintaxe típica: str = datestr(D)  Parâmetros: Saída str: data em cadeia de caracteres  Entrada D: data numérica Exemplo: » d a t e s t r (732106) ans = 08-Jun-2004  y  datevec  Converte data de cadeia de caracteres para vetor numérico. m l = i n v ( m ) .   ♦  [ p s i .•  .. SaidaN] : parâmetros de saída Funcao: nome da função [Entradal.  PeM )  <Exprl> <ExprR>  ♦  f u n c t io n : palavra reservada que indica início de definição de função....  : parâmetros de saída. E a chamada de funções. nem de saída.  nome da função (é case-sensitive)'..m  MATLAEP 7-Fundamentos  .  A sintaxe básica de definição de funções segue este formato: function  Psl..  . Entrada2)  [Saidal.  .Existem dois tipos de m-files\ ♦  Script: é uma seqüência de expressões do MATLAB® e serve. . porém aceitam parâmetros de entrada e retornam parâmetros de saída.  SaidaN]  = Funcao  (Entradal. .. . para automatizar algum processo repetitivo. Funções utilizam seu próprio espaço de memória para armazenar variáveis locais. Não tem parâmetros de entrada.. . PsN  =  nome_funcao  Pel. este: [Saidal. < ExprR >:  expressões que definem as ações a serem executadas  pela função. . e utiliza as variáveis do Workspace. .. EntradaN] : parâmetros de entrada  Neste tópico.  ♦  Function: funções também são compostas por seqüências de expressões do MATLAB®.  Funções de Consulta Função  Informação  Exemplo  mfilename  retorna o nome do m-fiie em execução  » mfilename ans =  namelengthmax  tamanho máximo de nome de variável  » namelengthmax ans = 63  nargin  número de parâmetros de Entrada fornecidos  cap3_inputname_exemplo. Pen: parâmetros de entrada.. apresentamos recursos e funções relativos à construção e ao tratamento de m-fiies. p s n ]  ♦  nom e_funcao:  ♦  p e l . basicamente.  ♦  < E x p ri>  .  . Funçãs  Informação  Exemplo  nargout  número de parâmetros de Saída solicitados  cap3_inputname_exemplo. estrutura de repetição define início de função define variável global estrutura de seleção implementa opção da função s w i t c h define variável persistente retorna implementa 'tentativa de execução1 estrutura de repetição  case catch continue else elseif end for function global if otherwise persistent return try while  U tilitários  1  ■/ edit Chama editor de programas.  I I  Sintaxe típica: »  edit mfile  Parâmetros: Entrada mfile: nome do arquivo  Saída  w h iie)  e funções  .m  iskeyword  lista as palavras reservadas da linguagem MATLAB®  » iskeyword ans = 'b r e a k ' 'case 1  Palavras reservadas da linguagem MATLAB® (aparecem em azul nos arquivos m-files na janela edit): Palavra  Descrição  break  quebra fluxo de execução implementa opção da função s w i t c h implementa alternativa da função t r y avança execução implementa alternativa da função if implementa alternativa da função if finaliza estruturas de repetição (for. 3  *  &  Refiesh |  M-Lint Code Checker Report Report Cot file Jttianculo pascal ecxo} c:\matlab7\vork\triangulo_pascal_erro.m 3 messages § 1 Pa-se error at appears to be invalid HATLAB syntax 8: Parse error at 1)' appears to be invalid HATLAB syntax §2. Parse error at ‘)' appears to be invalid HATLAB syntax  MATLAEF 7•Fundamentos  . Sintaxe típica: »  mlint mfile  Parâmetros: Entrada mfile: nome do arquivo  Saída exibe resultado na linha de comando  Exemplo: » mlint triangulo_pascal_erro L 8 (C 14): Parse error at '=' appears to be invalid MATLAB syntax L 8 (C 23): Parse error at ')' appears to be invalid MATLAB syntax L 8 (C 32): Parse error at ')' appears to be invalid MATLAB syntax  S  mlintrpt  Chama analisador para verificação de erros sintáticos em m-files e gera um relatório no Web Browser. Sintaxe típica: >> mlintrpt mfile  Parâmetros: Entrada mfile: nome do arquivo  Saida exibe resultado no Web Browser  Exemplo: >> mlintrpt triangulo_pascal_erro  M -lm t Code Check Report Fie Edit View <jo Debug Desktcp Window Help «• ■+  j  C .S  mlint  Chama analisador para verificação de erros sintáticos em m-files. •/  pcode  Gera um código binário.N o t e p a d Edt  F o tm a t  V iew  m  m  m  H elp  o ê n -4 • Ê: 3 .m (script)  . de um m-file.< .* cap3_gradient_exemplo. C o l 1  .  Funções Utilitárias e Linguagem  y  echo on/off  Habilita/desabilita exibição de código durante execução do programa. Exemplo: arquivo cap3_det_exempio.file  &/  ✓  .-*ov: * f  1 p .m cap3_gradient_exemplo.]  Observação: arquivos p-codes podem ser utilizados para proteger código fonte pois não são editáveis.p  Exemplo: » pcode cap3_gradient_exemplo » dir cap3_gradient_exemplo.i d í e r it _ e x e m p l o . 'pré-compiiado'.i* 1 1  Ln 1.« T ë S È ù .p  P I ffe  c a p 3 _ g r < .1 : o : i ’ „ m t ò [ i c k í ^ O Õ A z v ^ s n ò ^ y ú O : ' t n —ckÆ XŒ J'^ " Û 0 y > g 7 : x : 1 ~ : B 0 :u * G 0 E o0 e iv _ : ] 2 k Y î • : o ê : 5 x & . Sintaxe típica: »  pcode mfile  Parâmetros: Entrada  Saída  mfile: nome do arquivo  arquivo com o mesmo nome do m-file e com extensão . parametro e' u m numero. % nome da segunda variavel de entrada ne=nargin.n 2 . Sintaxe típica: n = inputname(ind)  Parâmetros: Entrada ind: índice da variável de Entrada  Saída n: nome  ■ ÏSJ  Exemplo (cap3_inputname_exemplo. % numero de parametros de entrada ns=nargout.ns]=cap3_inputname_exemplo(x. Exemplo: arquivo cap3_funcao1 .ne.ne. Sintaxe típica: I pause / pause(n)  MATLAEP 7 -Fundamentos  .m): % funcao cap3_inputname_exemplo function [nl.0) nl = x % nome da I a variavel do 1* parametro n2 = 11 % 2.ent2 nl = i n p u t n a m e (1).s  function  Inicia definição de função.  S  inputname  Retoma o nome da variável de entrada fornecida na chamada da função.ns] = cap3_inputname_exemplo( entl. nao uma variavel ne = 2 % dois parametros de entrada ns = 4 % quatro de saida  ■s pause Provoca uma pausa na execução do código.n2. % numero de parametros de saída  )  Execução: » [nl. % nome da primeira variavel de entrada n2 = i n p u t n a m e (2).m % funcao cap3_funcaol function y = cap3_funcaol(x) y = x+sin(2*x) + c o s ( 4 * x). Parâmetros: Entrada n: número de segundos de pausa  Saída  Caso n seja omitido. Fluxo de Programação Estruturas de Seleção ■/  if. else.m % cap3_if_exemplo () function R = cap3_if_exemplo (a.3.4. espera um <Enter> para prosseguir. Se o resultado for: ♦  true executa o conjunto de expressões seguinte.  3. edit: cap3_if_exemplo. else R = 1Pelo menos u m parametro de entrada 1 end  Programação __________________________________________ _____ ( ^13  . elseif  Executa um teste lógico.  Sintaxes típicas:  Exemplo i f : verifica se algum parâmetro de entrada foi fornecido.b) if nargin == 0 R = 1N e n h u m parametro de e n t r a d a 1.  ♦  false: pula para o próximo conjunto de expressões. m____________  % cap3_elseif_exemplo () function R = cap3_elseif_exemplo (a. eiseif nargin == 1 R = '1 parametro de entrada'. Caso nenhuma condição seja satisfeita.2) ans = 2 parametros de entrada  ■S switch / case / otherwise Dado um valor para teste.b) if nargin == 0 R='Nenhum parametro de entrada'. end  Execução: » cap3_elseif_exemplo ans = N e n h u m parametro de entrada » c a p 3 _ e l s e i f _ e x e m p l o(1) ans = 1 parametro de entrada » c a p 3 _ e l s e i f _ e x e m p l o(1. verifica qual 1ã condição 'case' é satisfeita e executa o conjunto de expressões correspondente.Execução: » cap3_if_exemplo ans = Ne n h u m parametro de entrada » c a p 3 _ i f _ e x e m p l o (1) ans = Pelo menos u m p arametro de entrada » c a p 3 _ i f _ e x e m p l o (1.2) ans = Pelo menos u m parametro de entrada  Exemplo e i s e i f : examina quantos parâmetros de entrada foram fornecidos.Fundamentos  . else R = '2 parametros de entrada'. edit:  cap3_elseif_exemplo. executa as expressões 'otherwise'. Sintaxe típica: switch <Valor_para_teste> case <Condicao 1> <Expressoes> case cCondicao N> <Expressoes> otherwise <Expressoes> end  -3  MATLAB® 7. b) switch nargin case 0 R = 1N e n h u m parametro de entrada'. end  Execução: » cap3_switch_exemplo ans = N e n h u m parametro de entrada » c a p 3 _ s w i t c h _ e xemplo(1) ans = 1 parametro de entrada » c a p 3 _ s w i t c h _ e xemplo(1.2) ans = 2 parametros de entrada  Estruturas de Repetição ■J w h ile /e n d Executa o conjunto de expressões enquanto a condição for true. edit: cap3_while_exemplo  j  ()___________  % cap3_while_exemplo () % R: multiplos de n menores que m function R = cap3_while_exemplo (n. otherwise R = 12 parametros de e n t r a d a 1. while i*n < m R=[R i * n ] . R= [] .m) i=l. i  Sintaxe tipica: while <Condicao> <Expressoes> end  Exemplo w h ile : retorna os múltiplos de n menores que m. edit: cap3_switch_exemplo  ()___________  % cap3_switch_exemplo () function R = cap3_switch_exemplo (a. i=i+l.Exemplo s w itc h : analisa quantos parâmetros de entrada foram fornecidos. end  Programação  . case 1 R = 11 parametro de entrada'. Fundamentos  . Exemplo f o r : gera matriz com diagonal: n+1 .n+n.. a função assume valor de incremento igual a 1..i)=i+n.42) ans = 5 10 15 20  s  10  25  30  35  40  for / end  Executa o conjunto de expressões para todo valor V a partir de Vinc. até Vfinal.. . end  Execução:  MATLAEP 7.. incrementado de Incr. Sintaxe típica: for V = V i n c :I n c r :Vfinal <Expressoes> end  Se Incr for omitido. .n+n) function R = cap3_for_exemplo (n) for i=l:n R(i.11) ans = 2 4 6 8 » cap3_while_exemplo 5. edit:  cap3_for_exemplo  ()  : 'I  % cap3_for_exemplo () % gera matriz diagonal (n+1.Execução: » cap3_while_exemplo (2.. 8) ans = 3 6 » c a p 3 _ e r r o r _ e x emplo(8. while i*n < m R= [R i *n ] . Sintaxe típica: I error(msg)  / errordlg(msg)________  Exemplo e r r o r : repete a funcionalidade do exemplo cap3_while_exemplo.Tratam ento de Erros  s  error / errordlg  error: exibe mensagem de erro na linha de comando. R=[] .m) if n > = m ms g _erro='n deve ser menor que m ' . end  Execução: » c a p 3 _ e r r o r _ e x emplo(3. edit: cap3_error_exemplo  ()_____________  % cap3_error_exemplo () % R: múltiplos de n menores que m function R = cap3_error_exemplo (n. error(msg_erro) .3) ??? Error using ==> cap3_error_exemplo n deve ser me n o r que m  s  lasterr/lastwarn  Retorna última mensagem de erro/aviso detectado pelo MATLAB®. porém testa condição n deve ser menor que m. Sintaxe típica:  . end i=l. i=i+l. errodlg: exibe mensagem de erro em caixa de diálogo. Fundamentos  .s  try/catch/end  'Tenta' executar as expressões definidas entre try e catch. Se a*b retornar erro. Sintaxe típica: try <Expressoes> catch <Expressoes> end  Exemplo t r y / c a t c h : tenta multiplicar a*b. Se ocorrer algum erro.b) try x=a*b. edit: cap3_try_exemplo  ()  % cap3_try_exemplo () % resolve multiplicar a * b function x = cap3_try_exemplo (a. end  Execução: » c a p 3 _ t r y _ e x e m p l o ([1 2].  MATLAB® 7.4]) ans =  11 » c a p 3 _ t r y _ e x e m p l o ([3.[3.[1 2]) ans = 3 6 4 8 »  c a p 3 _ t r y _ e x e m p l o ([3 4].[1 2])  >>  :. exibe mensagem em caixa de diálogo. suspende a execução e executa as expressões definidas entre catch e end. catch e r r o r d l g (1Dimensões i n c ompativeis1).4].  Construção de Nome de Arquivo Funções de Consulta Função  informação  Exemplo »  cd c :\matlab7\work >> pwd ans = c :\matlab7\work  cd / pwd  diretório corrente  filesep  caractere separador de nome de arquivo no sistema operacional corrente  matlabroot  diretório do MATLAB®  matlabroot ans = c : \matlab7  tempdir  diretório temporário  » tempdir ans = c : \Temp\  tempname  arquivo temporário  » tempname ans = c :\Temp\tp440124  >> filesep ans = \ »  Leitura e Gravação de Arquivos  .1. lista m os os p rincipais recursos de leitura e gravação de arquivos de dados no M ATLAB® 7.C a p ít u l o  4  Leitura e Gravação de Arquivos N este capítulo.  4. nome.m  s  fullfile  Dados caminho.nome)  Parâmetros: Entrada  Saída  d 1 d ir e tó r io s  arquivo: nome completo do arquivo  nome: nome com extensão  Exemplo: » p a t h = 'c :\ matlab7\work'. retorna: caminho.nome.Nome de Arquivo  S  fileparts  Dado nome completo do arquivo. nome. » a r q u i v o = f u l l f i l e (path.Fundamentos  .m'. » [path. nome e extensão. Sintaxe típica: arquivo = fullfile (dl.< 3 2 .m1. retorna o nome completo do arquivo. extensão.nome) arquivo = c :\matlab7\work\cap3_while_exemplo.m  MATLAB 8 7 . Sintaxe típica: [path.ext]=fileparts(arquivo) path = c :\matlab7\work nome = cap3_while_exemplo ext = .ext]=fileparts(arquivo)  Parâmetros: Entrada  Saída  arquivo: nome do arquivo  path: caminho nome: nome principal do arquivo ext: extensão  Exemplo: » a r q u i v o = 1c : \matlab7\work\cap3_if_exemplo. » n o m e = 'cap3_whi l e _ e xemplo.  m » n l = w h i c h ( ' detl . retorna" {string vazia). Sintaxe típica: m  =  importdata(arquivo)  Parâmetros: Entrada arquivo: nome do arquivo  Saída m: dados importados  Formatos de arquivo reconhecidos pela função importdata: Extensão  Descrição  Função  Retorno  MAT  formato MATLAB  load  variáveis no arquivo  CSV  números separados por  cvsread  matriz numérica  D A T /T X T  texto formatado  importdata  matriz numérica  DLM  números delimitados  dlmread  matriz numérica  TAB  números tabulados  dlmread  matriz numérica  Leitura e Gravação de Arquivos  .■ / which Dado nome de arquivo. caso contrário.2.m' ) nl =  4. verifica se ele existe (faz a busca no diretório corrente e nos caminhos definidos no path do MATLAB®). Sintaxe típica: nome_completo = which(nome)  Parâmetros: Entrada nome: nome do arquivo  Saída nome_completo: nome com path completo  Exemplo: »  n l=which ( ' det . retorna o nome completo do arquivo. Se existir. Utilitários de Abertura e Gravação de Arquivos ■/  impordata  Importa dados de arquivo.ru' )  nl  :\matlab7\toolbox\matlab\matfun\det . . s = l o a d (tipo. Sintaxes típicas: » load arquivo s = l o a d (arquivo) s = l o a d (arq u i v o . v2.Extensão  Descrição  Função  Retorno  XLS  planilha do MS-Excell  xlsread  matriz numérica e cell array  WK1  planilha do Lotus 123  wk1 read  matriz numérica e cell array  CDF*  Common Data Format  cdfread  cell array e registros CDF  FITS*  Flexible Image Transport System  fitsread  formato FITS  HDF*  Hierarchical Data Format  hdfread  formato HDF  AVI  formato AVI (animação)  aviread  formato MATLAB movie  TIFF  PCX  formato formato formato formato formato formato formato  TIFF (imagem) PNG HDF BMP JPEG GIF PCX  XDW CUR ICO RAS PBM  formato formato formato formato formato  XDW CUR ICO RAS (raster Sun) PBM  imread  matrizes de cores (truecoloi) e índice (mapeamento)  PGM PPM  formato PGM formato PPM  AU SND  formato AU (áudio Sun) formato SND (áudio Sun)  auread  dados e freqüência  WAV  formato WAV (áudio MS)  wavread  dados e freqüência  PNG HDF BMP JPEG GIF  (*) Padrão de arquivos para troca de dados criados peia NASA.  Exemplo: » m = i m p o r t d a t a ('c a p 2_dad o s l . x i s ') % Importa os dados da planilha m = % para a struct m no campo Planl P l a n l : [50x2 double]  S  load  Importa dados de arquivos nos formatos MATLAB e ASCII. v l . arquivo)  MATLAB ®7-Fundamentos  . ..html  abre o arquivo no Web Browser  Exemplo: »  o p e n ('E x e m p l o 2 .0185  0.8913 0.4565  S  0. m a t 1.open(arquivo)  Parâmetros: Entrada  Saída  arquivo: nome do arquivo  m: dados importados  Extensão  Descrição  MAT  formato MATLAB®  importa os dados do arquivo  FIG  arquivo de figuras  abre a janela com a figura  Ação retorno  M  m-file  abre o m-file no edit  MDL  modelo do Simulink®  abre o modelo no Simulink®  HTML  arquivo .'d a d o s 2 . Sintaxe típica: | m . '-ascii'  Observação: a execução da função load sem parâmetros importa todas as variáveis do arquivo matlab.Parâmetros:  Entrada  Saída  arquivo: nome do arquivo  s: dados importados  v1.a s c i i 1.t x t 1)  sl = 0. v2.7621 0.______________ Exemplo: » s = l o a d ( 'c u r v a s .mat.9501 0..f i g ')  Leitura e Gravação de Arquivos  ____________________________________  .2311 0. m a t ') s = curvas: [52x3 double] tempo: [1x52 double] » s t = l o a d ( 1c u r v a s .8214  open  Reconhece o tipo de arquivo e 'abre' o arquivo no MATLAB®.4860 0.6068 0. 't e m p o ') st = tempo: [1x52 double] » s l = l o a d ( 1.: variáveis tipo: '-m a t'.  '-ascii1  Saída  ■S uiimport Abre janela de interface gráfica da função importdata.. |  Parâmetros: Entrada arquivo: nome do arquivo v1.mat. v2.. . .v 2 .v l . Sintaxe típica: »  uiimport  MATLAB® 7-Fundamentos  ..) s a v e (arquivo.: variáveis tipo: '-mat'. tipo)  Observação: a execução da função save sem parâmetros grava todas as variáveis no workspace no arquivo matlab.y  save  Armazena variáveis do workspace em arquivos nos formatos MATLAB e ASCII. . Sintaxes típicas: » save arquivo s a v e (a r q u i v o ) s a v e (a r q u i v o . wki «^jmatiabl [ Ü r e d e y e d fr o g  ^cap2_dados.H  C H IM E S 1  í^iprofic resdts H f l orcuito  My Recent Docunents  © a rq  ®  ■ 0 a rq l  if) contagem  flg r a fô  jja r q l  T i curvas  •Qgrafll  ^ a rq 3  Desktop  3  My Doofnerts  curvas1  | p license  pH bungie  U i OB-vas2  g§jLoíusl.Ries  uiload  Abre janela de interface gráfica da função load. Sintaxe típica: »  s  uiload  uiopen  Abre janela de interface gráfica da função open. s a l d a i  « j& je x e r d d o 9  §  y j fc u rv a s  C H IM E S  ß xyspi  My Network Pisces Ries of type:  s  jRecoyiized Data . Sintaxe típica: »  uiopen  jLeitura e Gravação de Arquivos  d "3  Open  I  i cei  I  .l ífj cap2_dados2  0  5 ^ )c a p 2 _ d a d o s 2  [ U e s p ira i  ßxdY d  H l c a p 2 _ s a id a  § 2 | e x a m p le  fjx y  10 cap2_saidal  % Computer  dock  §)jaFroq Red H)sraíD2 ^jgrafDS  dados2  e x e r c id o S  * * l c a p 2.wkl  í y cap2_dadosl  dados 1 í | j dados 1  |áLotus2.  semelhantes às funções disponíveis na linguagem C/C++.......  s  fclose  Fecha arquivo. Sintaxe típica: »  w i n o p e n ('c :\ m a t l a b 7 ')  4.1:  \m * 1 Füe n a rr« :  |  Ries of tyo e :  [A li M ATLAB Fües  |  Q pen  |  Cance! ....... abre janela de acesso ao diretório fornecido.L o o k f i.. | C 2 w o ik  3  f  E a rq l J -ß a rq S  ■ Q csp2_exem pio_ô 5  ^ )c a p 2 _ e x e ir  ß  cap2_exem pfe_G6  ^ ] c a p 2 exeir  ^?)ca p2 _exsm pio_Q 1 'Q c a p 2 _ e x e m p ío _ 0 2  cap2_exem pfo_07 ■^1 cap2_exeroplo_ps  •@ c a p 2 _ e x e rr  ^  ■jp) cap2_exem pfo_09 f f i j cap2_exernpio_ 10  cdp2_exem pio_03  M cap2_exem p!o_04  ^ v lc8p2_exeiT ^cap2_exen ^ H e a p 2 e x e ri . ou de acesso a dados binários.Fundamentos  .....  MATLAB® 7 ........... |  ■S winopen No sistema operacional Windows®..... Funções de Entrada/Saída de 'baixo nível1 O MATLAB® disponibiliza funções de entrada/saída de 'baixo nível1.....3........ Sintaxe típica:  s t = fc lo s e ( fid ) Parâmetros: Entrada fid: identificador de arquivo (file-handle) S  Saída st: status  feof  Testa condição de final de arquivo. Sintaxe típica: st  = f e o f (f id )  Parâmetros: Entrada fid: identificador de arquivo (file-handle) y  Saída st = 1 indica final de arquivo  terror  Retorna mensagem de erro. Sintaxe típica: tline = fgetl(fid)  Parâmetros: Entrada fid: identificador de arquivo (file-handle)  Leitura e Gravação de Arquivos  Saída tline: linha lida  . Sintaxe típica: | msg = f e r r o r ( f id ) Parâmetros: Entrada fid: identificador de arquivo (file-handle) S  Saída msg: mensagem de erro  fget!  Lê uma linha do arquivo sem caractere de final de linha f\n'). )  MATLAEP 7 ...Fundamentos  .  formato. mantendo registros anteriores Abre para leitura e gravação Abre ou cria para gravação e leitura. Sintaxe típica: tline = fgets(fid)  Parâmetros: Entrada fid: identificador de arquivo (file-handle) s  Saída tline: linha lida  fopen  Abre arquivo. modo)  Parâmetros: Entrada arquivo: nome do arquivo modo: tipo de acesso Modo Y W 'a1 W 'w+' 'a+' y  Saída fid: identificador de arquivo (file-handle)  Tipo de Acesso Abre para leitura Abre ou cria para gravação. Sintaxe típica: nb = fprintf(fid. v2.  . eliminando registros anteriores Abre ou cria para gravação. mantendo registros anteriores  fprintf  Grava dados formatados.y  fgets  Lê uma linha do arquivo com caractere de final de linha ('\n'). vl. eliminando registros anteriores Abre ou cria para gravação e leitura. Sintaxe típica: fid = fopen(arquivo. pi) fprintf('%5.'a') fprintf('%s'.'abc') fprintf('%5.3u'. v2. <C> %c %s %d ou %i %u %f %e %E %g %x %X %o  Notação caractere cadeia de caracteres decimal decimal sem sinal ponto flutuante exponencial exponencial 'maiúscula' forma compacta de %f ou %e hex. Caractere <P>: número de dígitos à direita do ponto decimal.142e+000 3.pi) fprintf('%x'.< P x C > \ <F> + 0  Contre íamento e sinal alinhamento à esquerda sempre imprime sinal dos números preenche espaços com 0' em vez d e '  Exemplo %-6.142 3.Parâmetros:  Entrada fid: identificador de arquivo (file-handle) formato: string com a descrição do formato v1.3g'.3e'.. 'minúscula' hex.4d %06. 'maiúscula' octal  Exemplo fprintf('%c'.4d  Caractere <T>: número mínimo de dígitos a serem impressos.142e+000 3.3d'.pi) fprintf('%5.27) fprintf(%o'.27)  Resultado a abc 3.pi) fprintf('%5.pi) fprintf('%5.„: variáveis  Saída nb: número de bytes gravados  A string com a descrição do formato é composta da seguinte maneira: % < F x T > .142 1b 1B 33  Caracteres especiais que podem ser utilizados nos formatos: Caractere Nome \b backspace \f form feed \n newline \r carriage return \t horizonal tab \\ backslash \" quotation mark %% percent character Leitura e Gravação de Arquivos  Descrição retorno de caractere avanço de linha pula linha retorno de linha tabulação horizontal caractere barra invertida \ caractere aspa" caractere porcentagem %  .3f'.pi) fprintf('%5.27) fprintf('%X.3E'.142e+000 3.142E+000 3.4d %+6.  lê até final de arquivo.  m■. prec)  Parâmetros: Entrada fid: identificador de arquivo (file-handle) nb: número de bytes a serem lidos prec: precisão (mesmo critério da função fwrite)  S  Saída m: matriz de dados  frewind  Retorna para o início do arquivo.  [nl nc] )  Parâmetros: Entrada fid: identificador de arquivo (file-handle) formato: string com a descrição do formato [nl nc]: dimensões.S  fread  Lê dados binários.ato. Sintaxe típica: m = fread(fid. Sintaxe típica: f r e w i n d (fid)  Parâmetros: Entrada fid: identificador de arquivo (file-handle) S  Saída  fscanf  Lê dados formatados.nb]  = fscanf (fid. lii  Sintaxe típica: [m.  MATLAEP 7 .Fundamentos  .  nb.  form. número de linhas e colunas  Saída m: matriz com dados nb: número de bytes gravados  Observação: se a dimensão for indicada com Inf. 6068 0.2311 0.txt'.8214  ■/  0.8913 0.offs e t . % Abre arquivo para leitura m = f s c a n f ( f i d . » m = c a p 4 _ f s c a n f _ exemplo(1d a d o s 2 . '% f 1.Exemplo: edit:  cap4_scanf_exempio  ()____________________________  % c a p 4 _ s c a n f _ e x e m plo( ) % Le arquivo.4565  fseek  Posiciona apontador de arquivo. % Fecha arquivo  Execução: ler arquivo 'dados2.t x t ') m = 0. Sintaxe típica: status = fs e e k (fid.4860 0. Sintaxe típica: pos = ftell(fid)  Leitura e Gravação de Arquivos  0. % Le dados fclose(fid).0185  . retorna dados em u m vetor lxN function m=cap4_fscanf_exemplo(arquivo) fid=fo p e n (arquivo.9501 0.[1 I n f 1]).7621  0.'r ').orig)  Parâmetros: Entrada fid: identificador de arquivo (file-handle) offset: número de bytes orig: base do posicionamento orig 'bof 'cof 'eof ✓  Saída status: índice de status  Descrição número de bytes a partir do início do arquivo número de bytes a partir da posição atual número de bytes a partir do final do arquivo  ftell  Retorna posição atual do apontador do arquivo. Parâmetros:  Entrada fid: identificador de arquivo (file-handle)  Saída pos: posição em bytes  ■/ fwrite Grava dados binários. m.  ♦  cap4_fread_exemplo: lê o arquivo em uma matriz com precisão dupla de arquivo binário. Sintaxe típica: n b = fwrite(fid.  MATLAEP 7-Fundamentos :  . prec)  Parâmetros: Entrada fid: identificador de arquivo (file-handle) m: matriz prec: precisão  Saída nb: número de bytes gravados  A precisão é dada por: Tipo de dado Descrição double Precisão Dupla single Precisão Simples int8 Inteiro 8 bits c/ sinal uint8 Inteiro 8 bits s/ sinal intl6 Inteiro 16 bits c/ sinal uintl6 Inteiro 16 bits s/sinal int32 Inteiro 32 bits c/ sinal uint32 Inteiro 32 bits s/ sinal int64 Inteiro 64 bits c/ sinal uint64 Inteiro 64 bits s/ sinal char Caractere  Precisão 'real*8' 'realM' 'integerT 'integerT 'integer*2‘ 'integer*2' 'integer*4' 'integer*4' 'integer‘ 8' 'integer‘ 8' 'char'  Exemplos: ♦  cap4_fwrite_exemplo: grava uma matriz com precisão dupla em arquivo binário.  nc: números de linhas e de colunas  Leitura e Gravação de Arquivos  ( 233  . arquivo ) % Grava matriz m em arquivo com formato binário function cap4_fwrite_exemplo(m. d a t ').'i n v _ a . % Abre arquivo para gravacao f w r i t e (f i d . Arquivos de Formatos Específicos 4.edit: cap4_fwrite_exemplo ()________________________ % c a p 4 _ f w r i t e _ e x e mplo( m.  edit:  cap4_fread_exemplo  ()____________________________  % c a p 4 _ f r e a d _ e x e mplo( arquivo ) % Le matriz m do arquivo com formato binário function m=cap4_fwrite_exemplo(arquivo) fid=fo p e n (arquivo. arquivo) fid=fopen(arquivo.'r ').'w'). % Le a inversa » a*reshape(b. d a t '). % Grava a inversa de a » b = c a p 4 _ f r e a d _ exemplo(1i n v _ a . -2 3] . nc)  Parâmetros: Entrada  Saída  arquivo: nome do arquivo  m: dados lidos  nl.  Execução: » a= [1 0 .4. m .2. » cap4_fwrite_exemplo(inv(a).4. % Grava com precisão dupla fc l o s e (f i d ) . 1r e a l * 8 '). nl. 'r e a l * 8 1). Arquivos ASCII S  cvsread  Lê arquivos em formato CSV (separado por vírgulas). % Abre arquivo para leitura m = f r e a d (fi d .5. Sintaxes típicas: m = cvsread(arquivo) m = cvsread(arquivo.1. % Lê com precisão dupla fc l o s e (f i d ) .2) % Testa os valores lidos ans =  1 0  0 1  4.  Sintaxes típicas: c v s w r i t e (arquivo. nc: números de linhas e de colunas S  Saída  dlmread  Lê arquivos em formato delimitado (separado por caractere delimitador). nc)  Parâmetros: Entrada arquivo: nome do arquivo m: matriz com os dados a serem gravados nl. nc)  Parâmetros: Entrada arquivo: nome do arquivo d: caractere delimitador nl. nl. (arquivo. nl.m) cvswrite(arquivo. nc: números de linhas e de colunas ■S dlmwrite  Saída m: dados lidos  .^  cvswrite  Grava arquivos em formato CSV (separado por vírgulas). m. Sintaxes típicas: m = dlmread m = dlmread m = dlmread  (arquivo) (arquivo.  d) d. formato)  Leitura e Gravação de Arquivos  .Parâmetros:  Entrada arquivo: nome do arquivo m: matriz com os dados a serem gravados d: caractere delimitador nl.v2.10. a função a s s u m e o u '  ■/ textread Lê arquivos com dados formatados por colunas.49. 1%s %f % f ‘).formato)  Parâmetros: Entrada arquivo: nome do arquivo formato: string de formato  Saída v1.1.8. nc: números de linhas e de colunas  Saída  Observação: se o caractere delimitador for omitido..  a m m  1m â  ■ N am e a . em um cell array.v 2 ]= t e x t r e a d ( 'd a d o s l ..v2.51.. Sintaxe típica: [vl...95.57.. double [55.]  = textread(arquivo.vl.t x t 1. double  • / textscan Lê arquivos com dados formatados por colunas. »  [mes.. em variáveis separadas.33.„: colunas lidas  Exemplo: lê o arquivo 'dados1.  3vi" ' 3 v2  j  I  I :stack:j O { C la ss  <6x1 cell> cell [9.81. ) i: r n e s  I V alue . Sintaxe típica: cel = t e x t s c a n (fid.txt' composto por uma coluna de texto e duas de valores numéricos. 95'.j_____  .33. c e l = t e x t s c a n (fi d . 49.pastas]  = xlsfinfo(arquivo)  Parâmetros: Entrada arquivo: nome do arquivo  Saída tipo: descritivo do tipo pastas: nomes das pastas (cellarray)  Exemplo: » [tipo.t x t '.  i l Array Editor .4.Parâmetros:  Saída cel: cell array  Entrada fid: identificador de arquivo (file-handle) formato: string de formato Exemplo: lê o arquivo 'dadosl .r.8.. Sintaxe típica: [tipo. IÍ55.. » » »  fid=fo p e n ('d a d o s l ..pastas]=xlsfinfo('cap2_dados2. y j ans H l cet  0  f f if id  3  %  File  O í  ij »82  <1 x3 cell>  E dit  V iew  &  §=i Ê Ü  1  G raphics #  Debug  í [Ü  -•  1  D e s k to p  W indoi  S ta c k .xls). J 2] g J I I I ' I " ________ 1 _______ _. f c l o s e (fi d ) .Fundamentos  .xls') tipo = Microsoft Excel Spreadsheet pastas = 'P l a n l ' 1P l a n 2 1 'Plan3'  236  MATLAB ® 7. ' L  -  :  2 3 1 :(<6x1 ceÍÍ> H9.XLS e *.1r 1).2.txt'.57.. '%s %f %f').  4  5  <  6 i 71  j 1  !  i  sC u rre n t D ire c to ry ! W n rk s n a n ft !  4.WK1 S  xlsfinfo  Obtém dados de uma planilha MS-Excel (*.cel ■ f i t í s s i I 1 r. Planilhas *.. xls).82  ■S xlswrite Grava planilhas MS-Excel (*.04 58. Sintaxes típicas: [n.  pasta) pasta.m.  pasta) pasta.s  xlsread  Lê planilhas MS-Excel (*.xis' 1P l a n l ' 'Al :B 3 ') m = 0 34.a] = xlsread(arquivo) [n. 'A1 :B5'  Saída n: dados numéricos a: dados alfanuméricos  Exemplo: » m = x l s r e a d (1cap 2_dados2. por exemplo.xls).16 2. »  x l s w r i t e (1c a p 4 _dadosl.  intervalo)  Parâmetros: Entrada arquivo: nome do arquivo pasta: nome da pasta m: dados (pode ser cell array) intervalo: range.xis'.74 4.m. (arquivo.  intervalo)  Parâmetros: Entrada arquivo: nome do arquivo pasta: nome da pasta intervalo: range. Sintaxes típicas: xlswrite xlswrite xlswrite  (arquivo.m) (arquivo.magic 5) ) . por exemplo.08 75.a] = xlsread(arquivo.a] = xlsread(arquivo. [n.  . 'A1:B5'  Saída  Exemplo: gravar apenas dados numéricos. w k l 1. 00 5.65.3.67}  Exibir.17 39.68] [3. 00 500.S5 33.00 400.  iS B  áíjPj Afcpyo D  gdiiar  ü Al  A l 1 DÜL í 2 .17  >> x l s w r i t e (1cap4_dados2.67]  3.00 600.Exemplo: gravar apenas dados alfanuméricos e numéricos.c e l )..68.19 \ 3 . 00 700. coluna: intervalo de leitura (base é 0)  Saída m: dados  Exemplo: w k l r e a d (1lotusl w k l 1) 300.  ü S3 G l v y & ^ fx DOL € .xis 1.00 4...00 >> m l = w k l r e a d (1l o t u s l .3.wk1). cel = 'DOL' 'OZ1' [3.18 39. » cel= { 'DOL' 'O Z 1 '.2) ml 49 19 51 29 50 53 50 67  238  50 50 50 51 50  69 82 71 29 67  50 48 51 49 50  26 94 42 19 53  MATLAEP 7 .00 2. ..68 ■3-5. linha..■ ■ B OZ1 39. .65] [3.19] [39.. 00 3.3.  S  3. Sintaxes típicas: m = wklsread(arquivo) m = w k l r e a d (arquivo. 00 1.6?  wk1 read  Lê planilhas Lotus123 (*.19 39.  coluna)  Parâmetros: Entrada arquivo: nome do arquivo linha.Fundamentos 1  .17] [39. Jpsenr.18 4 3.18] [39. 3.  20 21 2  . Sintaxes típicas: sound(s.fs)  Parâmetros: Entrada s: vetor numérico fs: freqüência  Leitura e Gravação de Arquivos  E  D 1 7 13 19 25  Saída  8 14.  linha. Sintaxes típicas: wklwrite wklwrite  (arquivo. m. »  w k l w r i t e ('l o t u s 2 .3. mag i c (5)).4 5 b 12 18  4.  À * i 2 : 3 4 5 .wk1). coluna: intervalo de leitura (base é 0)  Saída  Exemplo: gravar apenas dados numéricos. Arquivos de Áudio S  sound / w avplay  Converte vetor numérico em som.15 16 22 3 9  .4. w k l '.coluna)  Parâmetros: Entrada arquivo: nome do arquivo m: dados linha.  B 1?J 23 4 10 11  C 2. m) (arquivo.S  w klw rite  Grava planilhas Lotus123 (*.fs) wavplay(s.  Sintaxe típica: [S.6  Hep  1□ 0  0 .fs) % Executa audio  Execução: »  cap4_wavread_exemplo  View  In s e rt  Q trB i  File  Ed-.4  16  A 14  18  2\  16  1.t  fe :  Tools  D esktop  W indow  Si O © .fs]=wavread('TestSnd.wav).1.Fundamentos  .wav').Fs]  = wavread(arquivo)  Parâmetros: Entrada arquivo: nome do arquivo  Saída S: sinal Fs: freqüência  Exemplo: edit:  cap4_wavread_exemplo  ()__________  % cap4_wavread_exemplo function cap4_wavread_exemplo ( ) [S.s  wavread  Lê arquivo MS-Wave (*.1.8  1  I 3  □  1 .2) p l o t (S (:.2  1 .1) % Exibe os dois canais p l o t ( S (:.2  éJààuL 08  1  1.  3.2)) t i t l e (1Canal 2') sound(S.wav' s u b p l o t (2.1)) t i t l e ('Canal 1') s u b p l o t (2.8  2 X 10*  240  MATLAB® 7 . % Le 'TestSnd. 1))  Leitura e Gravação de Arquivos  . % Le 'TestSnd.1) % Exibe os dois canais p l o t (S (:.S  wavrecord  Obtém sinal do dispositivo de entrada de som. % Grava y = w a v r e c o r d (5*Fs. Sintaxe típica: S = w a v r e c o r d ( n . edit: cap4_wavrecord_exemplo  ()________________________________________  echo on % cap4_waverecord_exemplo % Frequencia Fs = 11025. Sintaxes típicas: wavwrite(S.wav' s u b p l o t (2.arquivo) w a v w r i t e ( S . % Reproduz pause w a v p l a y ( y .f s ]= w a v r e a d ('T e s t S n d .wav.1. 'emenda' os sinais e grava no arquivo.arquivo)  Parâmetros: Entrada S: matriz com sinal numérico arquivo: nome do arquivo Fs: freqüência  Saída  Exemplo: lê dois arquivos *.  •S  wavvvrite  Grava arquivo no formato *. 1i n t l õ 1). edit:  I  cap4_wavwrite_exemplo  ()______________________  % cap4_wavread_exemplo function cap4_wavread_exemplo ( ) [S .wav.F s ). F s . Fs)  Parâmetros: Entrada n: tamanho da amostra (número de bytes) Fs: freqüência  Saída S: sinal obtido do dispositivo  Exemplo: grava 5 segundos de entrada do microfone e reproduz o som gravado. Fs. w a v 1). t i t l e (1Canal 1 1 s u b p l o t (2.4.fs)  % Executa audio  4. Sintaxes típicas: fileinfo = iminfo(arquivo) fileinfo = iminfo(arquivo.4.2) p l o t ( S (:.1.  fmt)  Parâmetros: Entrada arquivo: nome do arquivo fmt: formatos de arquivo de imagem Formato 'bmp1 'cur' 'gif' 'hdf 'ico' 'jpg' / 'jpeg' 'pbm' 'pcx' 'pgm' / 'png' / 'pnm' / 'ppm' 'ras' 'tif'/'tiff' 'xwd' S  Saída fileinfo: struct com informações  Descrição Windows® bitmap (BMP) Windows® Cursor (CUR) Graphics Interchange Format (GIF) Hierarchical Data Format (HDF) Windows® Icon (ICO) Joint Photographic Expers Group (JPEG) Portable Bitmap (PBM) Windows® Paintbrush (PCX) Portable formats (PGM/PNG/PNM/PPM) Sun Raster (RAS) Tagged Image File Format (TIFF) X Windows® Dump (XWD)  image  Exibe conteúdo de uma matriz como imagem.  MATLAEP 7 ■Fundamentos  . Arquivos de Imagem S  imfinfo  Obtém informações de arquivo imagem.2)) t i t l e (1Canal 2' sound(S. ___________________________________________  ■/ imread Lê arquivo de imagens.Sintaxe típica: image (RGB )  Parâmetros: Entrada RGB: dados da imagem  Saída  Observação: a matriz RGB deve ser uma matriz tridimensional. Cada plano deve conter os planos das cores vermelha.arquivo. Cada plano tem de incluir os planos das cores vermelha.___________________________________________  ■S imwrite Grava arquivo de imagens.ColorMap. fmt) imwrite(A.fmt)  Parâmetros: Entrada RGB: dados da imagem arquivo: nome do arquivo fmt: formatos de arquivo de imagem  Leitura e Gravação de Arquivos  Saída  . arquivo. Sintaxes típicas: RGB = imread(arquivo) RGB = i m r e a d (a r q u i v o . Sintaxes típicas: imwrite (A. verde e azul. verde e azul.f m t )  Parâmetros: Entrada arquivo: nome do arquivo fmt: formatos de arquivo de imagem  Saída RGB: dados da imagem  Observação: a matriz RGB deve ser uma matriz tridimensional.  % Grava arquivo da imagem com cores invertidas  Execução: |»  c a p 4 _ i m a g e _ e x e m p l o ('NGJuly2002. % Bit complementar i m a g e (r g b l ) t i t l e ('Cor c o m p l e m e n t a r 1) imwri t e ( r g b l .1) i m a g e (r g b (:.2)) t i t l e ('Mapa da Cor V e r d e (GREEN)') s u b p l o t (2.com/photograpy.  Mapa da Cor-Vermelha (RED)  Mapa da€or¥&rde|GR£EN) !  200 3 0 04 0 0 500  Nota: imagem disponibilizada pela revista National Geographic: site http://www. Exemplo: edit: cap4_image_exemplo  ()_________________________________  % cap4_image_exemplo (entrada.2.2.3) i m a g e (r g b (:._______  MATLAB® 7-Fundamentos  .saida) rg b = i mread(entrada).'c a p 3 .jpg ' ). verde e azul.nationalgeographic.j p g ' .3)) t i t l e ('Mapa da Cor A z u l (BLUE)') s u b p l o t (2.2) i m a g e (r g b .:.:. i m a g e (rgb) t i t l e (1Imagem O r i g i n a l ') figure s u b p l o t (2.s a i d a ) .4) rg bl=bit e m p (rgb).2.Observação: a matriz RGB tem de uma matriz tridimensional.2. Cada piano deve incluir os planos das cores vermelha.1)) t i t l e ('Mapa da Cor Vermelha (RED)') s u b p l o t (2.saida) function cap4_image_exemplo(entrada. avi).4. Sintaxe típica: fileinfo = aviinfo(arquivo)  Parâmetros: Entrada  Saída  arquivo: nome do arquivo  fileinfo: struct com informações  I  245  . Sintaxes típicas: aviobj = avifile(arquivo) wavplay(s. Dados de Animação </  addframe  Adiciona um quadro ao objeto de animação.frame) wavplay(s.4.fs)  Parâmetros: Entrada  Saída  arquivo: nome do arquivo  aviobj: handle de animação  ■S aviinfo Obtém informações de arquivo de dados de animação (*.fs)  Parâmetros: Entrada  Saída  aviobj: handle de animação  aviobj: handle atualizado  frame: handle de figura (quadro)  •/  avifile  Cria um arquivo de dados de vídeo (*.5. Sintaxes típicas: aviobj = a d d f r a m e (aviobj.avi).  Sintaxe típica: m o v = getframe  Parâmetros: Saída mov: struct de quadro de animação  Entrada  S  movie2avi  Grava conteúdo de struct em arquivo *.S  aviread  Lê arquivo de ciados de animação (*. Sintaxe típica: movie(mov)  MATLAB® 7. Sintaxe típica: movie2avi  (mov.avi.arquivo)  Parâmetros: Entrada mov: struct de quadro de animação arquivo: nome do arquivo S  Saída  movie  Exibe animação e armazena uma struct de quadro de animação.Fundamentos  .avi) e armazena em uma struct. Sintaxe típica: m o v = aviread  (arquivo)  Parâmetros: Entrada arquivo: nome do arquivo •/  Saída mov: struct com informações  getframe  Armazena a figura corrente em uma struct de quadro de animação.  % Gera superficie axis([0 fim 0 fim -10 10]) mov(ind)=getframe.4. ind=ind+l. 1C O M P R E S S I O N '.  Leitura e Gravação de Arquivos  ( 247  . 'cap4_avi_exemplo.fim) ind=l. 'N o n e ')  Execução: »  c a p 4 _ a v i _ e x e m p lo(5.50)  *> F ig u r e 1 Ne  Eét  View  Q iiB S  In s e rt  Tools  D esktop  W in d o w  Help  ts  a Q  4.6.Parâmetros: E n trad a  S aíd a  mov: struct de quadro de animação Exemplo: edit:  cap4_avi_exemplo  ()_______________________________________  % cap4_avi_exemplo ( ) % Cria uma animacao: surf(peaks) incremental function mov=cap4_avi_exemplo(inic.a v i 1. end % Grava arquivo movie2avi(mov. Troca de Dados com Internet S  ftp  Abre uma conexão com ftp. for i = i n i c :fim  surf(peaks(i)). username.diretorio) delete(objftp.c o m ' ) objftp = F T P Object host: ftp. arquivo) mkdir(objftp. O objeto ftp retornado pela função ftp é necessário para a execução das funções de acesso. arquivo) rename(ftp. novo.mathworks.diretorio) mput(objftp.m': » cap4_ftp_exemplo obj f t p = f t p (1f t p .com user: anonymous dir: / m o d e : binary dir(obj ftp) READM E R E A D M E . m a t h works.execução do arquivo 'cap4_ftp_exemplo. Função ascii(objftp) binary(objftp) cd(objftp.Sintaxe típica: obj ftp=ftp(endereço. velho)  Descrição estabelece protocolo ASCII estabelece protocolo binário muda de diretório apaga arquivo lista conteúdo de diretório fecha conexão download de arquivo cria diretório upload de arquivo muda nome de arquivo  Exemplo .incoming  incoming  matlab outgoing pickup  pub pubs  c d (obj f t p . passcode: nome do usuário e senha  Saída objftp: objeto ftp  Observação: para acesso ftp 'anonimus' não é necessário fornecer username e passcode.passcode)  Parâmetros: Entrada ftp: endereço ftp username.arquivo) dir(objftp) close(objftp) mget(objftp. 'p u b ' ) ans = /pub dir(obj ftp)  MATLAB9 7 -Fundamentos  :  . m'} s e n d m ail(email.c o m .exe ops outgoing patch  Pentium pressroom proceedings product-info tech-support temp utilities  close(obj ftp)  S  sendmail  Prepara e-mail.INDEX NEWFILES  admin beta bin books compiler  conference connections contrib digest doc franee ftphelp  germany italy mathworks matweb. anexos)  Parâmetros: Entrada emaii: e-mail do destinatário assunto: assunto do e-maii mensagem: conteúdo do e-maii anexos: cell array com os nomes dos arquivos anexos  Exemplo: edit: cap4_sendmail_exemplo % cap4_sendmail_exemplo echo on setpref ( 'Internet' .. 'elia_matsumoto@yahoo. an e x o s = {'cap4_ftp_exemplo.diretorio)  Leitura e Gravação de Arquivos  . m e n s a g e m = 'Email c om 2 arquivos a n e x o s '.m' . Sintaxes típicas: unzip(arquivo_zip) u n z i p (a r q u i v o _ z i p .assunto .. Sintaxe típica: sendmail (email.zip.mensagem.anexos)  S  unzip  Descompacta arquivo *. b r '.mensagem. 'E_mail' .assunto. a s s u n t o = 'Teste para livro'.coin.br' ) e m a i l = 'elia_mat s u moto@yahoo. 'cap4_sendemail_exemplo.  z i p '.c o m . b r 1) s = < H T M L x H E A D x T I T L E > E d i t o r a Érica Ltda</TITLE> <META c o n t e n t = "te x t / h tml.br name=Edson> <META c o n t e n t = ”Copyright (c) 2003 b y Editora Érica Ltda" name=COPYRIGHT> <META .'c :\ t e s t e 1) dir c:\teste  NGJuly2002.arquivo)  j  MATLAB® 7 . Sintaxe típica: s = urlwrite(endereço. charset=ISO-8859-l” http-equiv=Content-Type> <META content=master@ erica.com.Fundamentos  . Sintaxe típica: s = urlread(endereço)  Parâmetros: Entrada endereço: URL  Saída s: cadeia de caracteres  Exemplo: » s = u r l r e a d ( 1h t t p ://www.jpg exercicio5. .editoraerica.Parâmetros:  Entrada____________________________________________ arquivo_zip: nome do arquivo zip diretorio: diretório no qual os arquivos vão ser descompactados Exemplo: » »  u n z i p {'j p g .jpg  cap3. .JPG  ■ / urlread Retorna uma cadeia de caracteres com o conteúdo da uri indicada.  S  urlwrite  Lê o conteúdo da uri indicada e grava em arquivo.jpg redeyedfrog. Parâmetros:  Saída s: nome do arquivo  Entrada endereço: URL arquivo: nome do arquivo Exemplo:  » u r l = 1h t t p ://www.editoraerica.com.br/buscafinal.asp ? c o d = 9 2 0 4 1; » s=url w r i t e ( u r i , 'editora.html') s = C:\matlab7\work\editora.html » open(s) __________________________________________________ % > E d i t o r a E r ic a L t d a 1 File  Edit  View  Ç*  j ^  Go  B  D ebug  : £4  Desktop  W indow  I V o lta r | 1* ín d ic e d o liv ro 1 i Pesquisar peto título, autor, área ou código. utHizando acentuação .  i.  C a t á lo g u G e r a l  íx A d m in is tr a ç ã o e N e g ó c io s ^ A d m in is t r a ç ã o ^ A d m in is t r a ç ã o d o Tem po G r a m á tic a e R edação íS R e c u r s o s H u m a n o s 52 S e c r e ta r ia d o « - T e c n o lo g ia d a i ’ in f o r m a ç ã o  <  S  p j  g  j Location: j C:/m atlab7/w ork/editora.htm l  P e s q u is a r!  f B  Help j  D o w n lo a d  M A T L A B 6 .5 - F u n d a m e n to s d e P ro g ra m a ;! 0 objetivo d e s te liv ro é c a p a c ita r e s tu dantes e profissic superior e pós-gra d u a ç ã o ) a utilizarem o M A TLA B 6.5 < neste am biente, utilizando s u a linguagem de p rogram aç : em m a trizes. Ele d e s c re v e o s tip o s de da d o s fundam entais d e s s a fe re c u rs o s e fu n ç õ e s de im portação e arm azenam ento di fu n ç õ e s de ge ra ç ã o e m a nipulação de g rá fic o s e fig u r í dad o s , des envolvim ento de program as, m ecanism os de am igável com usuário, e ainda lista a s principais funçõe a p licações es p e c ífic a s , com o tratam ento de polinómio, 1 dife re n c ia d a s ordinárias e de ou tro s pro d u to s baseado abordagem s o b re o SymboBc M ath Toolbox. A s e x p lic a ç õ e s estã o sem pre ilus tradas c o n exem plos aprendizado. A u to r(e s ): É lia Y a th ie M a ts u m o to ISBN: 920 4 N Páginas: 344 Peso: 0,553 (Kg) Form ato 17 x 24 c m Categoria L in g u a g e m d e P r o g i R e«l - R * /H,U0 ;|  zip  Compacta arquivos. Sintaxe típica: zip(arquivo_zip,  arquivos)  Parâmetros: Entrada_________________________________________________ arquivo_zip: arquivo compactado arquivos: cell array com os nomes dos arquivos a serem compactados Exemplo: » z i p ('b m p .z i p ','*.b m p ') » dir *.zip bmp.zip jpg.zip  Leitura e Gravação de Arquivos  ( 251  4.4.7. Outros Tipos de Funções y  serial  Acesso à porta serial. Sintaxe típica: s=serial(porta) serial(s,prop,valor)  Parâmetros: Entrada endereço: URL prop: propriedade val: valor  Saida s: handle de porta serial  Exemplo: » »  s = s e r i a l {1C O M 1 1); set(s) ByteOrder: [ {littleEndian} | bigEndian ] BytesAvailableFcn: string -or- function handle -or- cell array BytesAvailableFcnCount Re a d A s y n c M o d e : [ {continuous} | manual RequestToSend: [ {on} | off ] StopBits Terminator  ]  A comunicação com portas seriais é feita pelas funções de entrada e saída de 'baixo nível'.  Parâmetros:  Entrada arquivo: nome do arquivo S  Saída node: objeto documento  xmlwrite  Grava as informações do document object model node em um arquivo. Sintaxe típica: s tr=xmlwri te (a r q u i v o ,node )  Parâmetros: Entrada arquivo: nome do arquivo node: objeto documento S  Saída str: conteúdo em cadeia de caracteres  xslt  Converte documentos XML. Sintaxe típica: xslt(origem,  estilo,  destino)  Parâmetros: Entrada origem: nome de arquivo ou URL origem estilo: estilo do arquivo ou URL destino: nome de arquivo ou URL destino  Leitura e Gravação de Arquivos  Anotações  254  MATLAB® 7-Fundamentos  C a p ítu lo  5  Gráficos e Handle Graphicsí®  Neste capítulo, apresentamos os recursos gráficos_ do MATLAB® 7 e os gráficos bi e tridimensionais e suas propriedades; configuração de acabamento de superfície, iluminação, sombreamento e controle de visualização. O conjunto desses recursos é denominado Handle Graphics  5.1. Gráficos Neste tópico, listamos os principais elementos e recursos relacionados à criação e manipulação de gráficos do software. Plot é a principal ferramenta para geração de gráficos do programa. Sua função básica é gerar gráficos bidimensionais a partir dos valores X e Y. Como já mostrado, sua sintaxe básica é: p l o t ( x l ,y l ,fml /x 2 ,y 2 ,f m 2 , ■ . ■)  H3  Além disso, existem funções que configuram aspectos informativos do gráfico. Por exemplo: title, xlabel, legend. Estes, e todos os outros parâmetros de configuração de gráficos, podem ser programados individualmente, por meio de funções de programação, ou interativamente por meio do utilitário [Plot Tools], acionável pelo ícone de mesmo nome, presente na barra de ferramentas da janela gráfica.  5.1.1. Utilitário Plot Tools Considere o gráfico gerado pela execução do arquivo cap2_exercicio_  Gráficos e Handle G r a p h i c _______ ______ ______________________ ________V 5 >  Figure 1 File  Edit  View  In s e rt  Tools  D esktop  W indow  Help  E A pro x im a c a o por pi  E E  + —  ▼ A nn o ta tio ns \  Line A r ro w  \  Double A r r o w  ^  T ext A r ro w  T I  T ext B ox I Rectangle  Property Editor - Figure F ig ure Name.  G 3 S h o w Figure Num ber  [  Inspector...  Colo r map: F ig ure C o lo r  [Plot Tools] Tool Bar (opções da barra de ferramentas) □ B tcone  □  Nome  Ação  D  New figure  Cria nova figura  Qár  Open file  Abre arquivo  Q  Save  Armazena arquivo  <§  Print  Imprime  Edit plot  Habilita/desabilita modo de edição de objeto  ! ♦  Identifique elemento para disponibilizar as opções de propriedades pertinentes ao objeto selecionado.  ♦  O objeto também pode ser identificado na janela à direita [Plot Browser],  ♦  As modificações são automaticamente exibidas no gráfico.  MATLAB »7-Fundamentos  No caso, o objeto selecionado é uma curva cujas propriedades configuráveis são: ♦  [Plot Type]: tipo de gráfico.  ♦  [Line]: tipo de linha, espessura e cor.  ♦  [Marker]: marcador, espessura e cor.  Para eixos, temos: ♦  [Title]: título do eixo.  ♦  [Colors]: cor.  ♦  [Grid]: grades nos eixos X, Y e Z.  Gráficos e Handle Graphics®   [Font]: propriedades por coordenada: .... C oiors j f o >| j £ .. configuráveis em uma outra janela. .........j  0X 0  0Y  : X A x is  y A x is  .. <a.....♦  [Box]: linha de contorno.......  r A nn ota tion s \  U ne A r ro w  \  ouble A r ro w T ext A r ro w  ÉmwaróniiHÊÉia Titta  A p ro xim a ca o por polm omio de g r a j 1  .  Z Axs  FonS  X Labei: ! Tempo  Q z  E3ox  ícone ® .. Ticks]: divisões... [Z Axis]. «  Nome  Ação  Zoom in/Zoom out  Aproxima / Afasta visualização  Pan  Desloca visualização  M/4TM0® 7-Fundamentos  .  ♦  [X Axis].. [Y Axis]. Limits]: valores mínimo e máximo de coordenada.. ™.......... Labei]: título. [Font]: fonte de texto. ...... . Scale]: escala linear ou logarítmica.. ...... 26 ! :  *  Selection Style D is p la y S ty le  80  + A  60  Y  + + y  /  y  * C r e a te N e w D a ta tip  + ++  a  E x p o r t C u rs o r D c to t o W o rk s p a c e . X: 63. 1 . para gráfico 3D: ícone 11=1  Nome  Ação  Data cursor  Insere informação dos pontos da curva  O gerenciamento dos datatips é feito pelo menu contextuai. Aproxii  por poiínom lo de grau.55  40  20  A !t-C lic k  D e le te C u r re n t D a ta tip  ..  140  120 +  100  .27 . Y: 97.  / + 20  leone  40  60  :  Nome  Ação  □  Insert colorbar  Habilita/desabilita exibição de barra de cores  m~  Insert legend  Insere legenda  Hide/Show plot tools  Habilita/desabilita exibição do Plot tools  □ a  Gráficos e Handle Graphics®  D e le te  D e le te A il D a ta tip s  ! X: 32. acionável pelo botão direito do mouse.ícone  Nome  Ação  Rotate 3D  Roda imagem em 3 dimensões  ou.. ....  20  S to w M-code J  20  60  ....!  100  .... Edge C olor...  : 40  In te rp re te r  ►  O rie n ta tio n  ►  P roperties.... [Plot T ools]: Plot Brow ser (janela à direita)  MATLAB ® 7-Fundamentos  ■  ....  I  Inside N o rth East O utside N orth East Inside S outh East Inside N orth W est O utside N orth W est Inside S outh W est  Legenda  As propriedades da legenda e colorbar podem ser configuradas por seus menus contextuais. /  S0  ►  F o n t....dst  Copy Delete  100  C olor.Colorbar Apíoximacao por poiinomio de grau 1 dati  120  Cut  .... Line W idth  *Y * j.  por meio de check-box. que podem ser adicionadas aos gráficos.  ♦ O menu contextuai permite: desabilitar/habilitar exibição e eliminar objeto.♦  Controla. eixos (axes) e curvas (indicadas por legenda). [Plot Tools]: Figure Palettes (janela à esquerda) ♦ [New Subplots]: cria novos eixos (2D e -  A subdivisão é definida pelo ícone  3D) na figura (subplot).  ♦  [Variables]: expõe variáveis do Workspace.  O novo eixo aparece no [Plot Browser]. EB ►(Create tiled subplots).  Gráficos e Handle Graphics® _______________________  . ♦ [Add Data]: permite trazer variáveis do workspace para a figura e escolher o tipo de gráfico com o qual os valores vão ser exibidos. a exibição dos objetos que compõem os eixos: textos de títuio.  podem ser posicionados em qualquer região da figura (não ficam restritos aos limites dos eixos) e não aparecem no [Plot Browser].  Propriedades da seta com duas pontas: X  P r o p e r ty E d ito r ..Í0 -------y .  MATLAB8 7 . Seu conteúdo é variável de acordo com o objeto que está sendo editado. \  A r ro w  \  Double A r ro w Toxt A r ro w  T I  T e x tB o x I Rectangle  |O  Ellipse  Observação: elementos de anotação são objetos pertencentes à figura.0  100  v ’  J  Insp ector.♦  [Annotations]: exibe elementos de anotação.  iv b a c k l  V  . vback: 2  Head Width: [ 10..Fundamentos  . desta forma. [Plot Browser] e [Properties Editor].  A n notations  \üne..  Todas as propriedades da figura e dos eixos podem ser ajustadas pelas três janelas apresentadas: [Figure Pallete].0  v j : 10.  --------  •v . v.________________________________________________ [Plot Tools]: Properties Editor ♦  ( ja n e la  inferior)  Editor de propriedades.0  v  H e a d L e n ÿ h h 0. que podem ser inseridos na figura. [Line]: linhas  ▼ A nnotations  [Arrow]: setas  \  U ne  N-\  A rro w  [Double Arrow]: setas com duas pontas  Double A r ro w ^  [Text Arrow]: textos com seta  T  T e x t A r ro w T e x tB o x  1 1Rectangle  [Text Box]: textos  O  Ellipse  [Rectangle]: retângulos [Ellipse]: elipses jroxim acao por poin om io de gt  +  ij 3 A x e s (n o tile ) ..D o u b te a rra w Line Style:  j --------------  U n e Width: 10 5 C o lo r  \vmm *1  Head Style:  v v  .  yl.figure1) . O m-file com as configurações é automaticamente gerado e exibido no edit.  E dit  Text  D a£ y  Tools  CeB  Tools  D ebug  D esktop  X % f t <n bf 0  W indow  Help  M f . 'AproxiííííiCcio poi.Yi.Untitled?* F ie  M Ê M E dit  View  In s e rt  N ew  ►  O p e n .... y2) %CRE ATE FICURE{XI..  C trl+ P  ________________________________ createfig ure___________  In  34  Col  1 . S ave W orksp ace A s. <s8fiéraÉe  ..  Esse recurso facilita a codificação das funções de configuração de atributos de geração de gráficos. considere a configuração pronta com o aspecto ilustrado na figura seguinte:  Acione a opção [Generate M-file] no menu pop-up [File] do [Plot Tools]. P re fe re n c e s .. palifcosiio  Page S e tu p . P rin t.. E x p o rt S e tu p ..  C trl+ O  Close  C trl+ W  Save  C trl+ S  S ave A s ... title (axes 1 . Por exemplo.Y2) vector of x data  ..  %% Create axes axesl = axes(1Parent*. Editor .... P rin t S e tu p . P rin t P re v ie w ..  Im p o rt D a ta ..Essa configuração pode ser automaticamente armazenada em um m-file para uso posterior.. Por exemplo:  Gráficos e Handle Graphics®  ( 263  ... \M ® ! 4  function createfigure(xl. pois o m-file gerado pode ser inserido dentro de outros códigos...  Axes Properties. Page Setup... Clear Figure Clear Command W indow Clear Com mand H istory Clear W orkspace  ♦ Find Files: busca de arquivos Instruções de limpeza de conteúdo de janela  MATLAB ®7 ■Fundamentos  .  C trl+ P  P | l l View : In s e rt  Tools  D esktop  th b  V  Edição 'padrão Windows': ♦ Undo. Find Files.  Preferences: preferências  :  Page S e tu p ......... Paste Special  G r i* V  ♦  Select All.. Save As: armazena arquivos Generate m-file: cria m-file  Save A s ..... G en erate M -File. Redo  R edo  ♦  Cut... Delete  C trl+ A  ♦  Copy Figure: copia figura  ♦  Copy Options: opções de cópia  ♦  Figure Properties...  Save. salva variáveis  P re fe re n c e s . P rin t P re v ie w . Colorm ap ..2).. Paste... Ax e s P ro pe rtie s.  P rin t S e tu p .5..  Export Setup. Save W orkspa ce A s . E x p o rt S e tu p ... Current Object Properties: abre editor de proprie dades da janela inferior  ♦  Colormap: opções de mapas de cores  Cut  G rH -X  C opy  GH +C  Paste Ctear Select All C o py Figure  Edit  C o py O p tio n s .  File  Import Data: importação de dados  Im p o rt D a ta . Print: confi guração de exportação e impressão de figuras (veja o tópico 3.. P rin t....  I  Save Workspace /4s. Copy.. C u rre n t O b je c t P ro p e rtie s .Função  Ação cria eixo na figura configura eixo formato de marcadores de eixos configura grades legenda cria subjanelas cria textos título do gráfico título do eixo X título do eixo Y título do eixo Z  axes axis datetick grid legend subplot text title xlabel ylabel zlabel  [Plot Tools] Menu Pop-up Menu  Opções P  Conteúdo New: criação de arquivos View  In s e rt  D esktop  Tools  ffe iV  Wine  Open/Close: abre/fecha arquivos  M-File  ► C trl+ O  Figure  Close  C trl+ W  Variable  Save  C trl+ S  GUI  O p e n . Fig ure P ro p e rtie s ....  Pan.Menu  Opções  Conteúdo Habilita/desabilita barra de ferramenta: Figure Toolbar In s e rt  Tools  Camera Toolbar  ✓ Figure Toolbar Cam era Toolbar  View  Plot Edit Toolbar ■/ Figure Palette V Plot Browser  </P ro p e rty Editor  Plot Edit Toolbar abilita/desabilita exibição de janela: Figure Palette Plot Browser Property Editor sere elementos na figura: X Label: título do eixo X Y Label: título do eixo Y Z Labei: título do eixo Z  Tods  Desi  X Label Y Label  T itle Legend C olorbar Line  Insert  A rro w T e x t A rro w D ouble A rro w T e x tB o x R e ctangle Ellipse A xes  Title: título do gráfico Legend: legenda Colorbar: barra de mapeamento de cores Line: linha Arrow: seta Text Arrow: texto com seta Double Arrow: seta com duas pontas TextBox: texto  Light  Rectangle: retângulo Elipse: elipse Axes: eixo Light: luz D e s k to p : W indow .. Zoom O u t Pan  Edit Plot: habilita/desabilita edição Zoom In. Hei  Zoom In . Rotate 3D: con trole de visualização  R o ta te 3D D a ta Cursor R e s e t View  Tools  O ptions Pin to A x e s S nap To L a y o u t G rid View L a y o u t Grid S m a rt A lign a n d D is trib u te A lign D is trib u te T o o l.. Zoom Out. Align D is trib u te Basic F ittin g D a ta S tatistics  Desktop  Gráficos e Handle Graphics®  Dock Figure 1  Data Cursor: informação da curva Reset View: restaura vista ecursos de distribuição de elementos na janela Basic Fitting: recursos básicos de ajuste de curvas Data Statistics: estatística de dados (veja próximos tópicos)  .   W lÍSÊÊÊÉÈÊÊ&  '! iFp®*'"'» o nts  !......... [Size and Position]: tamanho e posicionamento..........Menu  Opções  Conteúdo Help  Window  Controle de janelas  0 MATLAB Com mand W indow 1 Fig ure 1  Ip G raphics Help P lo ttin g Tools A n n o ta tin g G raphs  Help  Recursos de help  P rin tin g an d E x porting W eb R esources  ►  C h eck fo r U pdates Dem os A b o u t MATLAB  5..  W idth: I auto H e ig h t............. [Lines and Text]: tipos de linha e texto.1..  MATLAB®7....! in c h e s  :'  f ~ l Expand a x e s to f i figure  Exp o rt S ty le s L oa d s e ttin g s from : S ave a s s ty le nam ed Delete a style...2).. [Axes and Figure]: definição de eixos....  -  [Export]: nome de arquivo e tipo (listados no tópico 3...........4.......  ♦  [Page Setup]: configuração da folha de impressão..Fundamentos  . tipo de fonte e linha......... [Export Styles]: estilo de exportação (MS-Word ou MS-PowerPoint)....... ♦  [Export Setup]: configuração de parâmetros de exportação de figuras.......... Exportação e Impressão de Figuras Os recursos de exportação e impressão de figuras estão acessíveis no menu pop-up [File]...... [Paper]: tipo do papel (A4. auto  Line s  :v í Units. tipo de acabamento.). etc. ■«^'Export Setup: Figure 1 P ro p e rtie s .... Letter. -  [Properties]: configura tamanho........2... . centered on paga' I 0 Use manual size and position Manual size and position Top.  EE Gráficos e Handle Graphics®  267  .38  U n i t s jm c h e s  Help.  Status:  Ready  Type:  HP LaserJet 5  W ien»:  W enstetn'jp  Comment:  I  Paper  Source:  & Portrait  jJ  i Sue: | Automatical-y Select  j» ]  Landscape  C ancel . O Use screen size.  OK  j[  Cancel  ]  Name:  ♦  [Print Setup]/[Print]: configuração de impressão.  ♦  Refresh  Close  [Print Preview]: pré-visualização da página de impressão.83  U s e d e fa u lts F ill p a g e v -' | F ix a s p e c t ra tio |  H e ig h t  U .33  W id th :  -5.  1 Print Preview-Figuro 1 Page S e tu p .  Í3.: M ode  .. -  Janela de impressão padrão de aplicativos.31  Left  Í7 [1.  2  0  Fit s  • Q 6r|ear O quadratic Q cubic □ 4th degree polynom ial [_J 5th degree polynomial 0 6th degree polynomial \ | 7th degree polynomial j__I 8th degree polynom ial n 9th degree polynom ial | 1 10th degree polynom ial  [ j S h o w equations  |  1  Select d ata  j  (  0  \  •f  Hefei  S h o w norm c f residuals  jj  Close  ..Fundamentos  .  [Show equations]: habilita/desabilita exibição das equações.1.4  ...e interpolant :[_ | shape-preserving interpolant  \n ! •  v  Sigrdficant digits:  I i Plot residuals  J2  v i  B ar plot  v  Subplot  v :  Subplot  v |  S h o w norm o 1residuals  j[  C lose  j  I j j  ! ..  J i . quadratic: interpolação quadrática.. [Show norm residuals]: habilita/desabilita exibição de média residual.5.  ♦  [Center and Scale X data]: habilita/desabilita ajuste e centralização dos dados em X. B a s ic F i t t i n g .3. [Significant digits]: dígitos significativos para exibição das equações.  268  MATLAB® 7 . [Bar/Scatter/Line Plot]: tipo de gráfico de resíduos.  Center an d s ca le X data  v  [ j Center and s cale X data  C heck to display fits cut fig u re : j O spline interpolant i 1 C 3 s h a p e -p rese rving interpolant j .. [Plot residuals]: habilita/desabilita exibição de gráficos de resíduos. [Plot fit]: método de ajuste de curvas. [Subplot/Separte Figure]: exibe gráfico de resíduos como subplot ou em outra janela.1  j»  " J B a s ic F i t t i n g  Select data: . cubic: interpolação cúbica..0  v . Definem e aplicam métodos de ajuste de curvas para os dados selecionados.  -  linear: interpolação linear (aX + b).. Utilitário Basic Fitting Estes recursos encontram-se no menu pop-up [Tools]. shape-preserving interpolant: usa função pchirp.  v |  □ Pic* residuals  : Bar plot  Help  v  C oefficients and norm o l resichjals 1  □ S h o w equations  S ignificant digits . O line a r I :: |! _ ] q uadratic j !' | D c u bic ' ! | U 4th degree polynom ial | j O 5 th degree polynom ial i ..  -  nth degree polynomial: interpolação de grau n.. -  spline interpolant: usa função spline.  ]  L fc ir l:]  ♦  [Select Data]: permite escolher o conjunto de dados a serem utilizados..(_J 6th degree polynom ial h O 7th degree polynom ial j O 8th degree polynom ial i Q 9th degree polynom ial j 0 10 th degree polynom ial  C heck to dispiay tits on figure □ s p lr.. .4.... polinomio de grau 1 i | E Ap'oxim acao por poinom o dc \  ïÉ + da*«»1  Select data: ....17*x2 ...  [ I  ♦  j:  | Export Setup..  Gráfico dos dados do arquivo 'cap2_dados2..2 *x * 12  D Center and sc ale X data  +  * dataT~M --------.  5...............quadratic  jJE  -----  IE  500  f:iE  is '•«ear  ......> ar p o i iü o m b d s g r a u 1 Select d a ta i data 1  y = 1 ......Vj quadratic P cubic  40  50  I  I .3e+0Q2 y = 0... ß A p ro x im a c a o por polinomio de gt ....... Subplot  Q  Show m  E3 S how Figure Number [  Help  ] I  Close  [  : (  inspector . Exibem dados estatísticos.27*x + 43  y (y!  ----.......  SO  100  spline  -linear residua>s  E  ....  60  70 .Check to display fits o n »igur#___ i j s 3 s plin e in te rp o ia rt :L J s h a p e -p re s e rv in g inte rpo la nt  1000  Cubic spline interpolant y = 17*x-2.............P I 4..  ' n  ji |l  10  20  30 .. Aproxsmacao po...data 2 ----.linear  S:l P I re sidu als  P  ::]□ ii f i f :G ■if |  ....txt': método de interpolação linear com exibição de equações e gráficos de resíduos... quadrática e spline... n 4th deg ree polynomial O 5th deg re e polynomial H 6th deg ree polynomial j Q 7th deg re e polynomial 1f~l 8th deg re e polynomial H 9th deg re e polynomial 0 10th deg re e polynomial  Illiiil F  R S h o w equations Significant d ig is  2  í r  í 1  1P'T  j  Gij Plot residuals i Bar plot  v j  j Subplot  V ...iP ] linear  iE P«  I f ! quadratic ■ H cubic 11 I 4th degree polynomial 5th th 7th 6th  de g re e de g re e de g re e de g re e  ----.. ...d a ta 2  Pic* fits.L j 9 th d e gre e polynomial : :[_] 10th deg ree polynomial  M  i  E S how equations Signitcant digits::....  Gráficos e Handle Graphics®  |  ..  Exemplo: ♦  Gráfico dos dados do arquivo 'cap2_dados1 ...' data 1 'iE 1 E  fe-síduaís  polynomial polynomial polynomial polynomial  ...... 4 0  50  U........ A p f s r i m s c a c ....lineaf -----------.-  H  *  :: Check to display fits on figure : i D spline interpolant shape-preserving interpolant i .....1..... i data 1 P ] Center and scale X data •Plot fits ....txt1: método de interpolação linear......j7j  : i .♦  [-» ]: abre janela de exibição de resultados.V-:  R 1 Plot residuals j Bar plot  0  :V i  18  20  30  40  50  6Ü  70  80  30  .. com exibição de equações e gráficos de resíduos...!2  . Utilitário Data Statistics Estes recursos estão no menu pop-up [Toolsj.  Export Setup.d a ta 2 ----. IlLI [Jilïï[ ' T f 60  70  80  90 !  3S  S h o w norm of residuals ::: E S h o w Figure Number  Inspector....0...... Y) ♦  [Save to workspace]: armazena as informações em uma variável do workspace.6  std: desvio padrão (X.1 1  100 !  I  _ —  1 3 6 .. -  p ia m a —  e g g  min: valor mínimo (X.♦  [Statistics for]: permite escolher o conjunto de dados a serem utilizados.  S ave to w o rk s p a c e .  ♦  [Check to plot statistics on figure]: habilita/desabilita exibição da informação.1..3 1 7  ioo O  1 3 9 .7 5 q  38 .6 5  2 9 . .Fundamentos  .  MATLAB® 7 .Y)  . Funções Gráficas 2D Neste tópico.  ) |  Help  ] [  C lose  )  Exemplo: ♦  Gráfico dos dados do arquivo 'cap2_dados1.9  50 O  7424  50 Q  7 3 .y).5.  5.  Gráficos Tipo 'Plot' s  comet  Trajetória animada do gráfico de (x.  X min max : mean i median i s td 1 range 1  Y  •o  3 . Y) mean: média (X. Y) C heck to plot sta tis tic s on figure:  max: valor máximo (X.Y) median: mediana (X.txt' com todas as informações estatísticas para o eixo Y. listamos as principais funções de gráficos bidimensionais. y): pontos do gráfico ei: vetor de valores de erro inferior es: vetores de valores de erro superior fmt: formato da curva Exemplo: edit: cap5_errorbar_exemplo.ei.pi.y)  S  errorbar  Gráfico de (x.Sintaxe típica: comet(x. es=std(y)*0.20).20).y): pontos do gráfico Exemplo: » x=-2*pi:0.y.*cos(3*x).20). y=cos(x).fmt)  Parâmetros: Entrada (x.m echo on % cap5_errorbar_exemplo( ) x=linspace(0.y) com barras de erro indicadas pelos vetores ei.l*ones(1. errorbar(x. » comet(x.es)  Gráficos e Handle Graphics®  .es.y)  Parâmetros: Entrada (x. » y=x. ei=std(y)*0.ei.01:2*pi.y. Sintaxe típica: errorbar(x.3*ones(1. es.  dist): coordenada polar dada por ângulo em radianos e distância fmt: formato da curva Exemplo: » ang=linspace(-pi. Sintaxe típica: polar( ang.S  hold  Habilita/desabilita sobreposição de gráficos na mesma janela de figura.dist)  MATLAB3 7 . 3 0 ) . 1 .pi. Sintaxe típica: hold on/off  S  polar  Gráfico de coordenadas polares.fmt )  Parâmetros: Entrada_________________________________________________ (ang.Fundamentos  .dist. » polar(ang.3 0 ) » dist=linspace( 0 . fmtl.S  plotyy  Cria gráficos de duas curvas com escalas Y diferentes: 1.x.yl.na direita.2*pi.20).curva com eixo na esquerda e 2.x2.exp(x)) title(1Plot') subplot(1.2) plotyy(x.y1) e (x2. subplot(1.x.sin(x).y2.cos(x).y2): pontos das curvas fmtl e fmt2: formatos da curva Exemplo: » » » » » » »  x=linspace(-2*pi. Sintaxe típica: plotyy (xl.2.exp(x)) title('Plotyy')  .1) plot(x.fmt2)  Parâmetros: Entrada______________________ (x1 .2. Gráficos de Área Preenchida.y) title('Bar1) subplot(1.m % cap5_area_exemplo x=l:6.3) barh(x.Y) barh(m) / barh(x.2) bar(x. Barra e Pizza  s  area/bar/barh  area: gráfico de área preenchida.6)*0. barh: gráfico de barra horizontal. subplot(1.3.y) title('Barh')  .Y) bar(m) / bar(x.Y)  Parâmetros: Entrada_____________________ m: matriz (exibe dados por coluna) (x.1) area(x.1.Y): dados do eixo X e eixo Y Exemplo: edit: cap5_area _exemplo.3. y=sin(x)+randn(1. bar: gráfico de barra vertical. Sintaxes típicas: area(m) / area(x.3.y) title('Area') subplot(1. 0) dentro de eixo polar. nomes={1Jan1 'Fev1 'Mar' 'Abr' 'Mai ’ 'Jun'). ie=[0 1 0 0 1 0] . Sintaxes típicas: pie(x) 7 pie(x. pie(x.ie) pie(x.v)  Gráficos e Handle Graphics®  .ie.labels)  Parâmetros: Entrada x: dados ie: indicador de fatias 'explodidas' labels: nome das fatias Exemplo: >> » >> >>  x=[l 4 2 5 3 2 ] .pie  s  Gráfico de pizza. Sintaxe típica: compass(u.xe.nomes)  G ráficos de D ireção y  compass  Desenha vetores com origem (0. Parâmetros: Entrada_______________________ u: vetor com valores no primeiro eixo v: vetor com valores no segundo eixo Exemplo: » u=[l 0 -1 0] .5 :2 .v)  s  feather  Desenha vetores que deslocam a origem automaticamente.v)  . Sintaxe típica: feather(u.v)  Parâmetros: Entrada u: vetor com valores no primeiro eixo v: vetor com valores no segundo eixo Exemplo: >> u=0:0 . » v=[0 1 0 -1]. » v=u+l. » feather(u. » coinpass (u. 1) surf(Z) title('Superficie1) subplot(2.Y): pontos da 18 coordenada dos vetores (U.*Y.Y.-pi:0.2. Z=cos(X).V): pontos da 2.1.m_______ % cap3_gradient_exemplo () echo on % Gerar superficie [X.0.coordenada dos vetores Exemplo: arquivo cap3_gradient_exemplo.2:pi.V)  Parâmetros: Entrada (X.2). % Visualizacao dos resultados subplot(2.2) contour(Z) hold quiver(PX.2:pi). % Calculo do gradiente % Derivadas parciais da curva [PX.PY) title('Gradientes')  Gráficos e Handle Graphics®_______________________________ _________ ^277^  . desenha vetores de direção bidimensionais.0. Sintaxe típica: quiver(X.PY]=gradient(Z.Y]=meshgrid(-pi:0.U.1.m edit: cap3_gradient_exenplo.■ / quiver Dadas 4 matrizes.   Curvas 3D  s  plot3 / comet3  plot3: gráfico de curva 3D.2.1) stem(x.y: pontos Exemplo: » >> » » » » » »  W  x=-pi:0. Funções Gráficas 3D Neste tópico. comet3: gráfico de curva 3D com exibição de trajetória animada.1.z)  MATLAB ®7-Fundamentos  . stairs: gráfico de degraus. Sintaxes típicas: plot3(x. Sintaxes típicas: stem(x.y) stairs(x.2) stairs(x.y.z) comet3(x. subplot(1.2:pi.y) title('Stem') subplot(1.6.y) title('Stairs’)  5. arrolamos as principais funções de gráficos tridimensionais. y=sin(x).2.Gráficos de Dados Discretos  s  stem / stairs  stem: gráfico de hastes.y.y)  Parâmetros: Entrada x. 1:5 *pi. z=x+y.x+y) title(1Plot31) subplot(1.y)  Parâmetros: Entrada________________ (x.2.1) plot3(cos(x). y=-5*pi:0.2) comet3(cos(x).y): coordenadas da curva Exemplo: » x=-pi:0.y.z): coordenadas da curva Exemplo: edit: cap5_plot3_exemplo. subplot(1.x+y) title(1Comet31)  ■S ribbon Gera um gráfico tipo 'fita' tridimensional. » ribbon(x.Parâmetros: Entrada_________________ (x.sin(y).y)  Gráficos e Handle Graphics®  .1:5*pi. » y=x.*cos(3*x).m % cap5_plot3_exemplo x=-5*pi:0. Sintaxe típica: ribbon(x.1:pi.sin(y).2. 2.1. » subplot(1.Y) barh3(m) / barh3(x.Área e Pizza 3D y  bar3 / bar3h  bar3: gráfico de barra 3D vertical.2) » bar3h(x.1) » bar3(x.2. Sintaxes típicas: bar3(m) / bar3(x.Y)  Parâmetros: Entrada m: matriz (exibe dados por coluna) (x. bar3h: gráfico de barra 3D vertical.y) » title(1Bar3h')  li ■S pie3 Gráfico de pizza.y) » title(’Bar31) » subplot(1.6)*0.Y): dados do eixo X e eixo Y Exemplo: » y=sin(x)+randn(1. Sintaxe típica: pie3 (x)  Parâmetros:  II  . MY. nomes={1Jan1 'Fev' 'Mar' 1Abr 1 'Mai ' 1Jun'}. Se for um vetor.MZ] = cylinder(Raio.N]  Parâmetros:  .MY.nomes)  Malhas e Superfícies y  cylinder  Retorna as matrizes com coordenadas MX.MZ] = ellipsoid(XC. Sintaxe típica: [MX. Sintaxe típica: [MX.Exemplo: » >> >> >>  x—[1 4 2 5 3 2 ] .ZC.YR.ie.N)  Parâmetros: Entrada Raio: raio do cilindro. pie3(x.YC.XR.ZR. ie=[0 1 0 0 1 0]. MY e MZ necessárias para criar um elipsóide. MY e MZ necessárias para criar uma superfície cilíndrica. gera cilindro com diâmetro variável N: número de faces ■ / ellipsoid Retorna as matrizes com coordenadas MX. MY] = meshgrid(X.MZ) mesh(MZ)  Parâmetros: Entrada_______________________________ MX.2. subplot(2.1) meshc(MX.2.MZ) title('Surf 1) subplot(2. MZ: matrizes de coordenadas X.5:pi. meshc: malha com curva de nível.MZ) title('Waterfall')  s  meshgrid  A partir dos vetores X e Y dos eixos. MY. Y e Z Exemplo: edit: cap5_mesh_exemplo. Sintaxes típicas: mesh(MX.MY. cria as matrizes com coordenadas MX.MY.MY. surfc/surf: superfície com curva de nível / com efeito de iluminação. Sintaxe típica: [MX.s  meshc / mesh I surf I surfc / waterfall  Variações de gráficos de superficies.MZ) title('Meshc1) subplot(2.2.m % cap5_mesh_exemplo x=-pi:0.2) surf(MX. MY (resultantes do cruzamento de X e Y).2. necessárias para criar malhas e superfícies. mesh/surf: m alha/superfície.Y)  MATLAB3 7 ■Fundamentos  .MY.4) waterfall(MX.y). [MX.3) surfc(MX.MY]=meshgrid(x.5:pi.MZ) title('Surfc1) subplot(2. waterfall: malha fechada na lateral. MZ=cos(MX)+sin(MY).MY. y=-pi:0.  Sintaxe típica: [MX.0.MZ1) title(1Cylinder') subplot(2.MY.MZ4) title('Sphere')  Gráficos e Handle Graphics®  ( 283  .MZ3]=peaks(10).MY.MY2.20).1.MZ2) title('Ellipsoid') subplot(2.2.3) surf(MX3.3.0.MY4.2.m_____________ % cap5_formas3d_exemplo [MX1.5 1].20).MZ4]=sphere(20).5.MY: matrizes de coordenadas  peaks  Retorna as matrizes com coordenadas MX.MY1.MZ3) title('Peaks') subplot(2.MY3.2.MY1.MZ] = sphere(N)_____________________________________________  Parâmetro: Entrada______________________________________________________________________ N: número de faces_____________________________________________________________ Exemplos: edit: cap5_£ormas3d_exemplo.MZ1]=cylinder([1 0. MY e MZ necessárias para criar a superfície peaks. Sintaxe típica: [MX.MY4. [MX2.0. [MX4. subplot(2.4) surf(MX4. MY e MZ necessárias para criar uma esfera.0.MZ2]=ellipsoid(0.Y: vetores com coordenadas dos eixos s  Saída MX.MZ] = peaks(N)  Parâmetros: Entrada_________ N: número de faces s  sphere  Retorna as matrizes com coordenadas MX.MY2.Parâmetros: Entrada X.MY3. [MX3.2.1) surf(MX1.2) surf(MX2. V.m % cap5_quiver3_exemplo x=-pi:0.V. hold on surf(MX.Y. [U.y) MZ=sin(MX)+ C O S (MY).W).5:pi.MZ) .MZ] = quiver3(X. [MX.MY]=meshgrid(x.5:pi.U. desenha vetores de direção tridimensionais.MZ.Y.V.W)  Parâmetros: Entrada______________________________ (X.MY.MZ)  MATLAB®7.Gráficos de Direção 3D e Dados Discretos v'  quiver3  Dadas 3 matrizes.Z): pontos da 1a coordenada dos vetores (U.Z. quiver3(MX.MY.V.W]=surfnorm(MX.MY.W): pontos da 2a coordenada dos vetores Exemplo: edit: cap5_quiver3_exemplo.MY.U. y=-pi:0. Sintaxe típica: [MX.Fundamentos I  . 2 :2*pi.y.z)  surfnorm  Retorna os vetores normais de uma superfície.NZ: vetores normal  . Sintaxe típica: stem3(x. Sintaxe típica: [NX.NY. y=sin(t).MZ: coordenadas da superfície  Gráficos e Handle Graphics®  Saída NX. stem3(x.y  stem3  Gráfico de hastes 3D.MY.y.z: pontos Exemplo: » » » » »  S  t=0:0. z=x+y. z)  Parâmetros: Entrada x.y.MZ)  Parâmetros: Entrada MX. x=cos(t).NZ] = surfnorm(MX.MY.NY.  preenchida.Gráficos de Curva de Nível s  contour I contourS / contourc / contourf  Desenha curva de nível de superfície.2. Sintaxe típica: c o n t o u r ( M X .p i :0. M Y. M Z ) c o n to u r(M Z )  Parâmetros: Entrada_______________________________ MX.5:pi.2.  .1. y = . contourf: curva de nível em 2D.1) s u r f (MZ) t i t l e (1Superficie 1) s u b p l o t (2.2. MY.5:p i .y). [MX.m % cap5_contour_exemplo x = .p i :0. contour3: curva de nível em 3D. MZ: matrizes de coordenadas X.2. conlour: curva de nível em 2D. Gráficos de Fórmulas Matemáticas •/  ezcontour  Curva de nível de função matemática de duas variáveis. M Z = c o s (MX)+ s i n (MY).MY]= m e s h g rid(x.4) contourf(MZ) t i t l e (1Curvas p r e e n c h i d a s ')  5. Y e Z Exemplo: edit: cap5_contour _exemplo.7. s u b p l o t (2.2) contour(MZ) t i t l e ('Curvas 2D') s u b p l o t (2.3) contour3(MZ) t i t l e ('Curvas 3D') s u b p l o t (2. Gráficos e Handle Graphics®  .Sintaxes típicas: ezcontour (f) ezcontour (f. Sintaxes típicas:  §J  ezmesh (f) ezmesh (f. dom)  :'. Hl  ezm eshc: malha de função matemática de duas variáveis com curva de nível. dom)  Parâmetros: Entrada______________________________ f: função (descrita como cadeia de caracteres) dom: domínio Exemplo: I » ezcontour('cos(x)+sin(y)1) I >> ezcontourf(1cos(x)+sin(y) ')  ezmesh / ezm eshc ezmesh: malha de função matemática de duas variáveis. Sintaxes típicas: ezcontourf (f) ezcontourf (f. dom)  S  ezcontourf  Curva de nível preenchida de função matemática de duas variáveis.  ezplot3: curva de função matemática paramétrica 3D. Sintaxes típicas: ezplot (f) ezplot (f.Fundamentos  . dom)  Parâmetros: Entrada______________________________ f: função (descrita como cadeia de caracteres) dom: domínio Exemplo: » »  ezplot('cos(x)+sin(x)1) ezplot3('cos(x)+sin(y)')  288  MATLAB® 7 .Parâmetros: Entrada f: função (descrita como cadeia de caracteres) dom: domínio Exemplo: | » ezmesh('cos(x)+sin(y)')  s  ezplot / ezplot3  ezplot: curva de função matemática de uma variável. S  ezpolar  Função matemática de uma variável.6 0  1 2 0 ^ "  6 150/  ■--?  /  /  \  \  \  30  2/  21ôV  /  2 4 ( 3 ^ —_  f  21 0  Gráficos e Handle Graphics®  \  33o  . dom)  Parâmetros: Entrada f: função (descrita como cadeia de caracteres) dom: domínio Exemplo: |»  ezpolar('t') 90  8 ^ . Sintaxes típicas: ezpolar(f) ezpolar(f. em coordenada polar.  Sintaxe típica: alpha (factor)  MATLAB 117-Fundamentos  .■ / ezsurf / ezsurfc ezsurf: superfície de função matemática de duas variáveis.1.8. dom)  Parâmetros: Entrada______________ _______________ f: função (descrita como cadeia de caracteres) dom: domínio Exemplo: »  ezsurf(1cos(x)+sin(y) 1)  5. ezsurfc: superfície de função matemática de duas variáveis com curva de nível Sintaxes típicas: ezsurf (f) ezsurfc (f. Acabamento de Superfícies As propriedades de acabamento de superfície podem ser configuradas pelas funções e no editor de propriedades no utilitário [Plot Tools]. •/  alpha  Configura transparência.  Sintaxe típica: colormap(RGB) colormap(Tipo)  l  Parâmetros:  . Sintaxe típica: brighten (factor)  Parâmetro: Entrada factor: -1 < factor < 1 (-1: totalmente sem brilho /1: totalmente brilhante)  S  colormap  Configura mapeamento de cores utilizado para exibir a superfície.Parâmetro: Entrada____________________________ factor: 0 < factor < 1 (0: invisível /1 : opaco) s  brighten  Ajusta intensidade de brilho.  s C o lo r m a p E d ito r  B  TooííEMÊÊÊÊ  m  S ta n d a r d c o lo m ia p s  W L ^  S  colordef  Restaura o mapeamento de cores padrão. Sintaxe típica: colordef(Tipo)  S  hidden  Remove linhas não visíveis de malhas. Sintaxe típica: hidden on/off  Exemplo:  292  MATLAB ® 7 .[Colormap Editor]: menu pop-up [Edit] na janeia de figuras.Fundamentos !  .  Valorl. Propriedade2.1Infinite') % Infinito light(1Style'..■/ light Configura propriedade de luz.1Local1) % Local light(1C o l o r [0 1 0]) % Verde  lighting  Ajusta tipo de iluminação. Sintaxes típicas: material Tipo material ([ka kd ks])  Gráficos e Handle Graphic s®  .)  Parâmetros:  S  Nome da Propriedade 'Position'  Descrição Posição  'Style'  Tipo  'Color'  Cor  Exemplo light{'Position[0 0 1]) light(1Style 1.. Sintaxe típica: light (Propriedadel. . Valor2. Sintaxe típica: lighting Tipo  Parâmetros: Tipo flat gouraud phong none s  Descrição plana (superfície com uma só cor) iluminação graduada iluminação com sombreamento sem iluminação  material  Configura propriedade de reflexo de superfície.  Y=-pi:0. difuso.1) surf(MZ) title('Original1) % Mapa de cor subplot(1.2.y).5:pi.m____ function cap5_render_exemplo ( )  Original. subplot(1.Fundamentos  .2) surf(MZ) title('Com Luz e Sombreamento') colormap bone  Com Luz e Sombreamerjto.MY]=meshgrid(x. Sintaxe típica: shading tipo  Parâmetros: Tipo flat faceted interp  Descrição plana (superfície com uma só cor) por face cor de sombreamento com variação  Exemplo: edit: cap5_render_exemplo. MZ=cos(MX)+sin(MY).2.  % Superficie x=-pi:0 -5:pi. [MX. especular  shading  Define tipo de sombreamento.Parâmetros: Tipo shiny dull metal default [ka kd ks] S  Descrição reflexo especular reflexo difuso reflexo metálico reflexo padrão coeficientes de reflexão: ambiente.  % Luz phong light lighting phong % Sombra interp shading interp  294  MATLAB® 7.   [0  Perpesctive Projection Perspectiva. Visualização 3D A visualização 3D é controlada pelos parâmetros de câmera.5.  Pan/Tilt Camera  Faz o eixo 'orbitar' na janela.1.  ■  Move Camera HorizontaA/ertically  Move câmera na horizontal e vertical. configuráveis pela barra de ferramenta [Camera] (menu [View]) e pelas funções listadas neste tópico.9.  Principal Axes  Define o eixo principal para 'Orbit Cameras' e 'Pan/Tilt Camera1.  Roll Camera  Gira câmera.  S  Orthographic Projection  Projeção ortogonal.  Ä ■  Gráficos e Handle Graphic s®  .  Orbit Cameras  Faz a câmera 'orbitar1em torno do objeto: . arraste e solte) faz o objeto 'girar' com o 'impulso1do mouse.  f  Toggle Scene Light  Habilita/desabilita iluminação. drag-&-drop (clique.  ■t  Move Camera Forward/Back  Move câmera para frente e para trás.  Orbit Scene Light  Faz a luz 'orbitar' em tomo do objeto. -  Click.Click-&-drag (clique e arraste) faz o movimento acompanhar o mouse.  Zoom Camera  Aproxima/afasta imagem.  Esta forma de organização de informações gráficas no MATLAB® é denominada Handle Graphicsi®. cuja estrutura hierárquica é representada pelo diagrama seguinte:  MATLAB® 7. Todos as figuras criadas no tópico 5. Cada instância de um objeto gráfico está associada a um único identificador chamado handle. por meio do qual podemos manipular suas características.  (jjll  Stop Camera/Light Motion  Para movimentação 'orbital' de câmera e luz.1 fazem uso de objetos handle graphics.%  Reset Camera and Scene Light  Restaura câmera e luz da cena.  Funções de Configuração de Câmera c a m d o lly c a m lo o k a t c a m o r b it cam pan cam pos c a m p ro j c a m p r o ll c a m ta rg e t cam va cam zoom  Ação move ponto de vistà e ponto objetivo da câmera visualiza objeto específico ativa câmera em 'órbita' ativa movimentação de câmera horizontal/vertical posiciona vista da câmera muda tipo de projeção (ortogonal/perspectiva) gira câmera posiciona ponto objetivo da câmera configura ângulo de vista da câmera aproxima/afasta imagem  52. na qual subjanelas ( windows) e janelas gráficas (figures) são criadas para implementar seu ambiente interativo. Handle Graphicss® 0 MATLAB® pode ser entendido com um objeto composto por uma janela principal. Objetos gráficos são formas geométricas básicas usadas pelo programa para exibir dados em janelas de figuras.Fundamentos  . 35 0. ♦  [UI Objects]: objetos de interface com usuário (User Interface object) ou UlControl.  Passo 2: criar dois eixos com a função axes e configurar a propriedade 'Position'. Hal=axes('Position'.8]).1 0.1 0.[0.1. Exemplo (arquivo cap5_handle_exemplo.8]).  ♦  [Axes]: eixos [Core Objects]: objetos básicos [axes]: eixo de coordenadas [image]: imagem (matriz) -  [light]: luz [line]: linha ou curva [patch]: polígono preenchido [rectangle]: retângulo [surface]: superfície ou malha [text]: texto  [Plot Objects]: conjunto composto por Core objects [Group Objects]: conjunto composto por Axes ♦  [Hidden Annotation Axes]: títulos e textos de eixos [Annotation Objects]: objetos de anotação (textos)  5.  Gráficos e Handle Graphics®  . Criação de Figuras e Objetos Gráficos As funções de criação de objetos handle graphics retornam um valor numérico que identifica univocamente o objeto criado.Onde: [Root]: janela principal do MATLAB. Hf =figure(l). Cada objeto possui propriedades que podem ser definidas na criação do objeto ou configuradas posteriormente.1 0.m): Passo 1: criar janela gráfica com a função figure.[0.2. Ha2=axes('Position'. Este valor é denominado handle.55 0. [Figure]: janelas gráficas. que serão apresentados no Capítulo 6.35 0. 1:2*pi. 1  .2pi] no primeiro eixo.3. exibir a imagem do arquivo ‘NGJuly2002. axes(ha2). plot(x. axes(Hal).4 0.1 o.  02 0.9 08 0 .  0 .Passo 3: criar f(x) = sin(x).7  06 05 0.jpg1.jpg1). [0. image(a)  298  MATLAB-' 7 .sin(x)) Figure 1 File Edit View Insert Tools Desktop Window Help  #T "km Wn W\11 o n i □ a " 1 ! 0 .Fundamentos . a=imread('NGJuly2002. % Configura o primeiro eixo como eixo corrente x=0:0.5  i  Passo 4: no segundo eixo. Z) path(X.DY): dimensões Cria janela gráfica Cria imagem Cria luz Criar área preenchida  ( 299  .J J M Edit  View  D áH â  Insert  Tools  Desktop  Window  ti s i e i f t ® «  Help  •* |  DB  Esta é a hierarquia dos objetos criados no exemplo:  Todas as funções de criação de objeto gráfico descritas em seguida retornam o handle do objeto criado. Nome axes('Position[XO YO DX DY]) % Janela toda axes(1Position1.[0 Oil]) figure(Indice) image(M) light(X.ö Füe  _______________ B _______ .Y.(X0.(DX.Y0): origem do eixo .Y.Z)  Gráficos e Handle Graphic^®  Descrição Cria eixo na janela corrente: .  -/  delete  Elimina objeto gráfico.2. Manipulação de Figuras e Objetos Gráficos Neste tópico.DY): dimensões Cria superfície Cria texto  5. [XO YO DX DY]) % Retângulo na janela toda rectangle('P o s i t i o n 0 Oil]) surface(X. Sintaxe típica: hlist = findobj(handle.(X0.Y.texto)  Descrição Cria retângulo .vai)  Parâmetros: Entrada handle: identificador do objeto 'pai' prop: propriedade vai: valor  Saída hlist: lista de handles  MATLAEP 7 ■Fundamentos |  .Y.Nome rectangle{1Position'.Y0): origem do retângulo ■(DX.pro.2. apresentamos as principais funções de acesso e identificação de objetos gráficos e as funções de consulta e configuração de propriedades de objeto.Z) text(X. Sintaxe típica: delete (hlist)  Parâmetros: Entrada hlist: lista de handles S  Saída  findobj  Localiza objetos com uma determinada propriedade.  Vamos identificar todos os objetos do tipo Axes e eliminá-los. edit: cap5_findobj_exemplo_____________________________ % cap5_findobj_exemplo cap5_mesh_exemplo % Cria a figura h=gcf.1Axes') % Localiza os objetos 'Axes' delete(hlist) % Elimina todos os elementos  Execução do cap5_mesh_exemplo:  Execução do cap5_findobj_exemplo:  File Edit  View Insert Tools Desktop Window  Q"cS B ô  s  ^ <3.m. f?  I  □  gca  Obtém o handle do eixo corrente. % handle da figura corrente hlist=findobj(h.Exemplo: considere a figura gerada pelo m-file cap5_mesh_exemplo. 'Type 1.  Gráficos e Handle Graphicé1  ( 301  . Sintaxe típica: h = gca  Parâmetros: Entrada  s  Saída h: handle  gcbo  Obtém o handledo objeto cuja função callbackestá em execução (veja próximo capítulo).  Sintaxe típica: | r=ishandle (h)  Parâmetros: Entrada h: handle  302  Saída r: true/false  MATLAEP 7 . Sintaxe típica: h = gcbf  Parâmetros: Entrada  s  Saída h: handle  gco  Obtém o handle do objeto corrente.Fundamentos  .Sintaxe típica: h = gcbo  Parâmetros: Entrada  s  Saída h: handle  gcbf  Obtém o handle da figura cuja função callbackestá em execução (veja próximo capítulo). Sintaxe típica: h = gbo  Parâmetros: Entrada  S  Saída h: handle  ishandle  Verifica se o valor fornecido é um handle válido. 0114 get(hline) % Lista de propriedades Color [0 0 1] EraseMode ’normal' LineStyle ZDataSource get(hline. vai)  Parâmetros: Entrada handle: identificador do objeto 'pai' prop: propriedade vai: valor  Saída  Exemplo: cria o gráfico de uma curva com linha sólida e muda triângulo (arquivo cap5_hg_exemplo.'Type1. prop.  s  set  Configura o valor de uma determinada propriedade do objeto.m). a função retorna um struct com todas as propriedades do objeto.'LineStyle') % Consulta propriedade LineStyle ans =  l i  V /:  Gráficos e Handle Graphics®  . % Obtem o handle da figura corrente hline=findobj(h.^  get  Obtém o valor de uma determinada propriedade do objeto.  ■ ■  m  x=0:0.x+sin(x)) % echo on h=gcf. Sintaxe típica: vai = get (handle) vai = get (handle. prop)  Parâmetros: Entrada handle: identificador do objeto 'pai' prop: propriedade  Saída vai: valor  Observação: se o parâmetro prop for omitido.3 :2*pi. Sintaxe típica: set(handle.'line') % Localiza objeto tipo 'line' hline = 152. % Cria o grafico plot(x.  que é apresentado no próximo. val) set(hline. automaticamente. Edit : View Insert  D Í B S  *  Tools Desktop Window  «  Help.  MATLAB®7-Fundamentos  .'LineStyle1. são capazes de gerar. m-files com as codificações das funções Handle Graphics@ que configuram as propriedades indicadas de modo interativo pelo usuário.pause set(handle. quanto o utilitário GUIDE. :  0 0  “ D  Depois do pause  Tanto o utilitário [Plot Tools]. prop.1>’)% Modifica  Antes do pause  File. apresentado neste capítulo.  pela função display. A entrada de dados na linha de comando é implantada pela função input. apresentamos os recursos disponíveis no software para desenvolvi mento de interfaces com usuário mais sofisticadas.Criação de Interface Gráfica com Usuário Conforme indicado no tópico 2. o que possibilita a construção de programas com interface com usuário mais amigável. o modo de interação mais simples é o disponibilizado na própria linha de comando do MATLAB® 7. e a saída.titulo)  Criação de Interface Gráfica com o Usuário  .  6 .9. » titulo='Erros de comando'. que exibem caixas de diálogo. Neste capítulo. C a ix a s d e D iá lo g o O MATLAB® 7 provê funções práticas e de fácil implementação. Sintaxe típica: errordlg(Msg. » errordlg(msg.Titulo)  Parâmetros: Entrada________________________ Msg: mensagem de erro Titulo: título da caixa de diálogo Exemplo: » msg='Comando Inválido'.1 .  s  errordlg  Exibe caixa de diálogo com mensagem de erro. Fundamentos  . » helpdlg(msg. Titulo: título da caixa de diálogo Exemplo: » msg=’Forneça apenas números1.Titulo)  Parâmetros: Entrada__________________ Msg: mensagem de ajuda.jpg')  li  306  MATLAEP 7. » titulo='Dicas'. Sintaxes típicas: imageview(arquivo) imageview(m)  Parâmetros: Entrada_______________ arquivo: arquivo de imagem m: matriz de imagem Exemplo: >> imageview('NGJuly2002.titulo)  S  im ageview  Exibe caixa de diálogo de visualização de imagem. Sintaxe típica: helpdlg(Msg.C om ando Invá lido  HH1  s  helpdlg  Exibe caixa de diálogo com mensagem de ajuda. .... ....... ! NGJuly2002 jpg s a fc a  ..■S inpudSg Exibe caixa de diálogo de entrada de dados..... » nome=1Nomes dos Arquivos'.....  |c a p 3 .val2......jpg'  S  entrada .prop2. ...jp g  listdlg  Exibe caixa de diálogo de entrada de dados por lista..1  ...nome)  Parâmetros: Entrada prompt: cellarray com mensagens de prompt nome: título da caixa de diálogo Exemplo:  Saída dados: cell array com os dados digitados  N ô R íe s d o s A r q u iv o s  >> prompt={'Entrada' 1Saida')...jpg' 1cap3.....)  Criação de Interface Gráfica com o Usuário  M  .... Sintaxe típica: dados = inputdlg(prompt........II I..nome) dados = 'NGJuly2002..vall.ok] = listdlg (propl.................... » dados=inputdlg(prompt. Sintaxe típica: [sel.......... ...O K  1 1 C ancel )  .. . .. % Nomes do arquivo [sel.jpg jexercicio5... 'Cancela'... end Arquives JPG JPG no diretorio co rre n te icsp3. . . image(a). .jpg no diretório corrente.[160 100].. default [160 300] índice do valor inicial título da caixa de diálogo texto de prompt nome da tecla 'OK' nome da tecla 'Cancel' modo de seleção: 'single' / 'multiple1  Exemplo: seleciona o nome de um arquivo *. % Tecla OK 1CancelString1.. % Primeira opcao 'Name'.jpg jpgnames={djpg. edit: cap6_listdlg_exemplo % cap6_listdlg_exemplo function cap6_listdlg_exemplo( ) djpg=dir('*. % Lista de opcoes 1ListSize'..jpg . 1ListString'.redeyedfrog. % Prompt 'OKString1. . ..JPG  308  MATLAB® 7 .Fundamentos  .Parâmetros: Entrada prop: propriedade vai: valor Propriedades 'ListString' 'ListSize' 'InitialValue' 'Name' 'PromptString' 'OKString' 'CancelString' 'SelectionMode'  Saída sei: índice da opção escolhida ok: 1 (ok) ou 0 (cancel) Valor cell array contendo a lista de opções tamanho da lista em pixel. .jpg1).ok] = listdlg ( . % Tamanho da lista 'InitialValue 1. % Exibe a imagem figure. 'single'). % Modo de selecao if ok == 1 % Verifica retorno OK a=imread(jpgnames{sei}).. % Tecla Cancel 'SelectionMode'. 1..'JPG no diretorio corrente'..'Arquivos JPG'.. % Struct contendo os arquivos *. 'Exibir'..name}. % Titulo da caixa de dialogo 'PromptString'.. . jpgnames. titulo)  s  pagesetupdlg/printdlg/printpreview/printopt  Exibe as caixas de diálogo Windows like para impressão.•/  m sgbox  Exibe caixa de diálogo com mensagem.jpg'). É possível soli citar a impressão da figura a partir dessas caixas de diálogo. >> titulo=1Máquina'.Titulo)  Parâmetros: Entrada__________________ Msg: mensagem Titulo: título da caixa de diálogo Exemplo: » msg=computer. >> image(a). Exemplo: a=imread('NGJuly2002. Sintaxe típica: msgbox(Msg. » msgbox(msg. » pagesetupdlg » printdlg » printpreview » printopt  Criação de Interface Gráfica com o Usuário  309  .  Sintaxes típicas: soundview(arquivo) soundview(S.default)  Parâmetros: Entrada Msg: mensagem de ajuda Titulo: título da caixa de diálogo B1: string do botão 1 B2: string do botão 2 default: string default  Saida r: string botão selecionado  Exemplo: » perg='Continua processo'.b2.s  questdlg  Mostra caixa de diáiogo com pergunta. Sintaxe típica: r = questdlg(Msg.default) r = Sim  s  Pergunta  d  ^  flc]  Continua processo  I Slm II I Nao I  soundview  Exibe caixa de diálogo de visualização de arquivos de áudio (e execução).Titulo.titulo.Fundamentos  . » r=questdlg(perg.BI.B2 . » default=’Sim'. Fs: matriz de sinal e valor de freqüência Exemplo: » soundview('TestSnd.Fs)  Parâmetros: Entrada arquivo: arquivo de áudio S.bl. » bl='Sim' . » b2=1Nao1.wav')  310  MATLAEP 7 . » titulo='Pergunta'. bmp.jpg e *.  .2000 4000 5000 8000 10000 12000 14000 16000 18000  s  uigetdir/uigetfile/uiputfile  Exibem as caixas de diálogo Windows like de acesso a arquivo. Retornam nome de arquivo. Exemplo uigetfile: exibe arquivos *. ...5020  »  Cokzs »  0.5020  f = uisetfont  f = FontName FontUnits FontSize FontWeight FontAngle  s  'Arial1 'points' 12 'normal1 1italic'  waitbar  Exibe caixa de diálogo com barra de tempo de execução.MsgrTitulo) wai tbar(N... ta r.Save õs type: |* jp g  s  •: ■ 1 ▼j  ' Save Cancel:  I j | I j |  uisetcolor/uisetfont Basic colors:  _  Exibem as caixas de diálogo Windows like de configuração de cor e fonte de texto...handle)  312  MATLAEP 7 .. | .....Escolha arquivo  3  Save ire j £ 3 work  a  c r n -  |Íf« p 3 era005 £É?*S:3uíy2QÜ2 $8§redeyedfrog  -  uiputfile(tipos..V..... Sintaxes típicas: handle = waitbar(0...Fundamentos  ...titulo....default) I R enam e: 1: : i ..........r: c  y  r aaa a  ■■■■■■■■ m mmmmr m r r r _r r r r r r  » r = uisetcolor  Define Custom  0....... Sintaxes típicas:  ...  Sintaxe típica: warndlg(Msg.h).'Em execucao.Titulo)  Parâmetros: Entrada Msg: mensagem de erro Titulo: título da caixa de diálogo Exemplo: >> msg='Divisão por zero’ » titulo='Alerta'. » warndlg(msg.Parâmetros: Entrada______________________________ Msg: mensagem Titulo: título da caixa de diálogo N: valor entre 0 e 1 (% da barra a ser exibida) handle: identificador do waitbar Exemplo: edit: cap6_waitbar„exemplo_____ % cap6_waitbar_exemplo function cap6_waitbar_exemplo () h=waitbar(0. aguarde for i=l:50 waitbar(i/50. contour(z) end close(h)  s  warndlg  Apresenta caixa de diálogo com mensagem de aviso. z=rand(10).titulo)  Criação de Interface Gráfica com o Usuário  D iv is ã o por zero  CE3  S-  .  Entrada Interativa de Dados O MATLAB® 7 possui funções de entrada interativa de dados em figuras. Sintaxe típica: [X.2.y]=cap6_ginput_exemplo(3) Entre 3 pontos.']).Y]: coordenadas  Observação: a figura deve estar aberta antes da chamada da função e a tecla <ENTER> interrompe a execução da entrada de pontos. [x.6.10)) display([1Entre 1 num2str(n) 1 pontos.y]=cap6_ginput_exemplo(n) plot(rand(l. S  gsntput  Aceita pontos indicados na figura.'*')  Execução: » [x.y.____________ Exemplo: edit: cap6_ginput _exemplo______________ % cap6_ginput_exemplo function [x.Y] = ginput(n)  Parâmetros: Entrada n: número de pontos  Saída [X. hold plot(x.y]=ginput(n).  ti  MATLAEP 7■ Fundamentos  . 1 0 )) txt={'Primeiro 1 'Segundo' 'Terceiro' gtext(txt)  Execução: »  cap6_gtext_exemplo  .  . posiciona vários textos. Sintaxe típica: gtext(txt)  Parâmetros: Entrada txt: texto a ser posicionado Observação: se txt for um string.y]=cap6 _gtext_exemplo( ) p l o t (rand(1 .s  gtext  Posiciona um objeto texto no ponto indicado na figura. Exemplo: edit: cap 6 „gtext_exemplo function [x. Se for um cell array.  Criação de Interface Gráfica com o Usuário  1 Quarto  1}. posiciona um texto. j j  . cria uma figura.______________________ Exemplo: » k=waitforbuttonpress k = 0 » »  k=waitforbuttonpress k = 1  S  % botao de mouse  % tecla <Enter>  waitfor  Suspende a execução da função até que o objeto fornecido tenha sido eliminado. caso contrário. waitfor(h) % Espera que ele seja eliminado plot(rand(1. % Desenha um grafico waitfor(h) % Espera que ele seja eliminado h=msgbox('Grafico anterior eliminado. espera que seja lida e eliminada. Sintaxe típica: waitfor(h)  Parâmetros: Entrada_____________ ______ __________________________________________________ h: handle do objeto a ser eliminado Exemplo: mostra um gráfico.s  waitforbuttonpress  Espera o pressionamento de uma tecla ou botão do mouse.10)) %Desenha outro grafico  316  MATLAB ® 7 . Sintaxe típica: k = waitforbuttonpress  Parâmetros: Saída k: 1 (tecla) / 0 (botão do mouse) Observação: essa função supõe que o cursor esteja sobre a área de uma figura que já esteja aberta. exibe mensagem.Fundamentos  . espera que ele seja eliminado. e mostra outro gráfico. edit: cap6_waitfor_exemplo______________________________ function cap6_waitfor_exemplo ( } h=surf(peaks). Pronto para desenhar o proximo'). Execução: »  cap6_waitfor_exemplo  Eliminar  3 cí h a ; £>::  b ® v. [Ó B “ 3  6.3. Utilitário GUIDE GUIDE - Graphic User Interface Design Environment é um utilitário do MATLAB® 7 que permite criar objetos de controle de interface com usuário, UlControl(mencionados no tópico 5.2) em janelas gráficas, com interação no estilo 'Visual Basic'. As janelas gráficas criadas pelo GUIDE são armazenadas como arquivos de figura (*.fig), e são utilizadas como 'painéis de entrada de dados' para funções callback, conforme apresentado no Capítulo 2. Neste tópico, complementamos essas informações com a apresentação dos outros objetos UlControle de suas propriedades. Para acionar o GUIDE, digite:  A janela do GUIDE é composta por duas pastas: [Create New GUI]: 4 opções para criação de uma nova janela. GUIDE Q u ic k S ta rt  B  ( Create New GUI j Open Existing G U I. |  ♦  [Blank GUI (Default)] - em bran co (padrão).  GUIDE tem plates an-c Ou: ■4k GUI with Uicontrols GUI with Axes and Menu Modal Q uestion Dialog  □ Save on startup as  |  Preview MÊ  •  •. ■  ■  \  ,  ;:  [  OK  |i  i  C a n c e l^ ]}  Help  ]  GUJDF. Q u ic k S tart Create New GUI j Open Existing OUI GUIDE templates Blank GUI (Default)______  ♦  [GUI with Uicontrols] - com objetos Uicontrols (a janela é inicializada com os objetos exi bidos).  4 X GUI wtlh Axes and Menu  <• Cngfcsh u n i system  Modal Question Olalcg  M ^ V ,0  ï «  C SJ. un * system  0 .  Catc m * f.  I  OK  [  OK  Reset  I j Cancel | f  Help  GUIDE Q u ic k S ta rt Create N ew GUI  ♦  j Open Existing GUI j  [GUI with Uicontrols] - com objetos Axes (eixos) e a menu (a janela é inicializada com os objetos exibidos). □ Save on startup as: j  s  ~] I  C ancel  ][  H elp  MATLAB® 7 - Fundamentos :  SUIOFiluidcSîrtîï  GUIDE tem plates 3lank GUI (Default) GUI with Uicontrols :- 4 \ GUI with Axes ar.d Menu  <s> [Modal Question Dialog] - deter mina perguntas.  I  Q<  j|  Cancel  |[  Help  j:  [Open E xisting GUI]: abre GUI existente (*.fig). G U ID t Quick S ta rt ; Create N ew GUI J  Open Existing G U I;  Recenfy opened files:  ♦  ♦  [Recently opened files]: arqui vos *.fig recentemente usados [Browse]: permite procurar ar quivos *.fig  c:\m atIab7\worlAEx8m plo2.fig <4*. c:\m atlab7\w orW E xem plol .fig ■4à e:\matlab7\worW circuito02.iig c:\matlab7\worW circuito.Iig F:\m atlab6p5p1\w orW opcoBS.fig ^  f:\M ATLAB6p5p1 \worWgrafico.flg  ^  f:\M ATLAB6p5p1 Iw ortòcam inhos.fig  Browse...  Cancel  jj  I  Help  Para apresentar os recursos do GUIDE, trabalhamos com a opção [Blank GUI (Default)], que exibe esta janela composta pelos elementos descritos a seguir:  1 I  Criação de Interface Gráfica com o Usuário  A. [Menu Pop]: menu pop-up com opções de comandos. B. [Toolbar]: barra de ferramenta de auxílio. C. [Component Pallete]: barra dos ícones de objeto de controle. D. [Layout Area]: área na qual os objetos gráficos são criados.  6.3.1. Menu Pop-up do GUIDE Os principais recursos dos menus pop-up do GUIDE são: Menu  Opções f f f ! ! E dit  File  View  Layout T ods  He^t  Hëw  C tri-fN  O p e n ...  C trl-tO  Close  C tri-fW  S ave  etrf+s  S ave A s ,..  Conteúdo Acesso a arquivos *.fig: New/Open: cria/abre arquivos. Close: fecha arquivos. Save/Save As: armazena arquivos. Export: exporta arquivos.  E x p o r t. .. P re fe re n c e s ... P r in t ..  C trl 4P  Preferences: configura preferências. Print: impressão.  Layout U ndo R e do  Edit  Tc  C tri+ Z C tri+ Y  C u t:  C tri+ X  C o py  C trt+ C  P a s te  C tri+ V  Cut, Copy, Paste, Paste Special Select All, Delete  Clear S e le c t AS C trl4 A  Duplicate: duplica objeto.  D u plic a te C t)l4 D  la y o u t.  View  Tools  P ro p e rty In sp ector O b je c t Browser M -file Editor Viev* Callbacks  dição 'padrão Windows': Undo, Redo  He  Visualização de informações: Property Inspector: editor de propriedades. Object Browser: browser da hierarquia dos objetos criados. M-file Editor: abre edit. View Callbacks: lista funções callback. Auxilia posicionamendo de objetos: Snap to Grid: habilita/desabilita grade.  Layout  B rin g to F ro n t  C tri+ F  Send to Back B ring Forw ard  C tri4 B  S en d Backw ard  Bring to Font/Send to Back/Bring Forward/Send Backward: configura ordem de exibição dos objetos.  MATLAB® 7-Fundamentos  Menu  Opções  m m  Conteúdo Ferramentas auxiliares: ♦ Run: executa o programa.  ndp  ■Run  C tri+ T  ♦  Align Objects: alinha objetos.  ♦  Grid and Rulers: configura grade e régua.  ♦  Menu Editor: editor de menus.  ♦  Tab Order Editor: editor de [TAB],  ♦  GUI Options: opções do GUIDE.  A5gn O b je c ts ,..  Tools  G rid a n d R u le rs .. ■ Menu E d ito r... T ab O rd e r E d ito r... GUI O p tio n s ...  pm Help  I  Using the L a y o u t Editor  I  C reating GUIs  Textos de ajuda.  6.3.2. Barra de Ferramentas do GUIDE Na barra de ferramentas temos os ícones seguintes.  Icone  Nome  Ação  New figure  Cria nova figura  Open file  Abre arquivo  Save  Armazena arquivo  Cut/Copy/Paste/Redo/Undo  Edição padrão 'Windows'  Align Objects  Alinha objetos AlignO b jec ts  BBS  V e rtic a l  Os objetos podem ser alinhados vertical e horizontalmente. r E possível determinar:  °rr I QfP13ns| Qpg| Ia-: Ia-1  A lig n  DiStriDjte  Q Set spacing :  p;xels  H o rlz o rta f  ♦  [Align]: tipo de alinhamento;  ❖  [Distribute]: distância entre os objetos.  Distribute  f l Set S p a c in g ; [  Criação de Interface Gráfica com o Usuário  ^ Ï F T Ï I "li qj}jppjoç]|qq  Align  OK  J[  :pisreis A u p ly  1[  C ancel  Menu Editor  Editor de menu  Define menus pop-up e contextuai na janela que está sendo criada no GUIDE. A janela do Menu Editor é dividida em duas partes: ♦  [Menu Bar/Context Menus]: contém duas pastas nas quais podemos configurar a hierarquia dos menus (título, opções e subopções).  ♦  [UIMenu Properties]: configura propriedades do objeto do menu. [Labei]: nome. [Tag]: propriedade de identificação utilizada pelas funções callback. [Accelerator]: tecla de acesso rápido. [Separator above this item]: habilita/desabilita separador. -  [Check mark this item]: habilita/desabilita marca no item.  -  [Enable this item]: habilita/desabilita acesso ao item. [Callback]: configura função callback do item. [More options]: abre o editor de propriedades no qual é possível configurar outras características como cor, fonte de texto, etc. Pasta [Context Menus]  Pasta [Menu Bar]  '  rj e '"-i m  ’1  UtMenu Properties  ~  *  t l  *  '  0 - I MC.oròftxIMftí*) Properties  ....... 1  : \ \ Label: j Untitled 1  L IM P E I  la g : ; Untt>ed_4  Untitled 2  L - (§] Untitled 3  Tag’  CaDbatlc: % aU om atic  ; U n title d j  A ccelerator: Ctrl +: None  (  V ie w  j  More o p tio n s »»  'j  j  Seçar « o r aoove nvs «<  O-ieck  y«s ^ c n  tn s b ie tfiis tem  Menu Bar p C o n tê x t Menus  Caftftacic guKJsta(gcbo)) J View I' CK ~]  1 Menu B a r !  [ Tfeb  Context Menus  \ (  Õ*  j  {  j  j  Na barra de ferramenta do Menu Editor, estão os comandos de criação e posicionamento dos objetos.  ♦  [New Menu]: cria novo menu pop-up.  ♦  [New Menu Item]: cria nova opção no menu.  ♦  [New Context Menu]: cria novo menu contextual.  ♦  [Move Selected Item Backward]: volta um nível.  MATLABS 7 ■Fundamentos  ♦  [Move Selected Item Forward]: avança um nível,  ♦  [Move Selected Item Up]: sobe uma linha. [Move Selected Item Down]: desce uma linha.  ♦  [Delete Selected Item]: elimina item.  Por exemplo, a configuração no Menu Editor, à esquerda, gera a interface à direita. Menu Editor  up- f ] Menu 1 j  -UlMenu Properties -  I ,  !Label: j Opcao2  I  Opcao 1  ^ -ft.O p c a o t  j Tag:  Í Ó - f ] Menu 2 ü*! Opcao 1  | Urrtrtled_5  : A c c e le ra to r : C trl +; N o n e C  S e p a ra to r a b o v e th is item  jj G  C h e c k m a rk th is item  j! B  E n a b ie th is item  i . C aB baclcj %a>iomatic  Menu Bar j Context Menus  J  V ie w  )I  Editor 'Tab Order'  Tab Order Editor  &  Opcaó 1 Opcao 2  Define a ordem dos objetos que a tecla [TAB] deve seguir. A configuração determinada na figura faz com que a tecla [TAB] siga a ordem indicada pelas setas. A ordem é definida pelos ícones: L ; __ Z  n  M-fiie Editor  -  Abre edit  Abre o edit com o código do m-fiie gerado peio GUIDE. Criação de Interface Gráfica com o Usuário  .  ..W u ic o n tro l (e d it3 "Edit Text3")  >-  -  S  Run  Executa o programa  MATLAEP 7 ■Fundamentos  .........t .. j..t.. sp■Extent :: i t j + t t i FontAngle í 1 f í ■ i ' h ... j ... L U-.. ^  r« < *  U yjM l  □ 20 r*i IM  100  BO  ra I-  m  0  : í»&'  m  190  180  220  260  300  340  990  420  460  500  -540  M-  1 i í M .[ ” *•..  |  (▼) normal MS Sans Serif V  Podemos dividir as propriedades dos objetos de controle em dois grandes grupos: ♦  Formato: abrange as propriedades que configuram a 'aparência' do item. • Callback • f •• t :: r. ...gc  :  Q on . BusyAcllon fp ButtonDownFcn *».. 1. CreateFcn .... Por exemplo..:..  ♦  Controle: abrange as propriedades que configuram o tipo de ação que o item vai controlar.. ....Cailback-.... i L...1..... •  BackgroundColor BeíngDeleted GS3 m S.. [String]: dado fornecido pelo usuário. todos os parâmetros de cor e tipo de texto.FontName • 1 : : :•  ( ç f jl  I Edit Text2  1  I  A  [▼} queue §§ untitíedCedltí. CData $' • * r . í .. .. •• DeieteFcn Enable i 1. ..gcb g on untit!edCedit4_CreateFcrV.... .............i ----*: Clipping .......... -  [Tag]: identificação do objeto.i— 1— t .r p r ---... t . * . Por exemplo: [Callback]: função callback do objeto..  ..Property Editor  Abre editor de propriedades  Abre o editor de propriedades do item selecionado. [Style]: define o tipo de objeto de controle.. .. T -. ... 1....  W  ulcontiol (idlW 'Edit TèxW)  > í Edit Text4 ■ ■■ * .......  ô-  Object Browser 'ê  Exibe a hierarquia dos objetos  Object Browser  &HÜ1 fig u r e (u n titled )  Wifeuimenu  (Menu 1) uimenu (Henu 2) u ic o n tro l ( e d i t l "Edit Textl")  KSBT u ic o n tro l (e d it2 "Edit Text2") j .......  A opção [Show names in component palette].  [Ü0 Push Button  | .3. E lem entos do [C om ponent Pallete] Seleciona objeto a ser editado A criação de figuras (representações dos objetos) no GUIDE segue a mesma interação de outros editores gráficos do Windows: clique do botão esquerdo do mouse indica ponto. clique-arrasta define ou modifica dimensões. configura o formato de exibição dos ícones de objeto de controle.  GUIDE P referen ces  SB G e n e r a l 8 8 F o n ts  1*  C o lo r s SB C o m m a n d V M n d o w  |rw i a n^l  fÿ? 1  off  P I S h o w to o lb a r  C o m m a n d H is to r y !S  E d ito r jD e b u g g e r 0  H e lp  p lf  im ù  W eb  ra j  W o rk s p a c e  |u n ia í l 1íitü  S h o w n a m e s i n c o m p o n e n t p a tq t t g  | ( 3 S h o w f i le e x t e n s i o n in w i n d o w t itle  C u r r e n t D ir e c to r y A r r a y E d ito r  C ] S h o w file p a t h in w i n d o w title  on  0 C heck Box  W E dit Text  3pop-up Menu $Listbox 1 Toggle Button  I F ig u r e C o p y T e m p la te  i SS h o w aS fBes in file o p e n d ia lo g  In s tr u m e n t C o n t r o l  Iff. Esta opção seleciona o objeto a ser editado tanto na aparência (dimensões e reposicionamento) quanto no conteúdo (o botão direito do mouse abre menu contextuai de propriedades).6. A x e s  \ê x p ) S h o w s a v e c o n fir m a tio n o n a c t iv a t e  R  S h o w s a v e c o n fir m a tio n o n e x p o r t  Button Group X ActiveX C ontrol  Passaremos a usar a exibição dos ícones com nomes para mostrar como configurar as propriedades de controle de cada um desses objetos. Botão de comando  Propriedades de controle: Nome Callback String Tag  Criação de Interface Gráfica com o Usuário  Descrição nome da função callback nome que aparece no botão identificador do objeto  . Objetos de Controle Na barra [Component Pallete]. disponível na opção GUIDE do comando preference.3. temos os ícones de objeto de controle que vão ser posicionados na área de trabalho [Layout Area].  f ttBCCibã n a æ d ’CALLBACK i n CA?6 PüSHBOTfOM EXEHPLO.a. Il víjjj 5cap6_pushtouttori_exem p)o  Execução: >> cap6_pushbutton_exemplo  I  326  MATLAB® 7.'iii % C A P Í^ P iT S iís u r r a ^ E X E H P L O .Exemplo: cap6_pushbutton_exemplo.-ject-..surf(peaks)  fiq u re . s u r fip e a k s )  Arquivo gerado automaticamente pelo GUIDE: cap6_pushbutton.h(^.Fundamentos  .hs .Vs t o  :  e x i s t i n g s in g le t o n * .. CÀT'6_T'í.event-i)ât.5H3üTTCii_I'X£H?LO(: CALLBACK’ .\jl€tC-Í!*.  im it  J u n c tio n va ra r g o u t » cap 6_p u sh bu tton_exem p lo(varargin) % CAP6_PUSH8UTTON_£X£KFLO H . c r e a t e s « new C A P 6  *  3Ír.m  m Rte  Edit  T ext  Cet  Tools  D ebug  D esktop  W in dow  H elp.  ÜGÊS! . by i t s e l í . H -  CAF6_PUSKBi3TtOK_S:iEKPLO r e t u r n s t h e h a n d .i i i e 2or cap 6_pushbutton_e . Objeto: Push Button Propriedade Valor__________ Callback ■  figure.m. 0  Step  [0.0]  V a lo rf)  1.'t e x t l '). 'Tag'. % Transforma em texto o b j = f i n d o b j ( h .m________________________________________  function slider_callback ( ) h=gcf. % Localiza objeto 's l i d e r l 1 v a l m a x = g e t ( o b j . % Obtem valor indicado st r= n u m 2 s t r (value). 'Tag'.s t r ) .01 1.  Propriedades de controle: Nome  Descrição  Callback  nome da função callback  Max  valor máximo  Min  valor mínimo  Step  tamanho do cursor da barra (x. % Obtem valor minimo v a l u e = g e t ( o b j V a l u e '). % Exibe valor no objeto 'textl'  Objeto: Slider  Objeto: Static Text  Propriedade  Valor  Propriedade  Valor  Callback  slider_callback  StringO  1. 'Min').s  fc? Si|::ier______ .5  Min  1. 'Max'). % Obtem valor máximo v a l m a x = g e t ( o b j .5  Max  2. % Localiza objeto 't e x t l ' s e t (obj.  .5  Tab  slide 1  (*) Este parâmetro do objeto Static Text recebe o valor devolvido pelo Slider. % Figura corrente o b j = f i n d o b j ( h .'S t r i n g '.'s l i d e r l 1).Barra de valores.0  Tag  1.y)  Valor  valor retornado pelo objeto  Tag  identificador do objeto  Exemplo: edit:  slider_callback.  'Tag'...Execução: »  cap6_slider_exemplo  W W W  cap6_slider_exemplo  i i s i *  Meng I Menu 2  SLIDER  SLIDER jJ.0  ..7267  1.t. 'i 2. Propriedades de controle: Nome  Descrição  Callback  nome da função callback  Valor  valor retornado pelo objeto  Tag  identificador do objeto  Exemplo com objeto radiobutton: edit: radio_callback... % Obtem valor indicado if value == 1 m s g b o x ('O N 1) else m s g b o x (1O F F ') end  Objeto: Radio Propriedade  Valor  Callback  radio_callback  String  BOTAO 1  Valor  0  Tag  radiobuttonl  MATLAEP 7 . v a l u e = g e t ( o b j V a l u e ').  0 CheckBox I Toggle Button  I  jJ 1Í Z I  . % Figura corrente o b j = f i n d o b j ( h .0  -I  1. 1.. 1radi o b u t t o n l ’).Fundamentos I  .5  f ) Radio Button  % |ft“  Menu 1 Menu 2  Opção 0/1 (botão de rádio on/off) Opção 0/1 (caixa on/off) Opção 0/1 (botão on/off)  Esses três objetos têm comportamento e interação semelhantes e são utilizados como subitens do objeto ButtonGroup..0  J.m___________________________ function radio_callback ( ) h=gcf. caiiback.m  function ed it_ callb ack ( ) % V e r if ic a se o te x to é v a lo r num érico p o s itiv o h=gcf. % Dado d i g i t a d o v a l o r = s s c a n f ( s t r .Caixa de edição de texto. otherw ise if valor < 0 e r r o r d l g ( ' V a l o r NAO p o d e s e r MENOR QUE Z E R O ' ) else w a r n d l g ( ' VALOR A C E I T O ! ' ) . 1S t r i n g ' ) . 1T a g ' . capS_edit_exempiofeúin.  Criação de interface Gráfica com o Usuário  329  .Execução: I»  cap6_button_exemplo  s  W E d it T e a -:  . 1 e d i t l ' ) . % O b j e t o e d i t l s t r = g e t ( o b j . ' % f ' ) . c a s e '' e r r o r d l g ( ' V a l o r NAO p o d e s e r A L F A N U M É R I C O ' ) .  Propriedades de controle: Nome Callback String Tag  nome da função callback conteúdo do texto identificador do objeto  Exemplo: edit:  edit  callb ack . % Figura co rrente o b j = f i n d o b j ( h . end end  Objeto: Edit Text Propriedade Callback String Tag  Valor edit_callback 1 editl  Eãr-Property Inspector  queue  edit. % T e n t a o b t e r um n u m e ro sw itch v a lo r case 0 e r r o r d l g ( ' V a l o r NAO p o d e s e r Z E R O ' ) .  1s u m m e r '. 'popupmenul'). 'autumn'. r*---s "•n *n  ✓  !SI Static Text  ■Texto estático (de anotação).  y  H3 Pop-up Menu  Menu pop-up  Propriedades de controle: Nome CreateFcn String Tag Value  Descrição função de criação em que as opções são definidas cell array/icoluna.'S t r i n g '. 'cool'..'Tag'. s e t (o b j . % Figura corrente obj = f indobj(h. 'hot'. edit: popup_create.m ______________________________________ function p o p u p _ c r e a t e ( ) h=gcf. 'spring'. % Objeto popupmenul cores= { 'default'..'w i n t e r ’ }.  Propriedades de controle: Nome String  Descrição conteúdo do texto  Exemplo: veja o exemplo do objeto Slider. 'bone'.c o r e s )  Objeto: Popupmenu Propriedade CreateFcn String Tag  Valor popupcreate 1 popupmenul  . com os nomes das opções identificador do objeto índice da opção escolhida  Exemplo: exibe surf(peaks) com mapa de cores definido no menu pop-up.Execução: »  cap6_edit_exemplo  Valor > 0  i  sacf  ^  V«^MOpode*wALrANUMERICO  . . sh)  Criação de Interface Gráfica com o Usuário  .Menu de lista de opções.  Propriedades de controle: Nome CreateFcn String Tag Value  Descrição função de criação em que as opções são definidas cellarray coluna.m function list_create( ) h=gcf. % Figura corrente obj=findobj(h. set(obj. com os nomes das opções identificador do objeto índice da opção escolhida  Exemplo: exibe surf (peaks) com mapa de cores definido no menu pop-up e sombreamento pelo listbox. 1INTERP1}. edit: list_create. % Objeto listboxl sh= { 'FLAT 1. indice=get(obj.m function cap6_popup_callback( ) h=gcf.'String'. ’String’).'popupmenul1). ’Value 1). % Figura corrente obj=findobj(h. figure.edit: cap6_popup_callback. % Objeto popupmenul cores=get(obj.'Tag'. 'FACETED'. 'listboxl').'Tag'. surf(peaks) colormap(cores{indice))  Objeto: Push Button Propriedade Callback String  Vaior cap6_popup_callback OK  spring summer winter  Execução: »  ■/  default autumn  cap6_popup_exemplo  i l Listbox  .   Jdefault  180  JFLAT ■{f a c e t e d  % R adio Button  ' jlNTERP  iiae  OK jft Í A x e s  edit: cap6_list_callback. ob j = f indobj(h.  ■ ■ ■ ■ Insert Tools Desktop W indow Help t*  0  1 1  W  H  ''  r -  iS f x l  m O  m  MATLAB ®7-Fundamentos  .m function c a p 6 _ l i s t _ c allback( ) h=gcf.'Tag'.'Tag'. 'V a l u e '). % Objeto popupmenul cor e s = g e t ( o b j . % Objeto listboxl sh=get(obj. i n d c o r = g e t (o b j . 'Value'). shading(sh{indsh)). 'String'). 'String'). 'popupmenul' i. 'listboxl').Objeto: Listbox  ' cap6Jist_exemplo.fig He  Propriedade CreateFcn String Tag  Edit Vtew Layout Took  B B 8 Heip  D & W ' » ' •5A •  Valor list_create 1 listboxl  140  !. figure. % Figura corrente ob j = f indobj(h.  Objeto: Push Button Propriedade Callback String  Valor cap6_list_callback OK  Execução: »  c a p 6 _ lis t _ e x e m p lo  ■j c ap 6 _ Iisr_ t» X H n p [o  *  f^*i ■ jw 3 . surf(peaks) co lormap(cores{indcor}) . i n d s h = get(obj.  % Objeto axesl axes(obj).Cria um objeto Axes (eixo) para exibição de gráficos e imagens. 'Tag'.m edit:  axesl_list_callback.V  li& fe:es_______ . Objetos: Axes Propriedade Tag  A xesl. axes3_callback  Exemplo: axes1_callback.m  function a x e s l _ c a l l b a c k ( ) h=gcf. f(x) e F(x) integral de x. % Figura corrente o b j = f i n d o b j ( h .2 * p i :0.t!!EI fi*  £dt  View  La y o u t T c o k  Heip  & 0 P u s h B utton  f (x) = sin(x)+x*cos(x)  F{x) = sin(x>x*cos(x)  'S lid e r ■ # R a d io B utton 0  C h e c k Box  M r E d it Te xt Static Text S 3 P op-up M enu j’f § Listbox [ lU T o g g le Button  [j*3j Button G rou p [sX* ActiveX Control  Execução: »  cap6_axes_exemplo  Criação de interface Gráfica com o Usuário  333  .  Propriedade de controle: Nome  Descrição  Tag  identificação do objeto  Exemplo: em uma janela.x. Axes3  Objetos: Push Button Propriedade Valor Callback  axes1_callback. axes2_callback.1:2 * p i . 1a x e s l 1). exibir três eixos com os gráficos de f(x) = x*sin(x).*sin(x))  I ÆÜSiï3 f!. % Configura eixo corrente x = . p l o t (x. Axes2.  'Tag'.'S tring')). y=v_amplitude*(sin(5*x*v_frequencia)+3*cos(x*v_frequencia) ! p l o t (x.sm(x)-x"cos(x)  l l Panel  ■Cria um 'painel'. o b j = f i n d o b j ( h . o b j = f i n d o b j ( h . uma área retangular para facilitar a visualização de grupos de dados.v_final. % Objeto final v _ f i n a l = s t r 2num(get(obj. % Figura corrente ob j = f i n d o b j ( h .y)  Execução: »  cap6_panel_exemplo  MATLAB ®7-Fundamentos  . 'String')). 'T a g f i n a l '). % Objeto final v _ f r e q uencia=str2num(get(obj. 'T a g ' i n i c i o '). 'Tag'.-> cap6^sxes_eicefBp|o  f(x) = x” sin(x)  f'(x) = sm(x)<-x*cos(x)  F(x) .200). ob j = f i n d o b j ( h .'S tring')). edit: p a n e l _ c a l l b a c k .m function p a n e l _ c a l l b a c k ( ) h=gcf. 'amplitude').'frequencia'). % Grafico x = l i n s p ace(v_inicio. Propriedade de controle: Nome  Descrição  Title  título  Objeto: Panei Propriedade Valor Title Dados Primários Dados Secundários  ■  Exemplo: Desenhar gráfico a partir de dois grupos de dados.'S t r i n g ')). % Objeto inicio v_inicio=str2num(get( o b j . % Objeto inicio v_ a m p l i t u d e = str2num(get(obj.  Para criar um ButtonGroup. é necessário que os subobjetos já estejam definidos na área de layout.m  ■/  3 Button Group  . gerado automaticamente.Cria um ButtonGroup.  C Interpolated  As funções callback dos subobjetos são substituídas pela função S e le c t io n C h a n g e F u n c t io n do ButtonGroup. A chamada dessa função é automaticamente criada pelo GUIDE. checkbox ou togglebutton.  >Fiat : O Faceted  No exemplo. togglebutton.  Esse objeto é formado por um conjunto de subobjetos do tipo radiobutton. o ButtonGroup é composto por três radiobuttons. Porém o 'corpo' da função S e le c t io n C h a n g e F u n c t io n deve ser codificado pelo usuário nesse arquivo. por meio da opção [S e le c t io n C h a n g e F u n c t io n ] disponível no menu PopU[ [View] [View Callbacks]. A codificação deve implementar as ações a serem executadas na seleção de cada subobjeto que compõe o ButtonGroup. objeto que agrupa subobjetos do tipo radiobutton.  Criação de Interface Gráfica com o Usuário  . checkbox. O objeto ButtonGroup agrupa os subobjetos que forem envolvidos pelo retângulo indicado. Fundamentos  . O GUIDE cria o arquivo e abre o editor.. o u tp u t. handles arid «set data (see GCIDATA)  i Set.m.......  Propriedade de controle: Nome  Descrição  Title  título  Objeto: ButtonGroup Propriedade Valor Sombreamento Title Selecione o objeto ButtonGroup e chame a opção [S electionC hangeFunction] para salvar o arquivo ..Nesse exemplo: ♦  0 arquivo é armazenado com o nome: cap6_buttongroup_exemplo.  ♦  As ações são: exibir surf (peaks) no gráfico com o tipo de sombreamento indicado pelos radiobuttons.. io  ce Ii array for returning output arg s {...m'.TA)  cap6_button9foup_exempio/gipa. exibindo a função que deve ser completada pelo usuário. He £dit j|jj|||S Layouts-Tods:7■Hefc D Gär 1 Property Inspector . a..  ♦  Os subobjetos radiobuttons estão definidos com TAGs: radiobuttonl.\n5atlab7\wofk\c3p6_h!ittongroup_jexemptQ.. fucuire version of HkTLAB structure «1th.ObjectBrowser 0 ^ Sefecj M-file Editor [SD Push [b=uí Sfider  P~ ] p]  €5 Radio Button  .c. handle c c figure reserved — to be definedir. j...~ to be defined in a structure sith handles and us«  version of HÂTLAB {see GUIDÂ... Ln 79  Col 55  <OVR  Este é o código que deve ser editado para implementar o funcionamento dos radiobuttons..  % hObject % eventdatf  handle to uipaneii {see GCBO) reserved ... default eon®sand line output irony handles structure v a r a r g o u t { 1} h a n d le s .m * Fäe  Edit  Text  Cell  Tools ■ D ebug  Desktop  W indow  Help  Dwcr rS—ruHbrron~varargDur^~capb~“W'C'o«gt'ou:p“ O5 «MriT exeii.. \ "1  é felfeVatí* 100 : 140  180  CreateFcn DdeteFcnBuítonDovsnFcn ResizeFcn  Editor .Tee V&RARGOUT) .. radiobutton2 e radiobutton3.cap6_buttongroup_exemplo.  MATLAEP 7 .ipio3)acpuc'ircnThcei3:ect7~'gv-is: 69 70 71 72  k vsrargout  hCbjeet % «ventdata * handles  *  s m:irae s.  As propriedades variam de acordo com o objeto selecionado.Parent . 1T a g ') case 'r a d i o b u t t o n l 1 % S O M B R E A MENTO: FLAT surf(peaks) s h a d i n g ('FLAT 1) case 'r a d i o b u tton21 % SOMBREAMENTO: FACETED surf(peaks) s h a d i n g ('F A C E T E D ') case 1r a d i o b u t t o n 3 ' % SOMBREAMENTO: INTERP surf(peaks) s h a d i n g ('IN T E R P ') end  Execução: I  »  •/  cap6_buttongroup_exemplo  ActiveX Control  ■Cria objeto ActiveX.m % ----------------------------------. Exemplo: inserir ActiveX 'Microsoft Office Spreadsheedt 10.0'.edit: cap6_buttongroup_exemplo.  Criação de Interface Gráfica com o Usuário  337  . handles) % hobject handle to uipanell (see GCBO) % eventdata reserved . eventdata.to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) H=get ( h o b j e c t ) . bgObj e c t = H . 1SelectedObject'). selection = g e t ( b gO b j e c t . switch get(selection.-------------------------------------------------function uipanell_SelectionChangeFcn(hobject.  Abre lista de opções de objetos ActiveX. 0 (SP4) !. v ersion E ft P rogressBar Control 6.Select do ActiveX Control .SJ -Ü 1  \  \ F-0S-3 !  -  f  6 3 P o p -u g M enu  ill  >k V ie w Control ft Picture Clip Control.0 . Lis tV ie w Control.CJ MAPI M essages Control.Fundamentos  . v e r U s tV ie w Control 6. vers MAPI S ession Control. versio: Masked Edit Control.0 O ffice PivotTable 9 . version 6:i O ffice Chart 10.11 1 : 12 I Í 13 I : 14 Î  '\F*.MS-Exce! Spreadsheet  m  i  ©  2 5 5 l= S O M A (D 2 D 7 )  i 10 I  .0 O ffice Data S ou rce Control 1: O flic e Data S ource Control 9 O ffice Expand Control 9. iMicrosoft iMicrosoft !: iMicrosoft jMicrosoft iMicrosoft iMicrosoft : iMicrosoft  ImageList Control 6 .DLL  . version £ Multimedia Control.10 Locatlcn: C: iPROGRA-1 COMMON-1 WSCROS-IVÆ BCO M-1\10'OWC1Q.*$• Button G roup I U f ActiveX Control  Create  Cancel  I  Help  Execução: I»  cap6_activex_exemplo  Objeto ActiveX . version 5.0 O ffice C hart 9.0 (SP4) ImageList Control. versions*  Listbox  | E H T o g g le Button  !iúÍAxeí  Program ID: C»AC10. v ersion 5.0 : O ffic e PivotTable 10.Spreadsheei.: ActiveX Control U s t::  W ÊSSM Êm m \ D çârM k S ele ct  i-iM icroso ft iMicrosoft : M ic ros o ft iMicrosoft iMicrosoft : iMicrosoft .1  -/  MATLAB® 7. O ffice R ecord Navigation Cor  St .0 (SP< ar Control.C:" Internet Transfer Control. v ers ion M onthV iew Control.  o Symbolic Math Toolbox fica disponível. aplicativo para matemática simbólica. separadas nas seguintes áreas: Areas  Tópicos  Cálculo  Funções.C a p ít u l o  7  Introdução ao Symbolic Math Toolbox A The Mathworks. este livro traz uma introdução ao Symbolic Math Toolbox 3. O Symbolic Math Toolbox é constituído de quase duzentas funções que executam operações de matemática algébrica e simbólica dentro do ambiente MATLAB®. redes neurais.  Álgebra  Simplificações.. limites. um sistema desenvolvido inicialmente pela Universidade de Waterloo (Waterloo/Canadá) e. Zurique/Suíça).1. simbólicas.  Soluções de Equações  Equações algébricas. e conversões. Laplace.  Aritmética de precisão variada e conversões  Avaliação numérica de expressões matemáticas com precisão variada. como. autovetor.  Álgebra Linear  Determinante. otimização. como qualquer outra função do núcleo do MATLAB®. controle. posteriormente. inversa. inversas. O núcleo do Symbolic Math Toolbox é baseado no Maple®. derivação. estatística. Atualmente. totalizando cerca de 75 títulos diferentes.  . Como informação complementar ao MATLAB®.  Transformadas  Fourier. decomposições. integração. autovalor. aplicadas a áreas específicas. o Maple® é comercializado pela empresa canadense Maplesoft. por exemplo. denominadas Toolbox. Z. Introdução ao Symbolic Math Toolbox  .  Funções especiais  Funções específicas. com o apoio de empresas e consultorias especializadas. diferenciais. de forma transparente. desenvolve e comercializa bibliotecas de rotinas MATLAB®. substituições.  Após sua correta instalação. Inc. pelo Instituto Suíço Federal de Tecnologia (Eidegenõssiche Technische Hochschule.  exponenciais e matriciais básicas mostradas no tópico 3.  Exemplo: cálculo da integral de x.1 . ou digitando-se ■ver s y m b o lic 1 na linha de comando: »  ve r symbolic  MATLAB Version 7.1. utilizando a função int do Symbolic Math Toolbox com uma cadeia de caracteres. apresentamos os conceitos básicos do Symbolic Math Toolbox. a cadeia é interpretada pelo Symbolic Math Toolbox. use o MATLAB® 7 com Symbolic Math Toolbox e repita os exercícios descritos a seguir.A presença (ou disponibilidade) do Symbolic Math Toolbox pode ser verificada na opção [Toolbox] do botão [Start].  Exemplo: cálculo da integral de x utilizando a função int do Symbolic Math Toolbox com uma variável simbólica.0.2. » »  syms x int(x) ans = l / 2 * x /s2  Nos dois casos. C o n c e it o s Neste tópico. no canto inferior esquerdo da tela. Símbolos podem ser utilizados como parâmetros de entrada para as funções trigono métricas. Símbolos No Symbolic Math Toolbox. da mesma forma. o símbolo é fornecido como parâmetro de entrada para as funções do Symbolic Math Toolbox. por meio de exemplos como no Capítulo 2.1.1  (R14)  7 . o retorno da função é um objeto symbol. na medida do possível.Fundamentos  .  ♦  Objeto symbol definido pelo comando syms ou criado pela função sym: neste caso.  MATLAEP 7 . portanto. símbolos podem ser trabalhados de duas formas: ♦  Cadeia de caracteres: neste caso.0.19920  Symbolic M a t h Toolbox  (R14)  Version 3. que identifica as variáveis e as funções utilizadas.  7.  utilizadas no tópico anterior. » syms x y » A=[sin(x) A = [ sin(x). 1  % A*B  % B*A  7. As variáveis simbólicas x e y. [ cos (y) .0 MATLAB® consegue identificar automaticamente o tipo de variável e chamar a rotina adequada: biblioteca matemática numérica para variáveis numéricas e biblioteca do Symbolic Math Toolbox para variáveis simbólicas. sin(x)*x/(sin(x)*x-y*cos(y))-y*cos(y)/ (sin(x)*x-y*cos(y))]  »  s i m p l i f y (C) ans = [ 1. também poderiam ter sido definidas da seguinte forma:  Introdução ao Symbolic Math Toolbox S  -  .cos(y)  x]  y] x]  A variável A contém uma matriz simbólica. Podemos calcular o determinante e a inversa de A. 0] [ 0. Criação de Variáveis e Expressões Simbólicas Variáveis e expressões simbólicas podem ser criadas pela função sym. Por exemplo. A função simplify (simplificação) do Symbolic Math Toolbox pode ser utilizada para verificarmos se B é inversa de A (isto é.y / sin(x)*x-y*cos(y))] sin(x)/ sin(x)*x-y*cos(y))]  As funções matemáticas podem ser compostas com as funções do Symbolic Math Toolbox. se A*B = B*A = identidade): »  C=A*B C = [sin(x)*x/(sin(x)*x-y*cos(y))-y*cos(y)/ (sin(x)*x-y*cos(y)) . » det(A) ans = s i n (x)*x-y*cos(y) » B=inv(A) B = [ x / ( s in(x)*x-y*cos(y)). 0] [ 0. [ .  y.c o s (y)/(sin(x)*x-y*cos(y)). 1]  » s i m p l i f y (B*A) ans = [ 1. 0] [0. podemos definir uma matriz A a partir de operações efetuadas com os símbolos x e y.1. que pode ser usada com funções matriciais básicas.  .2.  como.  Para podermos utilizar a funçao int. pois 5 é um double (número com precisão dupla) e a função int não está definida para este tipo de dado. por exemplo.Fundamentos  . >> F=int{5) ??? Function  'int'  is not defined for values of class  ’d o u b l e 1.|| 11  ih m  te M I Name  '  1— 1 " :• ~ 1 Value  <1x1 s ym > !<1x1 s y m > j  lü U  » x=sym('x ').  jHy  <  ■ 1 1 '»  '  1  >:  I Current Directory | Workspace j  A função sym também transforma números em símbolos. se tentarmos resolver F(x) = 5 dx com a função int. retorna erro. A função pretty do Symbolic Math Toolbox exibe como fórmula uma expressão forne cida nesse formato:  MATLAEP 7 .  J  ♦  Por exemplo. uma equação de 2grau: »  e q 2 = s y m ( 1a * x A2 + b * x + c ’) eq2 = a * x A2+b*x+c  Podemos utilizar a função solve para resolver essa equação de 22 grau e obter a Fórmula de Báscara: »  s=solve(eq2) s = 1/2/a*(-b+(b"2-4*a*c) Ä (1/2)) 1/2/a*(-b-(b~2-4*a*c) ^ (1/2))  Os resultados estão apresentados no formato padrão de expressões do MATLAB®. ’int(5)'. Isto é essencial para tratar com constantes como expressões simbólicas. » y=sym(1y'). temos que criar o símbolo 5 com a função syms. »  cinco = sym(5) cinco = 5 » F=int(cinco) F = 5*x  A função sym também define expressões.  Por exemplo. temos que a matriz.5403  % matriz m. >> syms x » m=[sin{x) x.l) ans = 0. para x=l  » s u b s (ml ans = -0.x cos(x ] m = % Expressão [ sin(x).  em x da matriz m  em x do determinante de m  em x da inversa de m x/(-sin(x)*cos(x)+xA2 )] sin(x)/ (-sin(x)*cos(x)+x~2)]  Para x = 1.  1) 1. [ x /(-sin(x)*cos(x)+xA2 ).1) ans = -0. seu determinante e sua inversa assumem os seguintes valores:  ôi  » subs(m.8415 1.9907 1. para x=l  X .5430  .1.0000 0.7. x] [ x.5454  % determinante de m.8337  % inversa de m.x. para x=l  » s u b s (dm.0000 1.3.8337 -1. Substituição de Variáveis Simbólicas por Números A função subs permite calcular o valor numérico de uma expressão simbólica por meio da substituição da variável simbólica por um número. x . considere a matriz m definida com o símbolo x e as expressões de sua determinante e sua inversa. c o s ( x ) ] » dm=det (m) dm = % Expressão sin (x) *cos (x )-x~2 » mi=inv(m) mi= % Expressão [ -cos(x)/(-sin(x)*cos(x)+xA2) . 2.  7.2. descrevemos as principais funções do Symbolic Math Toolbox.1.4.1) ezplot(f) s u b p l o t (1.2.Fundamentos  .2) e z p l o t ( i n t (f ))  » »  syms x y e z s u r f (sin(x)+ l o g (y))  7. Gráficos de Expressões Simbólicas Quando o Symbolic Math Toolbox está instalado. além de aceitarem fórmulas em cadeias de caracteres.1.  Por exemplo: » » » » » »  syms x f= log(x). divididas por disciplinas.7. Funções por Categoria Neste tópico.7). s u b p l o t (1.  MATLAB® 7 . Cálculo Considere x e y as variáveis simbólicas definidas para os exemplos. todas as funções de fórmulas matemáticas do MATLAB® 7 (apresentadas no tópico 5.1. também aceitam expressões simbólicas.2.  Sintaxes típicas: r = diff(F) r = diff(F.var)  Parâmetros: Entrada F: função var: variável a ser considerada  ______________________________________________  Exemplo: » dif f (x"'2*cos (x) ) ans = 2*x*cos(x)-x~2*sin(x) » d i ff(xA2*cos(y).  .✓  diff  Derivada e derivada parcial de funções.y) % derivada parcial em y de f(x.y) ans =  = X A2*cos(y)  A função também pode ser composta para obter derivadas de ordens superiores.x) ans = 2*x*cos(y)  % f (x) = x A2*cos(x) % derivada de f(x) % derivada parcial em x de f(x.y)  = X~2*cos(y)  » diff(xA2*cos ( y ) .   .Integral de funções.0. var.pi) ans = -2*pi  % integral de f (x) =x /'2*cos (x) entre 0 e pi  » int(xA2 * c os(y).y.0.y)=xA2*cos(y) ans = x~2*sin(y) » int(xA2*cos(y).  a. b)  Parâmetros: Entrada_________________________________________________________________ F: função var: variável a ser considerada a. b: intervalo de integração_______________________________________________________  Exemplo: » int(x~2*cos(x)) % integral de f(x)=xA2*cos(x) ans x''2*sin(x)-2*sin(x)+2*x*cos(x) » int(xA2 * c os(x). var) / r = int(F. Sintaxes típicas: r = int(F) / int(F.y) % integral em y de f(x.a.b) r = int(F.y) entre 0 e pi/2 ans = x A2  ■S limit Limite de funções.pi/2) % integral em y de f(x. vl) l i m i t (F.x.vl. a função assume 0 (zero).Inf) % limite (sin(x)/x) com x->Inf ans = 0 » limit(1/x.var.0 l e f t 1) % limite (1/x) com x->0 pela esquerda ans = -Inf  s  taylor  Expansão da série de Taylor de uma função.Sintaxes típicas: r r r r  = = = =  l i m i t (F) l i m i t (F.vl) l i m i t (F. Sintaxes típicas: r r r r  = = = =  taylor(F) taylor(F. 'r i g h t 1) % limite (1/x) com x->0 pela direita ans = Inf » limit(1/x.var.0.var)  % quinta ordem % ordem n % valor da séride em a % para a variável var  Parâmetros: Entrada F: função  Introdução ao Symbolic Math Toolbox  .n) taylor(F.lado)  Parâmetros: Entrada F: função vl: valor limite var: variável a ser considerada lado: 'right' (limite pela direita) / 'left' (limite pela esquerda) Observação: se o valor limite for omitido.x. Exemplo: » l i m i t (sin(x)/x) % limite (sin(x)/x) com x->0 ans = 1 » limit(sin(x)/x.a) taylor(F. 2. Sintaxe típica: r = s i m p l i f y (expr)  .x A2*sin(y)]  7. >> j a c o b i a n ([f f ] .[-pi pi]) % grafico sin(x) » hold Current plot h e l d % grafico da serie ________ » ezplot(r.l / 6 * x A3+l/120*xA5 » e z p l o t (s i n ( x ) .var)  Parâmetros: Entrada_____________________ F: função de mais de uma variável var: vetor de variáveis  Exemplo: >> f=xA2 * c o s ( y ) .[-pi pi])  S  jacobian  Matriz jacobiana de derivadas parciais.2.Exemplo: » r = t a ylor(sin(x)) % quinta ordem r = x . . Sintaxe típica: r = jacobian(F. [x y ] ) ans = [ 2*x*cos(y). Simplificação e Substituição y  simplify  Simplifica expressões. -xA2*sin(y)] [ 2*x*cos(y).   expand  Expande expressões.Parâmetro: Entrada expr: expressão  Exemplo: » m=[sin(x) c o s (x). Sintaxe típica: r = e x p a n d (expr)  Parâmetro: Entrada expr: expressão  Exemplo: » s=(x+l)A5 s = (x+l)A 5 » e x p a n d (s ) ans = x A5+5*xA4+10*xA3+10*x's2 + 5 * x + l » m=[sin(x)  ■S factor Retorna os fatores de uma expressão.-cos(x) » det(m) ans = sin(x)A2 +c o s ( x ) A2 » simplify(det(m)) ans = 1  s  sin(x)]. Sintaxe típica: r = factor(expr)  cos (x) .  .-cos (x) sin ( x ) ] .  Sintaxe típica: r = collect(expr.l .var)  Parâmetros: Entrada_________________________________ expr: expressão var: variável do polinómio______________________  Exemplo: polinómio de grau três em x. » e xpr=y*xA3+y*x~2+x*y-y+x. den] =numden (1/ (x+1) *x/'2-l/ (x+1) *x+3/ (x+1) ) num = x~2-x+3 den = x+1  MATLAB® 7-Fundamentos  . » collect(expr) ans = (y+1)*x"3+(y+1)*xA2+(y+1)*x-y-l  S  numden  #  Retorna expressão na forma: numerador /denominador. Sintaxe típica: [n u m .Exemplo: » e x p r = e x p a n d ( (exp(x)+x)* (x+1)A2) expr = exp(x)*x'~2 + 2*exp(x)*x+exp(x)+xA3+2*x~2+x » factor(expr) ans = (exp(x) +x) * (x+1) ~ 2 » s=(x+l)~5  s  collect  Identifica coeficientes de termos de um polinómio.d e n ] = n u m d e n (e x p r )  Parâmetros: Entrada___________________ expr: expressão var: variável do polinómio  Exemplo: polinómio » [num.'3+xA2 + x .   .5 + ( 2 + (-4+x)*x)*x)*x)*x  S  coeffs  Dado um polinómio.horner Retorna o polinómio na forma polinomial de Horner. -4. 12.4 * x~4+2*x/'3-5*x~2-x+3 » horner(expr) ans = 3+ ( . retorna os coeficientes (da ordem menor para maior). -3. 4]  S  sort  Ordena vetor simbólico. Sintaxe típica: r = horner(expr)  Parâmetro: Entrada expr: expressão  Exemplo: polinómio » exp r = x A5“4*x's4+2*xA3-5*xA2-x+3 expr = x~ 5 .1 + ( . 1. Sintaxe típica: r = coeffs(expr)  Parâmetro: Entrada______ expr: expressão  Exemplo: » expr=expand( ((x-2)~ 2 ) * (exp(x)-3)) expr = x ~ 2 * e x p ( x ) -3 *x^2-4*x*exp(x)+12*x+4*exp(x)-12 » coeffs(expr) ans = [ -12. Sintaxe típica: r = s o r t (vetor)  Parâmetro: Entrada__________ vetor: vetor simbólico  Exemplo:  y  subs  Substitui símbolos em expressões.  MATLAB® 7 .'2*exp (y) -3*y''2-4*y*exp (y) +12*y+4*exp (y) -12  7.2.3. new)  Parâmetros: Entrada expr: expressão old: símbolo velho new: símbolo novo  Exemplo: » expr=expand( ((x-2)~2)* (exp(x)-3)) expr = x~2*exp(x)-3*x~2-4*x*exp(x)+12*x+4*exp(x)-12 » subs(expr. Aritmética de Precisão Variada s  vpa  Interpreta um valor numérico e retorna-o como símbolo com a precisão numérica solicitada.  old. Sintaxe típica: r = subs(expr.x.y) ans = y .Fundamentos  . 4.3) P i3 = 3 . Sintaxes típicas: digits digits(prec)  Parâmetro: Entrada prec: precisão numérica Exemplo: » digits Digits = 32 » d i g i t s (5) » digits Digits = 5  % Exibe configuracao atual % Modifica configuracao  7.14  •/  digits  Configura precisão numérica para efeito de cálculo simbólico.Sintaxe típica: r = v p a ( e x p r .2.prec)  Parâmetros: Entrada____________ expr: expressão prec: precisão numérica Exemplo: >> p i 3 = v p a ( p i . Álgebra Linear Funções de álgebra linear do MATLAB® que valem para símbolos: Função diag triu tril inv det 11  II Introdução ao Symbolic Math Toolbox  Descrição cria ou extrai diagonal matriz triangular superior matriz triangula inferior inversa determinante  . Fundamentos  . (y+1)/(y+x+l)] [ (x+1) / (y+x+l). y+x+l]  1] 1]  [  7.y / ( y+x+l).  . Sintaxe típica: r = solve(equl.  equ2.)  MATLAEP 7 . Solução de Equações s  solve  Resolve equações simbólicas.  y+1]  [  x+1.. 0] [ 0.. -x/(y+x+l) ] » [v.2. 1.5. x+1 y]  m = [  X.Função rank rref null colspace eig svd jordan poly  Descrição posto forma reduzida base do espaço nulo base do espaço coluna autovalores e autovetores valores e vetores singulares forma canónica de Jordan polinómio característico  Exemplo: »  m=[x y+1. lambda = [ -1.lambda]=eig (m) V  =  [  -(y+1)/(x+1). y] » diag(m) ans = x y » det(m) ans = -y-x-1 » mi=inv(m) mi = [ . Parâmetro: Entrada______________ equ: equações simbólicas  Exemplo: resolver uma equação de 33 grau. Observação: 'D' indica derivada e 'D2' indica segunda derivada. com a reta identidade.  S  dsolve  Resolve equações diferenciais simbólicas fornecidas como cadeia de caracteres.'2+ll*x-6) r = 1  2 3  Exemplo: achar as intersecções entre uma circunferência de centro (0.  . tais que x2+y2=1 e x=y.0) e raio 1..)  Parâmetro: Entrada___________________________________________________________ equ: equações diferenciais simbólicas em formato de cadeia de caracteres. x e y.  equ2.. Sintaxe típica: r = dsolve(equl. ou seja. >> r=solve (xA3-6*x.  Introdução ao Symbolic Math Toolbox  . Fundamentos  .  r = d s o l v e (’D 2 y = c o s {t)+t ') r =  -cos (t)+l/6*t/'3+Cl*t+C2  % Cl e C2 constantes  Resolver a mesma equação com duas condições iniciais (para y de Dy) para determinar os valores das constantes C1 e C2.c o s (t)+l/6*tA3+2  s  'Dy(O)=0 ')  finverse  Calcula função inversa (se existir).-xem plo: resolver  »  dv  = cos(t) + 1.(0) = 1  » r = d s o l v e (' D2y=cos(t)+t ' 'y (0)=1' r = . Sintaxes típicas: r = f i n v e r s e (funcao) r = finverse(funcao.var)  Parâmetros: Entrada funcao: função a ser invertida var: variável a ser considerada para a inversão  MATLAEP 7 . y(0) = 1 e y .  ^ dt  = cos(t) + t.  g: funções  Exemplos: » »  f=sin(x) .  » c o m p o s e (f.Exemplos: » finverse ans = l/(x-l) >> r=dsolve  ( x + U / x)  'D y = c o s ( t ) + t 1)  » finverse c o s ( x + 1 )) ans = -1+acos(x >> finverse abs(x)) % nao existe inversa para funcao valor absoluto Warning: fi n v e r s e (abs(x)) cannot be found. Sintaxe típica: r = compose(f. Sintaxe típica: r = double (m)  I Introdução ao Symbolic Math Toolbox  . Funções de Conversão S  double  Converte matriz simbólica em numérica de precisão dupla.f) % g(f) ans = (sin(x)+2)/sin(x)  7.g) % f (g) ans = s i n ((x+2)/x) >> compose(g.finverse at 38 ans = 0  ■/ compose Dadas as funções f e g.2.g)  Parâmetros: Entrada f.6. > In sym. g = ( x + 2 )/x. retoma função composta f(g).  Sintaxes típicas: r = poly2sym(v) r = poly2sym(v. 0] [ 0. » m=sinnplify (m*inv(m) ) m = [ 1.Parâmetro: Entrada_________ m: matriz simbólica Exemplos: >> m = [ x -y.y -x] . 1] » r=double<m) r = 1 0 0 1  Demais funções de conversões símbolo/número Função single char int8 int16 int32 int64 uint8 uint16 uint32 uint64  Converte matriz simbólica em numérica de: precisão simples cadeia de caracteres inteiros de 8 bits inteiros de 16 bits inteiros de 32 bits inteiros de 16 bits inteiros de 8 bits sem sinal inteiros de 16 bits sem sinal inteiros de 32 bits sem sinal inteiros de 16 bits sem sinal  ■s poly2sym Converte vetor numérico de coeficientes em polinómio simbólico.var)  Parâmetro: Entrada v: vetor numérico de coeficientes var: variável  MATLAB 87-Fundamentos  . 2 .'2 + 80*x-32 » v=sym2poly(pol) v 1 -10 40 -80 80 -32  7 .var)  H 9 M  Parâmetros: Entrada expr: função var: variável Introdução ao Symbolic Math Toolbox  ( 359  . Sintaxe típica: r = s y m2poly(pol)  Parâmetro: Entrada pol: polinómio simbólico Exemplos: » pol=expan d ( ( x . S  Transformadas  fourier/ifourier  fourier: retorna Transformada de Fourier. » pl=poly2sym(v) pl = 2 * x A4+5*xA3+6*xA2-x+4 » p 2 = p o l y 2 s y m ( v ( l :3) .var) expr = ifourier(tf) / ifourier(tf.Exemplos: » v = [2 5 6 -1 4] .2)A5) pol = x A5-10*xA4+4 0 * x A3-80*x.7 . Sintaxes típicas: tf = fourier(expr) / fourier(expr. 't ') p2 = 2 * t A2+5*t+6  •S sym2poly Converte polinómio simbólico em vetor numérico de coeficientes. ifourier: retorna inversa da Transformada de Fourier. x ^ 2 )  O b s e rv a ç ã o : a Trasformada de Fourier é utilizada para análise de dados.var) expr = ilaplace(tl  Parâmetros: E n trad a  expr: função var: variável Retorna Transformada de Laplace.var) / ilaplace(tl.Exemplo: » f = e x p (~x*2). principalmente na área de processamento de sinais para identificação de freqüências. Sintaxes típicas: tl = laplace(expr) / laplace(expr. » t f = f o u r i e r (f ) tf = pi"' (1/2) *exp (-l/4*w‘s2 ) »  p r e t t y (tf) 1/2 pi  2 exp(. ilaplace: retorna inversa da Transformada de Laplace.Fundamentos  . var)  Parâmetros: E n trad a  expr: função var: variável  MATLAB® 7 .  ff  Sintaxes típicas: tl = laplace(expr) tl = laplace(expr.  S  laplace/ilaplace  laplace: retorna Transformada de Laplace.1/4 w )  » ifourier(tf) ans = e x p (. Exemplo: » » »  r=sin(x).var) expr = iztrans(tz) / iztrans(tz.  ztrans/iztrans ztrans: retorna Transformada Z (domínio da freqüência).8. Funções de Formatação S  findsym  Retorna as variáveis simbólicas em uma expressão.  Introdução ao Symbolic Math Toolbox____________________________________^361^  . p r e t t y (tr) 1 2 s  +1  » ilaplace(tr) ans = s i n (t )  O b s erva ção : a Trasformada de Laplace é utilizada na área de controle para análise de sistemas dinâmicos.2. Sintaxes típicas: tz = ztrans(expr) / ztrans(expr. iztrans: retorna a inversa da Transformada Z (domínio da freqüência).var)  Parâmetros: E n trad a  expr: função var: variável  Exemplo:  7. t r = l a p lace(r). 4 a c) ] [ [ 1/2 a ] [ [ 2 1/2] [ b . b. » findsym(f) ans = a. x.4 a c) ] [ [1/2 a ] [  MATLAB® 7-Fundamentos  .(b''2-4*a*c)'s(l/2) ) »  p r e t t y (solve(s)) 2 1/2] [ b + (b .Sintaxe típica: v a r = findsym(expr)  Parâmetro: E n trad a________  expr: expressão  Exemplo: » syms a b x y » f=a*(x-2) .exp(b/y).(b . » s o l v e (s) ans = 1/2/a*(b+(b~2-4*a*c)*(1/2) ) 1/2/a* (b. Sintaxe típica: pretty(expr)  Parâmetro: Entrada expr: expressão  Exemplo: » syms a b c x » s=a*x~2-b*x+c. y  S  pretty  Retorna a expressão em representação de fórmula.  » p 2 = x . » gcd(pl. Funções Especiais ♦  Tratamento de casos onde a solução algébrica não existe: Função  ♦  Exempio  Descrição  erf  função erro  sinint  integral de seno  cosint  integral de co-seno  exp(-x2)  » int(exp(-xA2 )) ans = l/2*pi's (1/2)*erf(x) » i n t (sin(x)/x) ans = sinint(x) » i n t (cos(x)/x) ans = cosint(x)  M M C /M D C : Função  Descrição  Icm  mímimo múltiplo comum  gcd  máximo divisor comum  Exemplo » pl=x~3-3*x~2+3*x.'2-5*x+4 .2.  >> l a t e x (f) ans = a \left( x-2 \right) -{eA {{\frac {b}{y}}}} » texlabel(f) ans = {a} ({x} .exp(b/y).2 )-exp(b/y)  7. » p 2 = x A2-5 * x + 4 .p2) ans = (xA2-2*x+l)* (xA2-5*x+4) » pl=x~3-3*x~2+3*x-l.{exp} ({b} / {y} ) » ccode(f) ans = tO = a * ( x .9.Funções de conversão de formato: Função  Formato  f=a*(x-2)  latex  latex  texlabel  tex  ccode  linguagem C  fortran  linguagem Fortran  . » lcm(pl.{2} ).p2) ans = X —1  ♦  Funções 'Exemplo' Função rsums funtool taylortool symintro  Introdução ao Symbolic Math Toolbox  Descrição soma de Riemann calculadora de funções calculadora de séries de Taylor introdução ao Symbolic Math Toolbox  ( 363  .0)-exp(b/y).1 .2 . » fortran(f) ans = tO = a * ( x . Função symcalcdemo symlindemo symvpademo symrotdemo symeqndemo  Descrição demonstração de cálculo simbólico demonstração de álgebra linear simbólica demonstração de precisão numérica estudo de planos de rotação demonstração de solução de equações simbólicas  Exemplos: |»  r s u m s ('s i n ( x ) / x '.‘ pi  < x ' -D!  C=D  B  MATLAB ®7-Fundamentos  .2* p i ) ]  »  funtool  »  taylortool  l(x) :x-cosfx)  0 N=7  0  a  ~0 S  2  2  .0. São Paulo. do tópico 2.m no edit: ♦  Faça o acompanhamento da execução de . Qual o significado desse valor?  4. Qual foi o rendimento da aplicação de risco? (Fonte: Questão 1 da Prova de Matemática da 2a fase da Fuvest 2002 (08/01/2002)).3. umaque rendia 20% por ano. que o número de colunas de A seja igual ao número de linhas de B.  3.)  2. investindo a outra metade numa aplicação de risco. juntos. juntos. Carlos e Luis tinham. do tópico 2.2: Calcule o coeficiente de determinação da regressão (coeficiente R2).Carlos escolheu uma aplicação que rendia 15% ao ano.A p ê n d ic e  a  Exercícios Propostos  1.  Apêndice A ■Exercícios Propostos  . 93 mil reais.  No exercício 7.a2=triangulo_pascal(2)‘. I. Depois de um ano. Quantos reais cada um tinha inicialmente? II.  Carlos. Luís.1. O R2 da regressão é -0. o que significa a multiplicacão matricial das matrizes a e c (a*c)? Qual é a condição necessária para que duas matrizes A « n e B pxq possam ser multiplicadas matricialmente? A resposta é n = p.  No exercício 2.9311. 106 mil reais.. Sílvio aplicou metade de seu dinheiro em um fundo que rendia 20% ao ano. Isto faz sentido? Por quê? O que aconteceria se as tabelas tivessem informações dos meses de Março e Abril. com rendimento anual pós-fixado. ou de outros tipos de carros e peças? (Fonte: programação 'Vestibulando Digital1exibido pela TV Cultura . Carlos e Sílvio. Luis e Sílvio.  ♦  Faça um programa que calcule o triângulo de pascal pela fórmula. 100 mil reais para investir por um ano. 59 mil reais.7. ou seja.  Abra arquivo triangulo_pascal. Luís e Sílvio tinham. m  M  Por s.25  II.62069 1931034 2. armazenada nas colunas A e B da pasta [Pianl]. III.• 10 y  ! Arial  f*:  A1  As duas séries apresentam missing data nos dados da coluna B.5. dados os vetores X e Y. IV.fb Lr=  1  :  1 c  r  77.375 75.  Para facilitar a entrada de parâmetros.  l! \ I \  iso.125 73 72. com Y contendo missing vaiues. armazenada nas colunas A e B da pasta [Plan2]. Problema proposto: I.432759 3. e outra. e utilizar a curva spline para interpolar os missing values. substituídos pelos valores interpolados pela função.5 73. To j ii  Insenr Lã V  Sél  1.103448  li.875 74.Fundamentos  .625 74. uma com 30 observações.793103 4. com 100.  MATLAB ® 7 .xls' contém duas séries tem porais. 9. experimente criar uma interface gráfica por meio do GUIDE como esta exibida a seguir para o problema do 'bungie jump':  Deslocamento :r  200. Criar uma função que.xls'. Ler os dados da planilha 'questao8. Criar uma coluna C em cada pasta da planilha com os missing values da coluna B.  SOO  1000  1O  I E (Iracao)  Ifj3 Arquivo ! □  Editar  Exbif  .172414 3.125 73. constrói uma curva spline a partir dos pares de pontos válidos.50 •100:  100  200  300  400  I K (elastic)  500  j  600  700  300  01  O arquivo 'questao8. Aplicar a função nos dados da planilha e exibir os resultados em gráficos (veja  a seguir).  B  1 13 U 3 4u:  2 _3  m 6 *7 8 j .241379 2 551724 2 86206S 3. 100 50  0 . jpg  .. .m que aceite números diferentes de parâmetros de entrada..  I : 1 Cancel j  Considere o problema de circuito elétrico apresentado no exercício 4....... .....  Saída i s cap3.. usando a função nargin: a.jpg  1 j ..... c.... Nomes cios Arquivos  j5 ? j  Entrada. dois parâmetros: aceita os parâmetros.......Exercícios Propostos  ..:j NGJuly2002..7.... b....  -A/WvWvU +  PT  Tente criar interfaces gráficas dos tipos indicados a seguir.. nenhum parâmetro: pede os nomes dos arquivos com a função inputdlg.... um parâmetro: pede arquivo de saída com a função inputdlg............ R -jWWvVv-  h  2  -WWAV-  R..  Crie uma versão do programa cap4Jmage_exempIo... OK  8......  Apêndice A .   10.derivada de y no tempo.y) no tempo.y) = x' * sin(x) + y1* co s(y). (Fonte: Lista de Exercício do Curso de Derivativos da BM&F de São Paulo). Obtenha a derivada de E1(x. onde z é a quantidade produzida.y) = p1*x + p2*y . Sejam x e y as quantidades vendidas nesses dois mercados.C(x. A função custo total desta firma é C(z) = 60000 + 500*z. onde x e y são funções desconhecidas no domínio do tempo. Obtenha os valores de x e y que maximizam o iucro total da firma: L(x.4*y.9.2 *x e p 2 = 9 0 0 0 . Crie a seguinte representação com o Symbolic Math Toolbox: E1(x.y). e ache esse lucro. onde: x1é 1ã derivada de x.  Uma empresa fabrica um produto que é vendido em dois países no estrangeiro. Sabe-se que as equações de demanda nos dois mercados são dadas por: p1 = 6 0 0 0 .  MATLAIP 7 ■Fundamentos  . y1é 2. 280 base2dec. 296 camproll. 47. 292 colormap.(not). 351 coeficiente de correlação. 91. 116 command window.121  atand. 296 caracteres especiais.31 7.280 barh. 151 cos.200 <= (le). 121 acosh.31 -3 1 '. 295 camlookat.335  cadeia de caracteres. 290 alse. 164 casa decimal. 145 AVI. 196 cellstr. 209.218 ccode.31 A 32 /. 274 bar3. 296 camproj. 117 analisador para verificação de erros sintáticos. 121 acosd. 164 cart2sph. 133 blanks. 184 chamada de função. 350 colordef. 274 arndlg. 286 contour3. 69 cell2mat. 24 “.183 calendar. 121 cosh. 357 cond. 199 bitxor.219 cd.113 asec. 199 bitset. 76 char. 99 compan. 121 acsc.200 ~= (ne). 195 cellfun. 24 CDF*. 222. 200 +. 184.214 catch. 122 context menus. 81. 183 BMP. 72 brighten. 291 colspace.200 . 121  Indice Remissivo  S  .200 == (eq). 222 autovalores. 138 conj. 222 ceil. 21 esquerdo do mouse.198 char array.299. 121 acot.296 campos. 122 acos.74. 199 bitshift. 121 A U .121 asech. 197 bin2dec. 205 ajuste de curvas.194 cell array. 121 acscd. 222 avifile. 194 cellplot. 209. 122 component pallete. 121 addframe. 205 codh . 209 contour. 191 celldisp. 353 alpha. 27 area.200 *. 81. 121 asecd. 199 bitcmp. 121 asinh. 81. 313 array editor. 81. 35 buttongroup. 325 compose. 46. 30 clock.278 command history. 268 álgebra linear. 274 barh3. 205 camdolly. 46 checkbox.222 auread.333 axis. 222 botão direito do mouse.264.200 > (gt). 181 clear. 286 conv. 199 bitget. 275 complex. 121 asind. 164 corrcoef. 322 continue. 121 acotd. 121 acsch.200 >= (ge).246 axes. 229  cart2pol. 32 I (or). 296 camtarget. 137 compass. 121 acoth. 199 bkldiag.200  abs. 291 built-in function). 121 atan2. 262 ans. 70. 335 class. 210 angle. 296 camorbit. 121 atan.286 contourf.*. 81. 199 bitor. 245 aviinfo. 27 case. 296 campan. 121 atanh. 71 bar. 151 conversão de coordenada. 122 cell. 122 annotations. 296 camera. 81. 195 cell2str. 81. 222 cdfread.32 %%. 20 break. 328. 209 breakpoint. 264  B balanceamento de expressões. 354 comet. 271 comet3. 81 Alt+S. 199 bitmax. 121 cosd.32 . 197 bitand. 245 aviread.74 & (and). 296 camva. 47 cell mode. 150 collect. 121 asin. 363 c d . 181 classe do dado. 81. 81. 30. 145 autovetores. 296 camzoom. 31 A.121 coeffs. 245 addtodate.Indice Remissivo !.31 < (It). 71 %.  259 date.117 F11+Shift. 147 det.192 fields. 73 dbstatus. 357 dsolve. 45.213 end. 287 ezplot. 105. 227 ferror.117 C trl+2. 184. 117 Ctrl+Y. 27 equações diferenciais. 363 errodlg. 228 for. 209. 117 Ctrl+W.209. 143 erf. 54 fileparts. 122 fliplr.213 eps. 73 dbup. 122 fminbnd. 362 finverse. 69. 300 delimited file.117 Ctrl+A. 185 debug mode. 73 dbstep. 119 find. 117 Ctrl+S.213 else if.215 seleção.117 C trl+1. 49 FIG. 276 feof.73 deal. 207 dbclear. 23 desvio padrão. 300 findobj. 44. 82. 122.117 Ctrl+V.354 diferenciais simbólicas. 121 cscd. 117 Ctrl+C.209 eig. 353 dir. 153 fgetl. 266 expressões booleanas. 147 CUR. 152 find files. 125 diferenças finitas. 281  D  LJ  dados estatísticos. 81 echo. 288 ezplofô. 117 Ctrl+X.139 diag. 125. 73 dbstack. 117 Ctrl+1. 121 export setup. 24 divisão escalar. 269 DAT. 290 ezsurfc.209.216  . 191  deblank.207 datetick.cosint.117 C trl+4. 26 escopo de funções.353 diagonal de matriz. 287 ezmeshc.221 dlmread. 345 parcial de funções. 121 cotd. 117 escalar. 151 cplxpair. 122 cputime.117 F 1 1 . 117 cumprod. 223 figure. 264 datevec. 146 deconv. 198 decomposição. 51.105. 149 diferente. 149.213 etxor. 143 em valores singulares.329 editor de programas. 63. 117 F 5 .354 ellipsoid. 289 ezsurf. 75 delete. 31 matricial. 82. 206 datenum. 345 desktop layout. 288 ezpolar. 122 fclose. 122 fatoração. 110 cvsread. 206 csc.209 edit text. 281 else. 219 filter. 152 definição de função. 121 csch. 82. 221. 174 dbquit.234 dlmwrite. 73 dbstop. 78  estruturas de programação. 221. 93 findsym. 73 dbtype. 81 diff. 222 current directory. 290  F F 1 0. 117 Ctrl+F.349 expm l. 356 FITS*. 73 dbcont. 83. 198 dec2hex. 363 cot. 221 C trl+0. 117 Ctrl+Shift+0. 222 fix. 217 error.117 factor. 355 lineares. 234 cylinder. 206 datestr. 45.139. 355  E E. 63 derivada. 271 errordlg. 81 repetição.117 Ctrl+P. 121 CSV. 234 dock.117 C trl+3. 169 fopen. 23 double. 126 flipup. 353 determinante de matriz.345 digits. 69 dec2base. 228 fieldnames. 117 Ctrl+D. 126 findobj. 227 feather.209.233 cvswrite. 287 ezcontourf. 117 C trl+ 0 .133 ezcontour. 203 eval. 117 Ctrl+Q. 227 fgets. 125 cumtrapz. 117 Ctrl+Z.121 expand. 198 dec2bin. 121 cov. 261 figure window. 165. 93. 83. 31 DLM. 81 eye. 305 ESC.211 edit. 145. 220 filesep. 222 fitsread. 124 cumsum. 185 e x p . 63. 50. 227 fft.117 Ctrl+N. 221 data cursor. 151 covariância. 287 ezmesh. 73 dblquad. 299 figure palettes. 349 factorial. 217 errorbar. 80 de variáveis. 126 floor.  293 limit. 292 hide / show plot tools. 272 homer. 70. 81. 79. 363 layout area. 53 get. 51 32 bits sem sinal. 89. 121  .51 int2str.243. 59.182 iztrans. 231 ftp. 81 ilaplace. 82. 232 fzero. 248 full. 363 fwrite. 231 ftell. 102 helpdlg. 217 latex. 121 inversa. 124. 302 gca.76. 325 Icm.209. 296 HDF*. 51 16 bits com sinal. ifft. 62 MS-Excel.221 imread.134 listbox. 177 fullfile. 81. 81. 302 gcbo. 60. 124 light. 220 func2str. 173 integral de funções. 123 exponencial elementar.182 isglobal. 360 imag. 361  J jacobian.209 funtool. 82 isinteger. 170  G gbo.51 integração numérica.209 gradient. 354 JPEG. 357 de arredondamento e resto. 57. 363 fourier. 43.124. 182 isvarname. 223  ICO. 347 limite de funções. 87 inputdlg.183 ischar.317  H handle graphics®.243 imwrite. 68. 221 delimitado. 183 issparse. 322 laplace. 51 64 bits sem sinal. 124.299 lighting. 51 64 bits com sinal. 143 linspace. 51 16 bits sem sinal. 259 int.178 isstruct.209 isletter. 122 de teste lógico. 82. 160 interp2. 242 importdata. 243 indexação. 257 linsolve.124. 127  L label. 217 lastwarn.307 inputname. 306  Indice Remissivo  hex2dec. 122. 79 ishandle.303 getframe.93 generate m-file. 63 MAT. 314 global. 60. 356 trigonométrica elementar. 259 Insert legend.182 ispersistent. 351 HTML. 307 load. 246 GIF. 200 intmax. 90 composta. 121 function. 222 ginput.183 isempty. 28 formato de arquivo. 346 inteiro 8 bits com sinal. 122. 82. 222  K kron. 98 interpl.format. 198 int32. 39 inf. 346 int16. 45.182 isfinite. 228 fread.182  isfield.299 imageview. 20 JIT accelerator. 121 log 10. 122 de números complexos. 263 geração de gráficos. 222 help browser. 301 gcbf. 182.363 gcf. 230 frewind.142. 69 jordan. 230 fseek. 62. 94. 45 isa. 306 iminfo. 159 gtext. 82.161 interpft. 28 input. 222 hdfread. 182 isvector. 198 função. 154 ifourier.213 . 346 line. 302 isinf. 212 Insert colorbar.51 int64. 302 gcd. 122 image. 332 listdlg. 348 Java Virtual Machine.122. 202 isspace. 81.208.182 iscellstr.51 int8. 51 32 bits com sinal. 360 lasterr. 359 fprintf. 82.353 inversa de matriz.222 log. 162 interpolação.121 loglp.182 ismember. 124. 201 isnan.123 isequal. 264 length.363 legend. 82 isfloat. 230 fscanf. 82 istruct. 35 callback. 315 GUIDE ■Graphic User Interface Design Environment. 259 hold. 51 8 bits sem sinal. 197 hidden. 222 HDF.264 griddata.182 issorted. 150 grid. 51 interface com usuário.182 iskeyword. 158 intersect. 183 islogical. 82 isnumeric. 79 isprime. 67 fortran.182 isscalar. 293.221. 182 iscell. 222 if. 122 isreal. 123. 50 intmin. 50 inv. 359 igual.222.123. 124. 81. 88.  123  MATLAEP 7 . 223 MATLAB® 7 Desktop. 81 nnz. 118 pretty.m. 32 escalar. 358 polyder. 210 mod. 78. 293 mat-file.lo g2 .256 plot type. 51 preferences. 32 p o w 2. 341 tridimensional. 29.167 ode15s.mat. 173 optimset.28 nargin. 222 pol2cart. 198 numden. 339 discreta.208 N aN . 81 menu Bar. 282 meshgrid. 143  M  N  maior ou igual. 147 menor ou igual. 120 pathtool. 208 nargout.121 logical. 246  -3  movie2avi. 81 maiorque. 222 peaks. 200 de data e hora.141 potência (matrizAescalar). 105 mesh. 123 persistent.208 de variável. 197 mat2str. 337 ode113. 128 MDL. 128 mlint.Fundamentos \:  :  . 169 OU. 221 mat2cell. 282 meshc.211 PCX. 81  page setup. 362 primes. 140 pseudo-inversa. 207 mfilename. 334 parâmetros de entrada.121 PPM. 65. 272 polinómio. 322 contextual. 35. 209 nchoosek. 198 matemática algébrica e simbólica. 122 material. 120 matlabroot. 208 min. 266 palavras reservadas da linguagem MATLAB®. 144 plot. 330 posto de matriz. 209 pa n. 45. 118 pause. 206 null. 146 polyfit. 140 otherwise. 44. 27 max.198 logspace. 51 nonzeros.165 ones. 157 polyval. 57. 210 M-Lint.121 nil. 27 now. 204 relacionais. 122 modelo do Simulink. 181. 27 primo. 74 mlintrpt. 260 plot tools.81 nested function. 165 ode23tb.354 poly2sym. 119 matlabrc. 164 polar. 258 open. 22 msgbox. 197 num2str.214  otimização.124 número.258 panel. 222 pi. 122 ndims. 273 PNG. 54 plot browser. 165 ode23t.134. 192 orth. 209. 31 matricial. 29 nondouble. 275 pie3. 147 mediana. 257 plot3. 171 orderfields. 19 MATLAB® Desktop. 124 negação.208 pascal. 200 optimget.354 num2cell. 60. 32 precisão dupla.m. 81 que. 165 ode23. 142 jacobiana. 212 PBM. 24 lu.209 PGM.280 pinv. 44. 27 negativo. 145. 219 matriz bidimensional. 163 precedência. 133 inversa. 223 mean. 178 nome da função. 178 norm .208 de saída. 51 simples. 81 marker. 199 de conjunto. 223 operadores bitwise. 140. 138 path. 35. 146 poly.278 plotyy.155. 134 lower. 156 polyeig. 155 característico. 122  objeto ActiveX. 299 pathdef.165 ode23s. 26 de célula. 27 complexo. 47 esparsa. 80 nextpow2. 350 numel. 223 movie. 309 multiplicação escalar. 246 moving tools within the desktop. 283 perms. 257 MAT. 348 ortogonal. 165 ode45. 105 flutuante. 27 pie. 147 median. 175 identidade.156 polyint. 65.165. 69. 62 matlab. 222 ppval. 222 pcode. 31  -  namelengthmax. 35. 186 Is.282 m-file. 147 média.135 oom in. 99 MATLAB® Help Browser.157 Popupmenu.139 notação científica. 144 simbólica. print.221 tab+ctrl. 45. 122 repmat. 102 prompt ’K » '. 121 tand. 235 tic. 188 strtok. 175 speye. 235 textscan. 364 syms. 122 reallog. 303 setdiff. 80 prod. 354 switch. 310 sparse.136 rank. 177 spdiags. 222 title. 219 texlabel. 31 sort. 239 soundview.322 tan. 93. 121 rectangle. 278 str2double. 300 surfc. 21 restoredefaultpath. 343. 24. 340 simplify. 122 símbolo. 183 strread. 340. 340 symvpademo. 80 subplot. 44. 117 tempdir.342 sym2poly. 249 serial.354 RAS. 41 size.135 ran dn . 49. 257. 165 soma. 363 tecias de atalho. 335 toolbox.264 toe. 188 strrep. 279 rmfield. 31 sum. 121 realmax. 187 strncmp. 340 symcalcdemo.198 strcat.219  Q qr. 207 toggiebutton. 58.264 subs. 183 strncmpi. 180 sqrt. 142 transformada de Fourier. 310 quiver. 211 publish to HTML. 192 roots. 179 sprand. 127 profile. 198 str2num. 364 symrotdemo. 283 spline. 91. 347 taylortooi.214 sym.124 slider. 62. 252 série de Taylor. 262 propriedades de exibição da curva do gráfico.300 textread. 207 TIFF. 117. 360 discreta de Fourier. 267 print. 285 svd. 44.141. 32 trapz.224 script. 300 rem. 363 sistema linear. 81  373  .352 subspace. 59 private function. 153 Z. 93 std. 219 tempname. 176 sprandn. 294 shortcut. 120 return. 187 strcmp. 123 real. 163 spones. 117 tag. 363 symlindemo. 347 set. 335 rand.121 selectionchangefunction. 72 properties editor.208. 364  T tab.214 sec. 259 round.353 triu.44 .353 true. 202 shading. 144 quad. 363 text. 193 strvcat. 198 str2func. 176 sprintf. 326 pwd. 129 reshape. 121  I índice Remissivo  seed. 129 resizing tools.130 rotate 3D. 60. 131 surf. 27 realmin. 339 trace. 99 startup. 217 tril. 122 rref. 282 surfnorm. 183 strfind. 141 subtração. 187 stairs. 267 setup.193 struct2cell. 190 strjust. 158 rot90. 70. 363  s save. 173 quadl. 121 single. 51 sinh. 102 push button. 47. 354 solvers. 364 symintro. 100 sign. 222  rat. 82. 361 transposta. 120 static text. 132. 128 produto de Kron. 121 s ech . 84 profiler. 209 ribbon. 364 symeqndemo. 264.m. 277 quiver3. 146. 121 sscanf. 186 spy. 132. 183 strcmpi. 56 proteger código fonte. 335 sendmail. 222 solve.282 surface. 278 start button. 27 realpow. 130. 327 SND. 94.176 spfun. 121 taylor. 359 symbol. 189 struct.189 subfunctions. 179 sphere. 267 preview. 123 rats. 131 sound. 121 sinint.m. 121 sind. 148 tratamento de erros. 359 de Laplace.284  R radiobutton. 147 stem. 173 questdlg. 348 sin. 190  strtrim. 121 tanh. 354 rsums.352 sortrows. 209. 241 wavwrite. 222. 250 user usability. 42 vpa. 258 7tranc  MATLAB® 7■ Fundamentos  . 224 uiload. 26 multi-dimensional.try. 26 linha. 297 Ul Control. 203 unique. 147 variância.  222  wk1 read. 250 uriwrite. 239 workspace. 204 unzip.51 uint64. 312 waitfor. 282 WAV.111  x X Axis. 253 xslt. 222 wavplay. 225 uiputfile. 252 xmlread. 222 wklsread. 79 local.222. 67. 251 zlabel. 353  w waitbar. 316 waterfall. 252 xmlwrite. 316 waitforbuttonpress. 186 uriread. 241 web browser. 30. 78 persistente. 258 XDW. 258 zeros. 30 winopen. 239 wavread. 222 xlsfinfo. 264  z Z Axis.215 who. 222 xlabel. 78 vetor coluna.137 zip. 249 upper. 225 UlMenu Properties.218 TXT. 27 seqüencial. 322 uint16. 264 XLS. 311 uiimport. 226  m i. 83.51 uint8. 221 while. 311 uigetfile. 98  V var. 264 zoom out.51 uint32.237 XML. 44. 147 variável global. 209. 101 which. 312 undock. 297. 238 wk1 write.237 xlswrite. 317 uigetdir. 236 xlsread. 221  u Ul Objects. 253  Y Y Axis. 258 ylabel. 67.240 wavrecord.51 uiopen. 23 union.  G. MANZANO.5: Fundamentos de Programação. F. São Paulo: Érica. A. Algoritmos: Lógica para Desenvolvimento de Programação. N. São Paulo: Érica. MANZANO. 1999. MATSUMOTO. ______ .. Estudo Dirigido de Visual Basic 6. MATLAB 6: Fundamentos de Programação. S. J.2004. 1999. OLIVEIRA. MENDES. N. 1997. São Paulo: Érica. A. G. MATLAB 6.  Referências Bibliográficas  . User's Guide. ______ . D.. Y. E. Estudo Dirigido de C++ Builder 6. A.2004. G. 2000. Using MATLAB Graphics Version 7 . São Paulo: Érica. V. ______ . S. 2002. LITTLEFIELD B. J. Getting Started with MATLAB Version 7. The Student Edition of MATLAB Version 5. São Paulo: Érica. 2003. THE MATHWORKS. ______ . J. Estudo Dirigido de Delphi 8. Prentice Hail.  Sugestões de Leitura: MANZANO. 2001 . J. C++: Programação de Computadores: Guia Prático de Orientação e Desenvolvimento. 2003. 2004. ______ . São Paulo: Érica.Referências Bibliográficas HANSELMAN. Using MATLAB Version 7.. N. São Paulo: Érica. .  além da introdução ao uso do Symbolic Math Toolbox. análise e simulação de modelos matemáticos aplicados às mais diversas áreas. Destinado a estudantes e profissionais da área. desde automação e controle industrial. exercícios práticos. leitura e gravação de arquivos.  D  Com exemplos.editoraerica. este livro apresenta os principais conceitos de utilização dessa fantástica linguagem. sintaxes típicas. Mostra como desenvolver Mplementação de interface com usuário utilizando as funções de caixa de diálogo predefínidas e os recursos do GUIDE do MATLAB ®. treinamentos empresariais e até em escolas de segundo grau. o MATLAB ® vem sendo utilizado por diversos profissionais como ambiente de trabalho básico para criação.  Invista em você.br  85-365-U U 3Z -Ö  llll  788536 500324  . passando por gerenciamento de risco financeiro. superior ou pós-graduação. recursos gráficos e as funções Handle Graphics® que gerenciam objetos gráficos.MATLAB* 7 FUNDAMENTOS MATLAB: inteligência e tecnologia aplicadas à conquista de inovações  esde a sua primeira versão. conceitos básicos. tutorials e uma abordagem objetiva e didática. principais comandos e funções da linguagem. também pode ser utilizado como material de apoio para cursos técnico.  IS B N :  M ___  r  www. aborda o ambiente interativo do MATLAB ® 7 na plataforma PC/Windows XP. aplicativo para matemática simbólica.com. até pesquisas avançadas em biotecnologia e bioinformática. Organizado em sete capítulos.