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.