Você está na página 1de 255
PROGRAMAGAO EM WATLAB PARA ENGENHEIROS Stephen J. Chapman \| Programacao em MATLAB® Engenhetros Stephen J. Chapman BAE SYSTEMS Australia ‘Tradugio Técnica: Flavio Soares Correa da Silva PRD em Inteligéncia Artificial pela University of Edinburgh, livre-docente e professor associado do Depto. de Ciénciada = Computacio, Instituto de Matematica e Estatstica da USP THORIFON. Gerente Editoria: ‘adison Pereira Editora de Desenvolvimento: Eugenia Pssat rodutora Editorial: ‘Ada Santos Seles Produtora Gréfie: Patricia La Rosa © Copyignt 2002 by Brookale 28 ection © Copyright 2003 para a Lingua Portugues adquido por Fonera Thomson tearing ida, ums divisto a Thomson tearing, inc. Thomson Learing™ @ una marca reistads aqu uileada sb beenga. Impresso no Bras Printed in rae. 1234 050803 ua Tap, 114~ 30 andar Pereizes CEP 0235-000 Sto Paula ~ SP Tel: (17) 3665-9900 Fx: (11) 3665.9991 sec@thomsonieatning com br rr thomsonlearing com br songson. Titulo Original: MATLAB® Programming for Engineers Tradugio Técnica: Fis Soares Corea da iva Copidesque: Glauco Per Damas eos 0s ets resenades Nenhuma part deste iro odes ser reproduridasejam (as fore os melas tempregados sem a pernssie, por esto, da Editors, as infratores apicamse as sanceesprevstas nas stiges 102, 104, 106 e 107 de (29.610, 619 oe ‘evereko 1998 Revisso: Fernanda Ameida Unie e Mana Alice da Costa, Composig Segmento & Co, Producdes Grafica Uc capa: ui Prods Visual e Assessor Lida Dados internacionais de Catalogagée na Publicaczo (cr) (Camara Brasileira do Livro, 5, Brasil CChapenan, Stephen J Programacao em MATLAB® pars engenheces/ Stephen J. Chapman eal téene Fo Soares (Corea da Sha,» S30 Pale Ponsa Thomson Leaning, 2003 Titulo original MATLAB proaramming for engines IS8h-25.221-0325.9 1. Analse nameca— Processoment de doe 2. MATLAB L Thu, 03-1935 coD-st9.a0285513 Indices para catslogo sistematice: | Anise numésce: Apicacs0 deMATLAB 519.40285513 2. MATLAB : Aplagao em fans numérica $¥9.402855123 Este livro é dedicaio a minha esposa Rosa, pds 25 anos maracilhosos juntos. Sumario Pretécio xv 1 Introdugao ao MATLAB 1 a 12 13 ‘Vantagens do MATLAB 1 Desvantagens do MATLAB 3 O Ambiente MATLAB 3 13.1 A Area de Trabalho MATLAB 4 132 AJanela de Comandos 4 133. AJanela de Histérico de Comandos 7 134 OEspago de Lancamento 7 135 AJanela de Edigio/Depuragao. 8 13.6 Janela de Figuras 9 137 OEspaco de Trabalho MATLAB 10 138 ONavegador do Espago de Trabalho 11 ‘ 139 Obtendo Ajuda 13 13.10 Alguns Comandos Importantes 14 1.3.11 O Caminho de Busca MATLAB 15 Utilizando 0 MATLAB como Prancheta de Rascunhos 16 Resumo 18 15.1 Resumodo MATLAB 19 Exercicios 19 viii 1 Preramapto em WATLAg® para Enpeoeios 23 24 25 26 27 28 29 210 2a 2az 213 2a 245 22.1 Iniciando Varidveis em Expressées de Atribuigio 25 222. Iniciando com Expresses de Atalho 27 223. Iniciando com Fungées Predefinidas 28 224 Iniciando Variaveis com Entrada pelo Teclado 29 Matrizes Multidimensionais 31 23.1 Armazenando Matrizes Multidimensionais em Meméria 32 232 Acessando Matrizes Multidimensionais com um Unico Subscript 33 Submatrizes 34 24.1 AFungio end 35 242 Utilizando Submatrizes no Ledo Esquerdo de uma Declaragio de Atribuiggo 35 243 Atribuindo um Escalar a uma Submatriz 37 Valores Especiais 37 Exibindo Dados de Saida 39 26.1 Alterando o Formato-Padrio 39 262 AFungio disp 40 263. Saida Estruturada Usando a Fungio fprintt 40 Arquivos de Dados 42 Operagdes com Escalares e Matrizes 44 28.1 Operagdes com Escalares 45 282 Operagdes com Matrizes 45 Hierarquia de Operacdes 48 Eung6es Predefinidas MATLAB 51 2.10.1 Resultados Opcionais 51 2.102 Utilizando Fungdes MATLAB com Matrizes como Entrada 52 2.103 Fungdes MATLAB Comuns Introdugio a Diagramas 52 2.11.1 Utilizando Diagramas xy Simples 54 2.112 Imprimindo um Diagrama 55 2.113 Diagramas Maltiplos 56 2414 Cores de Linhas, Estilos de Linhas, Estilos de Marcadores e Legendas 56 2.115 Escalas Logaritmicas 58 Exemplos 59 Depurando Programas MATLAB. 67 Resumo 69 2.14.1 Resumo de Boas Priticas de Programagio 69 2.142 Resumo do MATLAB 70 Exercicios 72 Expressdes de Ramificagdo e Projeto de Programa 79 31 32 33 Introdusio a Tée Uso de Pseudocs Operadores Relacionais e Légicos 85 33.1 Operadores Relacionais 85 332 Nota de Atencio a Respeito dos Operadores icas de Projeto Top-Down 79 333 Operadores Légicos 88 334 Fungies Logicas 90 34 Ramificagées 92 341 A€strutura if 92 342 Exemplos de Utilizagdo de Estruturas if 94 343 Notas a Respeito do Uso de Estruturas if 100 344° A€Strutura switch 102 345 AEstrutura cry/catch 104 35 Caracteristicas Adicionais de Diagramas 106 35.1 Controlando os Limites nos Diagramas dos Eixos xe y 106 35.2 Desenhando Muiltiplos Diageamas sobre os Mesmos Eixos 109 35.3 Criando Maltiplas Figuras 109 354 Subdiagramas 110 355 Controle Avangado de Linhas Desenhadas 111 35.6 Controle Avangado de Cadeias de Texto 113 357 Diagramas Polares 113 358 Anotando e Armazenando Diagramas 121 3.6 Notas Adicionais a Respeito da Depuragio de Programas MATLAB 123, 3.7 Resumo 126 3.7.1 Resumo de Boas Praticas de Programagio. 127 37.2 ResumodoMATLAB 127 38 Exercicios 128 Lagos 135 41 OLagowhite 135 42 OlLasofor 141 421 Detalhes de Operagio 148 422 As Expresses break e continue 152 423. Lagos Aninhados 153 43° Matrizes Logicas e Vetorizagio 155 43.1 Almportincia das Matrizes Légicas 432. Criando o Equivalente a Estruturas if /e: 44 Exemplos Adicionais 161 45 Resumo 176 45.1 Resumo de Boas Priticas de Programagio 176 452. Resumo do MATLAB 176 46 Exercicios 177 com Matrizes Légicas 159 « Fungdes Definidas pelo Usuario 185 5.1 Introduio a Fungdes MATLAB. 186 5.2 Passagem de Varidveis em MATLAB: O Esquema de Passagem por Valor 192 33 Argumentos Opcionais 202 8.4 Compartilhando Dados pelo Uso de Meméria Global 207 55. Preservando Dados Entre Chamadas de uma Fungio 215, 5.6 FungOes de Fungdes 220 5.7 Subfungdes e FungGes Privadas 224 5.8 Resumo 226 | Programapso em MAILAW™ para Engentwiras ‘Sumicio | 581 Resumo de Boas Pritcas de Programagio 226 73. Matrizes Estruturas. 30 582 _Resumodo MATLAB 227 731 Criando Estruturas 304 59. Exercicios 228 732. Adicionando Campos a Estruturas 306 733 Removendo Campos de Estruturas 307 6 Dados Complexos, Dados de Caracteres eTipos Adicionals de Diagramas 239 734 Usando Dados em Matrizes Estruturas 308 61 Dados Complexos. 239 735. AsFuncies getfielde set field 309 6:11 Varidveis Complexas 241 736 Usando a Fungio size com Matrizes Estruturas 310 612 Usando Nuimeros Complexos com Operadores Relacionais. 242 737 Aninhando Matrizes Estruturas 310 613 Fungdes Complexas. 242 738 Resumo das Fungies structure 311 6.14 Colocando Dados Complexos em Diagramas 246 7A Resumo 312 ; 62 Fungées de Cadeias de Caracteres 230 7.4.1 Resumo de Boas Priticas de Programacio 313 62.1 Fungdes de Conversio de Cadeias de Caracteres 250 74.2 Resumo do MATLAB 313 6.22 Criando Matrizes Bidimensionais de Caracteres 250 75 Exercicios 314 , 623. Concatenagio de Cadeias de Caractees 251 . | ) 624 Comparasio de Cadeins ce Caracteres 252 8 Fungées de Entrada/Saida 317 625. Busca/Substituiglo de Caracteres Dentro de uma Cadein. 254 81 “A Funcio textread 317 | €26 Conversio para Maldscula e Miniseuls 256 82. Mais Informag6es sobre os Comandos oad e save 319 | 627 Conversbes de Numero para Cadeia de Caracteres 256 83 Uma Introducio ao Processamento de Arquivos MATLAB 321 628 Conversbes de Cadeia de Caracteres para Niimero 258 84 Abrindo e Fechando Arquivos 322 £29. Rewme 258 841 AFungio fopen 323 ais 264 842 AFuncéo fclose 326 85 Fungdes de E/S Binérias 326 851 AFungio fwrite 326 852 AFungdo fread 327 8.6 Fungdes de E/S Estruturadas 330 861 AFungio fprintf 330 8.62. Entendendo as Especificagdes de Conversio de Formato 332 863 Como as Cadeias de Caracteres de Formato Sio Utilizadas 334 63. Matrizes Multidimensi 6A Diagramas Bidimensionais Adicionais 266 6.4.1 Tipos Adicionais de Diagramas Bidimensionais 266 642 Fungoes para Diagramas 271 643 Histogramas 272 65 Diagramas Tridimensionais 274 65.1 Diagramas Tridimensionais deLinha 274 1 ce oo Diagrams dimensional deSpeie Malia eCurvede Nive 276 set Reece nee i ‘esumo 8.6.5 AFungao fget1 339 6.6.1 Resumo de Boas Préticas de Programagio 280 B66 Afunio fgets 309 j 662 _Resumo do MATLAB 280 87 Comparando Fungées de E/S Bindtias eEstruturadas 339 67 Exerefios 281 88 Posicionamento de Arquivo e FungBes de Estado. 345 881 AFungio exist 343 7 Matrzes Esparsas, Matrizes Celulares e Estruturas 225 882 APungio terror 347 : 7A Mattizes Esparsas 285 883 Aungo feor 348 ‘ 71. OTipode Dados sparse 287 884 AFungio fte1l 348 72. Matrizes Celulares 292 885 AFungio frewina 348 | 7.2.1 Criando Matrizes Celulares 294 . 8.8.6 AFungio fseck 348 722 Usando Chaves |) como Constntores de Cétulas 295 89. Fungioutimport 354 x 723. Vendo o Contedido de Matrizes Celulares 296 8:10 Resumo. 356 724 Estendendo Matrizes Celulares. 296 8.10.1 Resumo de Boas Pritcas de Programagao 357 / 725. Apagando Células em Matrizes 298 810.2 Resumo do MATLAB 357 726 Usando Dados em Matrizes Celulares 298 11 Exercicios 358 72.7 Matrizes Celulares de Cadeias de Caracteres 299 728 Almportancia das Matrizes Celulares 300 9 Graficos de Controle 361 72.9 Resumo das Fungées da Matriz. cell 303 9.1 O Sistema de Gréficos MATLAB 361 10 1 roymayan en mnreny para engerneias 92 93 94 95 96 97 98 99 9.0 on 92 943 Controles de Objetos 363, Examinando e Modificando Propriedades de Objetos 363 93.1 Modificando Propriedades do Objeto no Momento da Criagio 363, 932 Modificando Propriedacies de Objetos apés a Criagio 364 Usando set para Listar Valores Possiveis de Propriedades 370 Dados Definidos pelo Usuario 372 Localizando Objetos 373 Selecionando Objetos com o Mouse 375 Posigio e Unidades 373 98.1 Posigies de Objetos figure 378 9.82 Posigdes de Objetos axes e uicos 983. Posigdes de Objetos text 379 Posigbes de Impressio 382 Propriedades Default e de Fabrica 383 Propriedades de Objetos Graficos 385 Resumo 385 9.12.1 Resumo de Boa Pratica de Programagio 386 9.122 Resumo do MATLAB 386 Exercicios 387 Interfaces Gréficas de Usuérios 389 10.1 102 103 104 10; 106 ‘Como Funciona uma Interface Gréfica de Usuério 389 Criando e Exibindo uma Interface Grifica de Ususrio 390 10.21 Espiando Por Trés dos Panos 100 10.22 A Fstrutura de uma Subfungiade Retorno 402 1023 Adicionando Dados de Aplicagio a uma Figura 403 1024 Algumas Fungoes Uteis 404 Propriedades de Objetos 404 ‘Componentes da Interface Grifica de Usuétio 405 104.1 Campos de Texto 407 1042 Caixas de Edigio 407 1043 Quadros 407 1044 Botses 407 10.45 Chaves 409 10.46 Caixas de Verificasio e Marcadores 409 1047 Menus Dinamicos 412 1048 Caixas de Listagem 412 1049 Réguas 415 Caixas de Didlogo 420 105.1 Caixas de Didlogo de Erro e de Aviso 421 1052 Caixas de Dislogo de Entrada 421 1053 As Caixas de Dislogo uigettileevisetfile 422 Menus 423 106. Suprimindo o Menu-Padrio 26 10.62 Criando seus Préprios Menus 427 10.63 Teclas de Aceleragao e Mneménicos de Teclado 428, 10.64 Criando Menus de Contexto 28 Somivio | xiil 10.7 Dicas para Criar Interfaces Grificas de Usuério Eficientes 434 10.7 Dicas de Ferramentas 434 1072 Peode 435 10.73 Melhorias Adicionais 437 108 Resumo 441 10.8.1 Resumo de Boas Praticas de Programacio 443 1082 Resumo do MATLAB 443 109 Exercicios 444 Apéndice A Conjunto de Caracteres ASCII 447 ‘Apéndice B Respostas para os Testes 449 indice Remissivo 463, Prefacio MATLAB (que abrevia MATrix LABoratory ~ Laboratdrio de Matrizes) é um programa de computador de uso especifico, otimizado para executat célculos centificas e de engenharia. Ele nasceu como um programa para operagies mateméticas sobre matrizes, ‘mas ao longo dos anos transformou-se em um sistema computacional flexivel capaz de resolver essencialmente qualquer problema técnico. (© programa MATLAB implementa a linguagem MATLAB, e oferece uma ampla biblioteca de fungSes predefinidas para que a programacio técnica se torne mais fécil e eficiente. Essa variedade extremamente ampla de fungdes torna muito mais fécil resolver problemas técnicos em MATLAB do que em outras linguagens, como Fortran ou C. Este livro apresenta a linguagem MATLAB e mostra como utilizé-la para resolver problemas téenicos tipicos. Esta obra ensina 0 MATLAB como uma linguagem de programacio técnica, ‘mostrando aos estudantes como escrever programas limpos, efftientes ¢ bem-docu: ‘mentados. Ela nao tem a pretensio de ser uma descrigio completa de todas as centenas de fungdes MATLAB. Em vez disso, ensina como usar 0 MATLAB como uma lingua- ‘gem, e como localizar qualquer funcio desojada através dos recursos de ajuda on-line do MATLAB, (Os primeiros seis capitulos sio feitos para servir como texto para um curso de “In- trodugio a Programacio/Resolugio de Problemas” para estudantes calouros de enge- mharia. Esse material deve se adequar folgadamente para um curso de nove semanas com trés horas por semana. Os capitulos restantes cobrem t6picos avangados como entrada/saida e interfaces graficas de usudrios. Esses capitulos podem ser cobertos ‘em cursos mais longos, ou usados como referéncia por estudantes de engenharia ‘ou engenheiros que utilizem 0 MATLAB como parte de seus cursos ou atividades AVL | Programagéo em MATLAB® para Engenhenas Esta edigdo &especifieamente devotada is versdes 6.0 ¢ 6.1 do MATLAB. Embora a linguagem MATLAB basica tenha se mantido constante desde a versio 50, as ferra- rmentas integradas, as anelas e o subsistema de ajuda mudaram drasticamente. Adicio- ralmente, um paradigma completamente novo para projetos de interfaces graficas de ‘usuério MATLAB foi introduzido na de 6.0. Os usuarios que trabatham com versdes do MATLAB anteriores & de 6.0 precisam estar conscientes que a descrigio do desenvolvie ‘mento de interfaces grificas de usuario no Capitulo 10 nao serve para eles, O livio também cobre as melhorias pequenas, porém importantes, na prépria lin- ‘guagem, como a introdugao da expresso cont inue. ‘As Vantagens do MATLAB para Programagao Técnica MATLAB apresenta muitas vantagens, em comperago com linguagens de computador ‘convencionais, para resolugio de problemas técnicos. Dentre elas, temos: 1, Facilidade de Uso MATLAB € uma linguagem interpretada, assim como muitas verses de Basi. Como Basic, 6 muito fécil de usar. O programa pode ser usado como prancheta de rascunhos para avaliar expresses digitadas em linha de comando, ou para executar programas grandes previamente escritos, Programas podem ser escri- tos e modificados com facilidade usando o ambiente de desenvolvimento inte- grado embutido, bem como depurados usando o depurador MATLAB, Por ser muito fécil de usar, a linguagem é ideal para uso educacional e para desen- volver rapidamente protstipos de novos programas, Muitas ferramentas de desenvolvimento de programas sio fornecidas para tomar o programa facil de usar. Dentre elas, temos um editor/depurador, lum navegador de espaco de trabalho e muitos programas de demonstracio. 2, Independéncia de Plataforma MATLAB tem suporte em muitos sistemas computacionais diferentes, propor. cionando, em grande medida, uma independéncia de plataforma, No momento de preparagio deste livro, a linguagem tinha suporte em Windows 9x/NT/2000 em diversas versdes de UNIX. Programas escritos em uma plataforma fun- cionam em todas as outras, earquivos de dados escritos em qualquer plataforma poclem ser lidos transparentemente em todas as outras. Como resultado, pro- {gramas escritos em MATLAB podem migrar para novas plataformas quando as necessidades do usuario se alteram, 3. Fungies Predefinidas MATLAB ver completo, com uma grande biblioteca de fungies predefinidas que proporcionam solugbes testadas e empacotadas para muitas tarefas técnicas bésicas. Por exemplo, suponha que vocé esteja escrevendo um programa que precise calcular a estatistica associada ccm um conjunto de dados de entrada Na maioria das linguagens, voc? precisaria escrever suas préprias sub-rotinas ou fungdes para implementar 03 cileulos como média aritmética, desvio padrio, mediana etc. Essas e centenas de outras fungbes s20 construfdas jana linguagem MATLAB, tornando seu trabalho muito mais fel Prtécio Além da grande biblioteca de fungées construfda na linguagem basica MATLAB, existem muitas outras caixas de ferramentas especializadas dispo- niveis para ajudar a resolver problemas complexos em areas especificas. Por exemplo, um usuario pode comprar caixas de ferramentas-padrio para resolver problemas em processamentos de sinais, sistemas de controle, comu- nicagoes, processamentos de imagens ¢ redes neurais, dentre muitas outras. 4. Diagramas Independentes de Dispositivos Diferente de outras linguagens de computador, MATLAB tem diversos coman- dos para imagens ¢ desenhos integrais. Os desenhos e as imagens podem ser exibidos em qualquer dispositive grafico suportado pelo computador onde est funcionando o MATLAB. Esse recurso toma o MATLAB uma ferramenta notavel para visualizar dados téenicos, 5. Interface Grafica de Ususrio MATLAB jinclui ferramentas que permitem que um programador corstrua interativamente uma interface grafica de usuario (GUI, do inglés Graphica! User Interface) para seu programa. Com esse recurso, 0 programador € capaz de pro- jetar programas sofisticados para analise de dads que podem ser operados por ‘usudrios relativamente inexperientes. 6. Compilador MATLAB: A flexibilidade e a independéncia de plataforma do MATLAB sfo propor- cionadas pela compilagao de programas MATLAB em um pseudocédigo inde- ppendente de dispositivo, e pela interpretacio das instrugées do pseudocSdigo em lempo de execucio. Essa abordagem é semelhante 2 usada na linguagem de programagio Visual Basic, da Microsoft. Infelizmente, 0 programa resultante por vezes pode ser lento, pois o cédigo MATLAB 6 interpretado em vez decom: pilado, Indicaremos aspectos que tendem a reduzir a velocidade da execusio de programas, quando 0s encontrarmos. Um compilador MATLAB separado esté disponivel. Ele pode compilar lum programa MATLAB como um executivel verdadero que executa mais ripido ‘que o cédigo interpretado. Essa é uma grande forma de converter um programa de protstipo MATLAB em um executdvel apropriado para venda e distribuicio Caracteristicas deste Livro Muitas caracteristicas deste livro t@m por objetivo enfatizar a mancira apropriada de escrever programas MATLAB. Essas caracteristicas devem ser iteis para um estudante aprendendo a usar 0 MATLAB e para quem ja trabalha com esse programa. Dentre las, temos: 1. Enfase na metodologia de projetos top-down CO livzo apresenta uma metodologia de projets top-down no Capitulo 3, eentio a utiliza de forma consistente no sew decorter. Essa metodologia encorja 0 cestudante a pensar a respeito do projeto apropriado de um programa anes de | Progranagte om MATLAB are Egos iniciar a codificagao. Ela enfatiza a importancia de definir claramente o proble- ‘maa ser resolvido e os dados requeridos de entrada e saida antes de iniciar qualquer outra atividade. Uma vez definido apropriadamente 0 problema, ensina o estudante a aplicar o refinamento passo a passo para subdividir a tarefa ‘em sublarefas menores, ¢ implementat as sublarefas como sub-rotinas ou fangdes separadas. Finalmente, a metodologia utilizada ensina a importancia de efetuar testes em todos 08 estégios do proceso, tanto testes unitdrios das rotinas componentes como testes exaustivos do produto final 0 processo formal de projeto ensinado no livro pode ser assim resumido: Estabelega claramente 0 problema que vocé esté tentando resolver. ‘* Defina os dados de entrada requerides pelo programa e os dados de saida produzidos por ele + Desereva 0 algoritmo que vocé pretende implementar no programa. Esse passo requer projeto fop-ioum e decomposigao passo a passo, fazendo uso de pseudocsdigo ou de diagramas de fluxo, ‘+ Transforme o algoritmo em sentengas MATLAB, ' Teste o programa MATLAB. Nesse passo estio incluldas os testes unitirios de fungdes espectficas e 0 teste exaustivo do programa final, com diferentes conjuntos de dados. 2, Bnfase em fungBes O livro enfatiza 0 uso de fungGes para a decomposigio ligica de tarefas em subtarofas menores, Ele ensina as vantagens das fungies para ocultar dados. Enfatiza também a importancia dos testes unitérios das fungSes antes de com- bind-las no programa final. O livro mostra ainda os erros comumenteefetuados com fungies ¢ como evitélos, 3, Enfase em ferramentas MATLAB © livro ensina 0 uso apropriado das ferramentas pré-construidas MATLAB para facilitar a programagio e depuragio de programas, As ferramentas tratadas sio o Espaco de Langamento, o Editor/Depurador, o Navegador do Espago de Trabalho, o Navegador de Ajuda e ferramentas de projeto de GUI 4. Notas de boa pritica de programagio As notas enfatizam as boas priticas de programagio & medida que so apre- sentadas, para a conveniéncia do estudante. Além disso, as boas priticas de programagio aprosentadas em um capitulo sdo resumidas no seu final. Apre sentamos a seguir uma nota de boa prittca de programacio, Boa Pratica de Programagao Sempre destaque com tabulagio 0 corpo de uma construgdo if, com dois ou mais cespagos, para melhorar a legibilidade do cédigo. Priicio | xix 5. Notas de erros de programagio Essas notas enfatizam erros comuns que podem ser evitados. Apresentamos a seguir uma nota de erros de programacio, Sempre verifique se os seus nomes de varveis nao se repetem nos primeiros 31 carac- teres. Se isso nao ocorrer, o MATLAB néo conseguird diferenciar as varidveis, EATS 6. Bnfase nas estruturas de dados No Capitulo 7, temos uma discusséo detalhada a respeito das estruturas de dados MATLAB, incluindo matrizes esparsas, matrizes de células e matrizes de estruturas. O uso apropriado dessas estruturas de dados ¢ ilustado nos os sobre Grificos de Apoic e Interfaces Graficas de Usudrios. Caracteristicas Pedagdgicas- Os primeizos seis capitulos deste livro sio projetados especificamente para uso em ccursos de Introdugio 4 Programagio e a Resolugao de Problemas. Deve ser possivel cobrir esse material confortavelmente em um curso de nove semanas, com trés horas semanais. Se 0 tempo for insuficiente em algum programa particular de engenharia, 0 Capftulo 6 poders ser eliminado; os capitulos remanescentes ainda assim ensinario 0 fundamentos de programagao e uso do MATLAB para resolugio de problemas. Essa caracteristica deve ser atraente para 0s proessores de engenharia pressionedos para compactar cada vez mais material dentro de um curriculo finito Os capitulos seguintes tratam de material avangado que seré stil para estudantes © engenheiros ao longo de suas carreiras. Vie material inclui recursos avangados de entrada/saida e 0 projeto de interfaces gralw ss de usuarios para os programas. O livro inclui diversas caracteristicas jn njcladas para dar suporte 3 compreens30 do estudante.* Estdo incluidos 15 testes, sistribuidos a0 longo dos capitulos. As respostas a todas as perguntas esto apres: nladas no Apéndice B.Os testes podem ser usados como autotestes de compreensic Alim disso, temos aproximadamente 140 exercicios de final de capitulo. As boas prilias de programacéo so apresentadas em todos os capitulos em quadros de Boa Priti de ProgramacSo, e os ertos comuns so apresentados em notas de Erros de Prograni,io. O material de final de capitulo é com- posto por Resumos de Boas Priticas de Mugramagio e Resumos de Comandos FungOes MATLAB. * NIE: Hi no final do tivo, um encart de fgur pelt de cada igara que no péde se exbido lords, Eas sustram alga pono especial a ree tons de cine Agradecimentos Quero agradecer a minha esposa, Rosa, e a nossos filhos Avi, David, Rachel, Aaron, Sarah, Naomi, Shira e Devorah, por serem pessoas t20 agradveis ¢inspirarem todos os ‘meus esforcos. Stephen J. Chapman Capitulo 1 Introdugao ao MATLAB MATLAB (que abrevia MATrix LABoratory ~ Laborat6rio de Matrizes) é um programa de computador especializado e otimizado para célculos cientificas e de engesharia, Inicialmente, era projetado para cflculos com matrizes; ao longo dos anos, transformou-se em um sistema computacional flexivel, capaz. de resolver essencialmente qualquer problema técnico. (© programa MATLAB implementa a linguagem de programagio MATLAB, junta: mente com uma grande biblioteca de fungoes predefinidas que tornam as tarefas de programagao téenica mais féceis eficientes. Este livro apresenta a linguagem MATLAB ‘e mostra como utilizé-la para resolver problemas técnicos tipicos. MATLAB é um programa muito grande, com uma rica variedade de funsGes. Até ‘mesmo a versio bdsica do MATLAB, sem ferramentas adicionais, 6 muito mais rica que outras linguagens de programacio técnica. Existem mais de 1.000 fungées no produto MATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais fungoes fem diferentes especialidades. Este livro nao pretende apresentar ao leitor todas as fangdes MATLAB, Em vez disso, o usuério aprende os furdamentos de como escrever, depurar e otimizar bons programas MATLAB, juntamente com um subconjunio das fungSes mais importantes. Outro aspecto igualmente importante é que o programador aprende a utilizar as ferramentas do préprio MATLAB para localizar a fungdo adequa. da a um proposito especifico a partir da enorme gama de opsdes disponiveis. 1.4. Vantagens do MATLAB MATLAB tem muitas vantagens, em comparagao com linguegens computacionais con- vencionais, para resolver problemas técnicos. Dentre elas, temos: 2 | Provan em MATLAB ar gees 1 Facilidade de Uso MATLAB € uma linguagem interpretada, assim como diversas versbes de Basic. ‘Como 0 Basic, ele é muito cil de usar. C programa pode ser usado como pran- cheta de rascunhos para avaliar expressées digitadas em linha de comando, ou pode ser utilizado para executar programas grandes escritos previamente. Os programas podem ser facilmente escritas e modificados no ambiente integrado de desenvolvimento, e depois depurados por meio do depurador MATLAB, Como a linguagem € muito fécil de usar, ele € ideal para o desenvolvimento rapido de protétipos para novos programas. Diversas ferramentas para desenvolvimento de programas sio fornecidas, 0 que failta o uso do programa. Dentre elas, temas um editor/ depurador integrado, sum navegador do espago de trabalho e diversos programas de demonstragio. 2 Independéncia de Plataforma MATLAB tem suporte em diferentes sistemas computacionais, 0 que propor ciona independéncia de plataforma. No momento da preparagio deste livro, a linguagem tem suporte em Windows 95 /98/ME /NT/2000 e diferentes versses de UNIX. (Versdes mais antigas do MATLAB eram disponiveis para computa- dores Macintosh ¢ VAX, as quais ainda sio utilizadas em diversos locais) Programas escritos em qualquer plataforma so executados nas outras plata- formas, e arquivos de dados escritos em qualquer plataforma podem ser lidos transparentemente nas outras. Com iso, programas escritos em MATLAB podem migrar para novas plataformas cas0 0 usuidrio precise da mudanca. 3. Fungies Predefinidas MATLAB vern completo, com uma grande biblioteca de fungSes predefinidas, ue representam solugGes testadas e empacotadas para diversas tarefas técnicas basicas. Por exemplo, suponha que vocé esteja escrevendo um programa para calcular as estatisticas relacionadas com um conjunto de dados de entrada, Na ‘majoria das linguagens, vocé precisaria escrever suas proprias sub-rotinas ou fungSes para implementar os célculos de média aritmética, desvio-padrao, me- diana, ete. Essas e centenas de outras fungOes fazem parte da linguagem MAT- LAB, assim facilitando o seu trabalho, ‘Alem da grande biblioteca de funcées presentes na linguagem MATLAB. bisica, diversas ferramentas especificas estéo disponiveis para ajudar a resolver problemas complexos em dreas especificas. Por exemplo, um usudrio pode adquirir ferramentas-padrao para resolver problemas em Processamento de Sinais, Sistemas de Controle, Comunicasies, Processamento de Imagens ¢ Redes Neurais, além de outros. Fxistem :ambém muitos programas MATLAB dle uso livre, que sio contribuigées de usudrios compartilhadas por meio da pagina WWW do MATLAB, 4 Desenhos Independentes de Dispositives Diferente da maioria das linguagens de computador, MATLAB tem muitos co- ‘mandos para desenhos e imagens. Os desenhos e imagens podem ser apresen- tados em qualquer dispositivo de saida grifica suportado pelo computador que executa 0 MATLAB. Esse recurso torna 0 MATLAB uma ferramenta excepeional Para visualizagao de dados téenicos, Captus 1 imoarzoz0 areas | 3 5 Interface Grafica de Usuério | MATLAB tem ferramentas que permitem a um usudrio construir interativa- rmente uma interface grafica de usudrio (GUL, do inglés Graphical User Interface) para seus programas. Com esse recurso, 0 programador pode projetar pr gramas sofisticados de andlise de dados, os quais podem ser operados por Usuarios relativamente inexperientes. 6 © Compilador MATLAB A flexibilidade ea independéncia de plataforma do MATLAB resultam da com- pilagao de programas MATLAB em um e6digo independente de dispositiva denominado peode, e da interpretacio em tempo de execusao das instrugdes em peode. Essa abordagem € similar & adotada pela linguagem Visual Besic da Microsoft. Infelizmente, os programas resultantes podem as vezes se tornar Tentos, pois 0 cédigo MATLAB é interpretado em vez de compilado. Indicaremos fos aspectos que tendem a tornar a execugio de programas mais lenta quando os encontrarmos. Existe um compilador MATLAB separado. Ele pode compilar um pro- .grama MATLAB como um programa efetivamente executavel, que é mais répido que o cédigo interpretado. Essa & uma boa forma de converter um programa protétipo MATLAB em um programa executavel que pode ser vendide e dis- tuibuido a usudtios. 1.2. Desvantagens do MATLAB MATLAB tem duas desvantagens principais. Primeiro, ele é uma linguagem interpretada, por isso pode ser mais lento que linguagens compiladas. Esse problema pode ser dimi ruido pela estruturacio apropriada dos programas MATLAB e pelo uso do compilador MATLAB para compilar o programa final MATLAB para distibuigdo e uso geral A segunda desvantagem 6 0 custo: uma cépia completa do MATLAB é de cinco a dex vezes mais cara que um compilador convencional C ou Fortran, Esse custo rela vamente alto é mais do que compensado polo tempo reduzido requerido para um engenheiro ou cientsta criar um programa —o que torna o MATLAB eficaz para empresas. Ele pode ser muito caro, entretanto, para a compra individual. Felizmente, existe uma versio de estudante mais barata do MATLAB, que é uma excelente ferramenta para estucantes que queiram aprender a linguagem. A versio de estudante do MATLAB é essencialmente idéntica & versio completa 1.3. 0 Ambiente MATLAB A unidade fundamental de dados em qualquer programa MATLAB é a matriz. Uma ‘matriz é uma colegio de valores de dados organizados em linhas e colunas, determi nada por um nome tinico. Valores individuais de dados em uma matriz podem ser aces- sados por meio do nome da matriz seguido de indices entre parénteses que identificam @ linha e a coluna de um valor particular, Até mesmo escalares sio tratados como matrizes em MATLAB ~ eles sio simplesmente matrizes com apenas uma linha e uma coluna. Aprenderemos a criar ¢ a manipular matrizes MATLAB no Capitulo 2. _ 4 Pregramapto am uatAg® para Empntois Na execugio do MATLAB podem ser exibidasjanelas de diferentes tipos, as quais aceitam comands ou exibem informagdes. Os ts tipos mais importantes de janelas ‘io Janela de Comandos, onde podem ser colocados comandas; Janela de Figuras, que exibem desenhos e graficos; e Janelas de Edigio/Depuragio, que permitem a um usuario eriar e modificar programas MATLAB. Vamos ver exemplos desses tréstipos de janelas na presente segio. ‘Além disso, o MATLAB pode exibir outras janelas de auxiio e que possbilitam a0 usuario examinar 0 valor de varidveis definidas em meméria, Vamos examinar aqui algumas dessas janelas adicionais, e examinar as outras quando discutiemos como depurar programas MATLAB 1.3.1 A Area de Trabalho MATLAB Ao iniciar o MATLAB Versio 6, aparece uma janela especial denominada area de tra- balho MATLAB. A configuragio inicial da rea de trabalho MATLAB € exibida na Figura 1.1. Ela integra diversas ferramentas para gerenciar arquivos, varidveis ¢ apli- cagbes dentro do ambiente MATLAB As principais ferramentas presentes na drea de trabalho MATLAB, ou que podem ser acescadas a partir dela, sio as seguintes: * Janela de Comandos * Janela de Hist6rico de Comandos * Espago de Langamento * Janela de Edigdo/Depuragio * Janela de Figuras *+ Navegador do Espaco de Trabalho e Editor de Matrizes + Navegador de Ajuda + Navegador do Diret6rio Corrente ‘Vamos discutir as fungbes dessas ferramentas em segies posteriores deste capitulo, 1.3.2 A Janela de Comandos (O lado direito da érea de trabalho MATLAB contém a Janela de Comandos. Um usué- tio pode inserir comandos interativos pelo marcador de comands (>), na Janela de ‘Comandos, ¢ eles serio executados de imediato, Um exemplo de célculo interativo simples 6 seguinte: suponha que vocé queira calcular a érea de um circulo com raio de 2,5 m. Iso pode ser feito pela janela de coman- dos MATLAB, digitando: >> area = pi * 2.592 19.6350 apts vaio aouaTias | & ‘OEspago de Langament. tobe una anore de se contol permite ecueiagso, Disparao gue um sui veriique fdorsvapes e feramentas —Mavegader de ou modiqueo dretéto ‘ra cata produto ‘Nua corrente Seen: se eee fice ce Poneto bonnie Adanela de Hitrico 0 Navegador fe Camandos exbe 05 comandos anteriores Diretiio 0 Navegador a Arado Corrante bees arqutes Trabalho ede as vars bo dretéiacarente——defnidas na rea de tabato Figura 1.4. érea de trabalho MATLAB. A aparéneia exata da janela pode deri igeirzmente fem diferentes tipos de computador. © MATLAB calcula a resposta assim que a tecla Enter é pressionada, e armazena 0 resultado em uma variavel (na realidade, em uma matriz 1 x 1) denominada area. O contedido dessa varidvel é exibido na Janela de Comandos, conforme mostrado na Figura 1.2, ea varidvel pode ser usada em outros céleulos, (Note que x é predefinido no MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar set valor como 3.141592... ‘Se uma declaragio é muito extensa para ser digitada em uma tinica linha, ele pode ser complementada em linhas sucessivas digitando reticéncias (..) no final de cada 6 | Prosramagso em aULAB pra Eger: Figura 1.2 Janela de Comandos fica mais & direta na étea de trabalho. Os usustios podem inserir comandos e ver as respostas al linha, ¢ ento continvando na linha seguinte. Por exemplo, as duas expresstes a seguir Sio idénticas: ML = 14 2/2 44/36 1/4 1/5 4 1/67 mlel+ 121s ia. 41/5 + 1/6 Em vez de digitar comandos diretamente na Janela de Comandos, uma série de comands pode ser colocada em um arquivo, ¢ 9 arquivo inteiro pode ser executado, quando digitamos seu nome na Janela de Comandios. Esses arquives so denominados arquivos de scripts. Arquivos de scripts (e fungSes de scripts, como veremos) sio tam- bbém chamados arquives M, por terem uma extensio de arquivo * .m" Casa ioaupozonaruse | 7 Figura 1.3 AJanela de Histérico de Comandos, mostrando dois comandos sendo apagadis. 1.3.3 A Janela de Histérico de Comandos A Janela de Histérico de Comandos exibe uma lista dos comandos que um usuario inseriu na Janela de Comandos. 4 lista de comandos anteriores pode se estencler a exe cugies anteriores do programa. Os comandos permanecem na lista até serem apagados. Para reexecutar qualquer comando, simplesmente clique duas vezes sobre ele com 0 botdo esquerdo do mouse, Para apagar um ou mais comandas da Janela de Histérico de Comandos, selecione os comandos e clique sobre eles com 0 botdo direito do mouse Surgird um menu, que permitird ao usuario apagar os itens (ver Figura 1.3). 1.3.4 0 Espago de Langamento © Bspago de Langamento 6 uma ferramenta especial que agrupa referéncias a docu _mentacio, demonstragies e ferramentas relacionadas para o proprio MATLAB e para finaris oo Denos | fatcurcenenisestory | fiockapece fares Eb siine (cor bssees) Oreos rece es) bgicore ses ne $b edaarasn comater Heh sugat Frocessing Tootbor dh seantarten Tonthow Launen pag_[ Workspace J Figura 1.4 © Espago de Langamento. cada conjunto de ferramentas que vocé adquire. A informacio é organizada por pro- duto, com todas as referéncias listadas abaixo de cada produto ou conjunto de ferra- mentas. Pessoas diferentes irdo adquirir produtos diferentes, portanto, 0 contetido exato dessa janela varia de instalagdo para instalagio. ‘A Figura 14 mostra o Espago de Langament> com referéncias expandidas para MATLAB bésico. Ao clicar duas vezes sobre um desses itens, voce pocle obter ajuda para usar o MATLAB, executar os programas de demonstracio, acessar as ferramentas- padrio fornecidas com o programa ou visitar a pagina WWW do MATLAB na Internet 1.3.5 A Janela de Edigéo/Depuragao Uma Janela de Edigio/Depuragao é usada para criar novos arquives M ou modificar os jd existentes. Uma Janela de Edicao/Depuracio 6 criada automaticamente quando vocé ctia um novo arquivo M ou abre um. Vocé pode criar um novo arquivo M selecionando “File/ New /M-file” no menu da area de trabalho, ou clicando sobre o icone C} na Barra de Ferramentas. Vocé pode abrir um arquivo M selecionando “File/Open” no menu da frea de trabalho ou clicando sobre o icone ina Barra de Ferramentas. A Janela de Edigio/Depuracio é essencialmente tum editor de textos de progra- mas, com caracteristicas da linguagem MATLAB destacadas por cores diferentes. ‘Comentarios em um arquivo M aparecem em verde, variéveis e mimeros, em preto, cadeias de caracteres, em vermelho, e palavras-chave da linguagem, em azul, Um exem- plo de Janela de Edigao contendo um arquivo M simples é exibido na Figura 1.5. Esse arquivo calcula a drea de um circule, dado o sew raio, e exibe o resultado. saloLx| oe eee OeGelsoeo (Af! 00/609 08) mPa E Fou 15 AJanela de Edigio/Depuragio, exibindo o arquivo czic_area m. Uma vez gravado o arquivo M, ele pode sor executado ao digitarmos seu nome na Janela de Comandos. Para 0 arquivo M da Figura 1.5, os resultados $30 » cale_area The area of the circle is 19.635 ‘AJanela de Edigdo /Depuragao também funciona como depurador, conforme vere- ‘mos no Capitulo 2 1.3.6 Janela de Figuras Ua Janela de Figuras ¢ usada para exibie gréficos MATLAB. Uma figura pode ser a representacio gréfica bidimensional ou tridimensional de dados, uma imagem ov uma GUL Um arquivo de script simples que calcula e desenha a fungi seno (x) é mostrada a seguir: & sincxm: Bese arquivo M calcula e desenha a % funggo seno{x) para 0 <= x <= 6. 0.2 y = sinix) plot ix, yi Se.esse arquivo for gravado com o nome sin_x.m, um usurio poderé executé-lo digi- tando *sin_x* na Janela de Comandos. Quando 0 arquivo de script for executado, 0 10 | Progam MATAR gra gees “=1513) EER Wow Fest Tone Wann Hep Joeualrar7|eee o| os o| 02 22] 04 os} Figura 1.6 Desenho MATLAB de seno (x) versus x MATLAB abriré ume Janela de Figuras e desenhard a fungSo seno (x) dentro dela. O desonho resultante é exibido na Figura 1.6 1.3.7 0 Espago de Trabalho MATLAB Uma declaragao da forma z= 10 ccria uma varidvel denominada z, armazena 0 valor 10 nessa variavel e a grava em uma parte da meméria do computador denominada espago de trabalho. Um espaco de tra- balho é a colegio de todas as variaveis e matrizes que podem ser usadas pelo MATLAB quando um comando, arquivo M ou fungao em particular esta em execugao. Todos os ‘comandos executados na Janela de Comandos (e todos os arquivos de script executados a pattir da Janela de Comandos) compartitham um espago de trabalho comum, para que eles possam compartihar varidveis. Conforme veremos neste livro, as fungdes MATLAB diferem dos arquivos de script, pois cada fungio tem seu préprio espago de trabalho separado. " Uma lista de todas as variaveis e matrizes no espaco de trabalho corrente pode ser gerada por meio do comando whos. Por exemplo, apés executar 0s arquivos calc_area e sin_x, 0 espago de trabalho contém as seguintes variéveis: >» whos Nane Size Bytes Class area bd 8 double array radius 1xl 8 double array et 1x32 64 char array x 1x61 488 double array ¥ 1x61 488 double array id total is 156 elements using 1056 bytes CO arquive de script calc_area criou as variveis area, radius e string, eo arquivo de script s in_x criow as varidveis x e y. Observe que todas as variaveis estao no mesmo ‘espaco de trabalho. Se dois arquivos de script forem executados sucessivamente, 0 segundo arquivo de script poders usar varidveis criadas pelo primeiro, ( contetido de qualquer variavel ou matriz pode ser determinado pela digitacio do nome apropriado na Janela de Comandos. Por exemplo, 0 conteddo de string pode ser obtido da seguinte forma: >» string string = ‘The area of the circle is 19.635 ‘Uma varivel pode ser apagada do espago de trabalho usando o comando clear. Esse comando tem a seguinte forma: clear varl var2 onde var € var? sio os nomes das variéveis a serem apagadas. O comando clear variables, ou simplesmente clear, apaga todas as varidveis do espaco de trebalho corrente, 1.3.8 0 Navegador do Espago de Trabalho (© contesido do espaco de trabalho corrente pode também ser examinado por meio do Navegador do Espaco de Trabalho baseado em GUI. Na configuragio bésica, 0 Nave- gador do Espaco de Trabalho aparece no canto superior esquerdo da érea de trabalho, Por meio dele, temos uma apresentagio gréfica da mesma informago dada pelo co- ‘mando whos, € 0 que é apresentado 6 atualizado dinamicamente cada vez que tmuda 0 contetido do espaco de trabalho. © Navegador do Espaco de Trabalho também permite que um ustrio modifique o contetido de qualquer varidvel no espago de trabalto, ‘Uma tipica Janela do Navegador do Espaco de ‘Trabalho ¢ exibida na Figura 1.7. Como vocé pode ver, ela exibe a mesma informacio que o comando whos. Clicat duas vezes sobre qualquer variavel na janela aciona o Editor de Matrizes (Figura 1.8), que Permite que 0 usuario modifique a informagdo armazenada em uma varidvel, — Figura 1.7 4 > [iaveen Fad Workspace ‘ONavegador do Espaco de Trabalho, ana ora RATS] | soe Fw , x Tat Ts a eee eee 0 ase Figura 1.8 © Fiditor de Matrizes € acionado clicando duss vezes sobre uma varidvel no Navegador do Espaco de Trabalho. O Efitor de Matrizes permite que 0 ususrio rodifique os valores contidos em uma varidvel ou matriz, Capitula t dnteodupdo ao MATLAB | 13, #9 +a) 1" Seisicina [© Finding Functions and Properties 2 Bevan Bien TP eStecre sence Becwecsaor Printing the Documentation Figura 1.9 © Navegador de Ajuda Uma ou mais variaveis podem ser apagadas do espago de trabalho pela selecio com o mouse e utilizagao da tecla Delete, ou clicando com o botio direito do mouse e selecionando a opgao de apagar. 1.3.9 Obtendo Ajuda Vocé pode obter ajuda no MATLAB de trés maneiras. © métode preferido € utilizar 0 Navegador de Ajuda. Vocé pode iniciar 0 Navegacor de Ajuda selecionando 0 fcone de Ajuda localizado na barra de ferramentas, ou digitando he1pdesk ou help na Janela de Comandos. E possivel também obter ajuda navegando pela documentagio do MATLAB, ou voc’ pode procurar os detalhes de um comanda em particular. © Navegador de Ajuda € mostrado na Figura 1. Existem também duas formas baseadas em linhas de comando para obter ajuda. A Primera forma é digitar help ou hep seguido de um nome de fungSo na Janda de Comandos. Se voce digitar somente help, 0 MATLAB exibiré uma lista de possiveis S6picos de auda na Janela de Comandos, Se uma fungio especfica ou nome de conunto de ferramentas for acrescentado, seré apresentada ajuda para aquela fancio ot con- junto de ferramentas especitio. ‘Asegunda maneira de obter ajuda 6 0 comando Look for. Ele difere do comando help, pois este procura por un nome de funcéo que case perfeitamente com 0 forne- cido, enquanto 0 comando lookfor pesquisa informagao resumida e répida para cada fanggo. Assim, 0 comando Looktor é mais lento que o help, mas aumenta a chance de fomnecer informagio util. Por exemplo, suponha que vocé esteja procurando uma fungio para inverter uma matriz. 0 MATLAB nao tem uma funcio chamada inverse, assim, 0 comando help inverse no encontrar nada. Por outro lado, 0 comando lockfox inverse apresentard os seguintes resiltados: >» lookfor inverse INVHILB Inverse Hilbert matrix. ACOS. Inverse cosine. ACOSH Inverse hyperbolic cosine ACOT Inverse cotangent ACOTH Inverse hyperbolic cotangent ACSC Inverse cosecant. ACSCH Inverse hyperbolic cosecent ASEC Inverse secant ASECH Inverse hyperbolic ASIN. Inverse sine. ASIN Inverse hyperbolic sine. ATAN Inverse tangent. ATAN2 Four quadrant inverse tangent. ATANH Inverse hyperbolic tangent. ERFINV Inverse error function. INV Mat PINV Pseudoinverse. IFFT Inverse discrete Fourier transform IPT? Two-dimensional inverse discrete Fourier transform. IFFIN N-dimensional inverse discrete Fourier transform. IPERMUTE Inverse permute array dimensions Com essa lista, podemos verificar que a funcio de interesse se chama inv. 1.3.10 Alguns Comandos importantes Se vocé esté iniciando no MATLAB, algumas demonstragdes podem ajudar a fornecer luma idéia de seus recursos. Para executar as demonstragdes fornecidas ro MATLAB, digite demo na Janela de Comandos, ou selecione “demos” do Espago de Langamento. (© contesido da Janela de Comandos pode ser esvaziado a qualquer momento usando o comand cic, eo contetide da Janela de Figuras corrente pode ser esvaziado fa qualquer momento usando 0 comando cl. As varidveis no espaco de trabalho podem ser esvaziadas com 0 comando clear. Conforme jé visto, o contetido do espago de trabalho persiste entre execugSes de comandos e arquivos M separados, por iss0 & possivel que os resultados de um problema tenham efeitos sobre 0 outro que vocé tenta resolver, apr hmeOOR ae TORN NS Para evitar essa possibilidade, uma boa idéia ¢ usar 0 comando clear no inicio de cada célculo independente, Outro comando importante 6 o abort. Se um arquivo M der a impressao de estar executando por tempo demasiado, ele pode conter um lago infinito e nunca temminar. Nesse caso, 0 usuario pode recuperar 0 controle digitando control-c (abreviade como sc) na Janela de Comandos. Esse comando € digitado pressionando a tecla Control e digitando “c” a0 mesmo tempo. Quando o MATLAB detecta um *c, ele interrempe 0 programa em execucio e devolve um marcador de comandos. ponto de exclamagao (1) € outro caractere especial importante. Seu uso especial 6 enviar um comando para o sistema operacional do computador. Qualquer caractere depois do ponto de exclamacio ser enviado para o sistema operacional e executado como se tivesse sido digitado na linha de comando do sistema operacional. Isso permite a inclusdo de comandos de sistema operacional diretamente em programas MATLAB. Finalmente, voc? pode acompanhar tudo o que for feito durante uma sessio MATLAB por meio do comando diary. A forma desse comando é diary nome do arquivo ‘Ap6s digitar esse comando, uma cépia de todos os dados de entrada e da maioria dos dados de saida digitados na Janela de Comandlos € ecoacdla no arquivo didtio, Bsa é uma excelente ferramenta pata recriar eventos quando algo sai errado durante uma sessd0 MATLAB. O comando diary off suspende a entrada de dados no arquivo de idtio, eo comando diary on reiniciaos dados de entrada 1.3.11. 0 Caminho de Busca MATLAB OMATLAB utiliza um caminho de busca para encontrar os arquivos M. Os arquivos M do MATLAB sio organizados em diretrios em seu sistema de arquivos. Muitos desses diretérios de arquivos M sao fornecidos junto com 0 MATLAB, e os usudrios podem adicionar outros. Se um ustario insere um nome diante do marcader do MATLAB, 0 interpretador MATLAB tenta encontrar o nome da seguinte forma 1. Ele procura pelo nome como uma variével. Se ele for uma variavel, o MATLAB exibe 0 contetido corrente da variavel. 2. Ele verifica se o nome é uma fungio ou comando predefinido.Se for, o MATLAB executa a fungio ou comando. 3, Ble verifica se o nome é um arquivo M no diretério corrente, Se for, o MATLAB executa a funcio ou comando. 4. Ble verifica se o nome é um arquivo M em qualquer diret6rio no caminto de ‘busca, Se for, o MATLAB executa a fun¢ao ou comando. Observe que 0 MATLAB verifica primeira os nomes de varidveis, portanto, se vocé definir uma varidvel com 0 mesmo nome de uma funcio ou comando MATLAB, 16 | Pograrto em MATA para Engetros aquela fungio ou comando se tornard inacessivel. Esse ¢ um erro comum cometide por ‘usudrios novatos, Erros de Programagao Nunca use uma varivel com nome igual ao de uma fungio ou comando MATLAB. Se ‘voc fizer isso, aquela funcio ou comando ficaré inacessivel. Além disso, se houver mais de uma fungi ou comando com © mesmo nome, 0 primeiro encontrado no caminho de busca sera executado, e os outros permanecerio inacessiveis. Iss0 6 um problema comum para novatos, pois as vezes cles criam arquivos M. com nomes iguais aos de fungGes MATLAB-padrao, o que toma esses arquivos inacessiveis, Erros de Programagao Nunca erie um arquivo M com nome igual ao de uma funcio ou comando MATLAB, OMATLAB contém um comando especial (hich) para ajudara descobrir qual ver- io de um arquivo esté sendo executada, e onde ele estélocalizado. Isso pode ser util para descobrir conflitos de nomes de arquivos. O formato desse comando which nome da fungao, onde nome da funcdo é o nome da fungao que voct esta tentando localizar. Por exemplo, a fungio de produto cartesiano cross .m pode ser localizada asin: > which crose D: \Mat 1abRi2\toolbox\matlab\ spec: n\eross.in caminho de busca do MATLAB pode se: analisado e modificado a qualquer ‘momento pela selegio do Caminho de Busca no Espago de Langamento, ou digitando edittpath na Janela de Comandos. O Caminho de Busca esta apresentado na Figura 1,10. Ele permite que 0 usuério acrescente, remove ou modifique a ordem dos diretsrios no caminho. Outras fungdes relacionadas com caminhos so: + edapath —_Adiciona um diretério ao caminho de busea do MATLAB. + path Exibe 0 caminho de busca do MATLAB. + path2re —Adiciona o diretdrio correate ao caminho de busca do MATLAB. «empath Remove um diretsrio do caminho de busca do MATLAB, 1.4 Utilizando o MATLAB como Prancheta de Rascunhos Em sua forma mais simples, o MATLAB pode ser usado como prancheta de rascunhos para efetuar cdlculos matemticos. Os célculos slo digitados diretamente na Janela de Comandos, usando os simbolos +, -,”, / e para soma, subtragao, multiplicagio, divisio Captus 1 necyzo zones | 17 CED 0) x! -Alenanges the oot nme esr naowen curios. | e ove Ton =n eoboematebons 1 aoboraabang 21 Ztobasmatebelt [So wares 2ctocratanenn |Somsrateizoototmatsbepectin [So marane1zoonoematanmann [So waraee1 mooboematsbstae [So mstate12eotosmatabaio |Somateoe12wopoemarcbovan [So watste12abotmatebetn |Enowstseetotboematatisparin 4 sme _| cow | newt | _ ovat ie Figura 4.10 A Ferramenta de Caminhos. € poténcia, respectivamente. Apés digitar uma expressio, o resultado ¢ automat ‘mente calculado e exibido. Por exemplo, suponha que queiramos calcular 0 volume de ‘um cilindro de raio r ealtura A drea do circulo na base do clindro é dada pela equacio A=nt ay 0 volume total do cilindro é al a2) Se 0 1aio do cilindro & de 0,1 m e a altura é de 0,5 m,o volume do cilindro pode ser obtido usando as declaragSes MATLAB (as entradas do usuario so apresentadas em negrito > A= pi * 0.12 0.0314 >VveaAt OS 0.0187 Observe que pi € predefinido com o valor 3,141592... Observe também que ¢ valor armazenado em A foi preservado pelo MATLAB e reutilizada no célculo de V.

Você também pode gostar