Anda di halaman 1dari 14

Sumrio

Prefcio xv

Introduo ao MATLAB 1 1.1 Vantagens do MATLAB 1 1.2 Desvantagens do MATLAB 3 1.3 O Ambiente MATLAB 3 1.3.1 A rea de Trabalho MATLAB 4 1.3.2 A Janela de Comandos 4 1.3.3 A Janela de Histrico de Comandos 7 1.3.4 O Espao de Lanamento 7 1.3.5 A Janela de Edio/Depurao 8 1.3.6 Janela de Figuras 9 1.3.7 O Espao de Trabalho MATLAB 10 1.3.8 O Navegador do Espao de Trabalho 11 1.3.9 Obtendo Ajuda 13 1.3.10 Alguns Comandos Importantes 14 1.3.11 O Caminho de Busca MATLAB 15 1.4 Utilizando o MATLAB como Prancheta de Rascunhos 16 1.5 Resumo 18 1.5.1 Resumo do MATLAB 19 1.6 Exerccios 19 MATLAB Bsico 21 2.1 Variveis e Matrizes 21 2.2 Iniciando Variveis no MATLAB 24 vii

viii

Programao em MATLAB para Engenheiros

2.3

2.4

2.5 2.6

2.7 2.8

2.9 2.10

2.11

2.12 2.13 2.14

2.15

2.2.1 Iniciando Variveis em Expresses de Atribuio 25 2.2.2 Iniciando com Expresses de Atalho 27 2.2.3 Iniciando com Funes Predefinidas 28 2.2.4 Iniciando Variveis com Entrada pelo Teclado 29 Matrizes Multidimensionais 31 2.3.1 Armazenando Matrizes Multidimensionais em Memria 32 2.3.2 Acessando Matrizes Multidimensionais com um nico Subscript 33 Submatrizes 34 2.4.1 A Funo end 35 2.4.2 Utilizando Submatrizes no Lado Esquerdo de uma Declarao de Atribuio 35 2.4.3 Atribuindo um Escalar a uma Submatriz 37 Valores Especiais 37 Exibindo Dados de Sada 39 2.6.1 Alterando o Formato-Padro 39 2.6.2 A Funo disp 40 2.6.3 Sada Estruturada Usando a Funo fprintf 40 Arquivos de Dados 42 Operaes com Escalares e Matrizes 44 2.8.1 Operaes com Escalares 45 2.8.2 Operaes com Matrizes 45 Hierarquia de Operaes 48 Funes Predefinidas MATLAB 51 2.10.1 Resultados Opcionais 51 2.10.2 Utilizando Funes MATLAB com Matrizes como Entrada 52 2.10.3 Funes MATLAB Comuns 52 Introduo a Diagramas 52 2.11.1 Utilizando Diagramas xy Simples 54 2.11.2 Imprimindo um Diagrama 54 2.11.3 Diagramas Mltiplos 56 2.11.4 Cores de Linhas, Estilos de Linhas, Estilos de Marcadores e Legendas 56 2.11.5 Escalas Logartmicas 58 Exemplos 59 Depurando Programas MATLAB 67 Resumo 69 2.14.1 Resumo de Boas Prticas de Programao 69 2.14.2 Resumo do MATLAB 70 Exerccios 72

Expresses de Ramificao e Projeto de Programa 79 3.1 Introduo a Tcnicas de Projeto Top-Down 79 3.2 Uso de Pseudocdigo 84 3.3 Operadores Relacionais e Lgicos 85 3.3.1 Operadores Relacionais 85 3.3.2 Nota de Ateno a Respeito dos Operadores == e ~= 87

Sumrio

ix

3.4

3.5

3.6 3.7

3.8

3.3.3 Operadores Lgicos 88 3.3.4 Funes Lgicas 90 Ramificaes 92 3.4.1 A Estrutura if 92 3.4.2 Exemplos de Utilizao de Estruturas if 94 3.4.3 Notas a Respeito do Uso de Estruturas if 100 3.4.4 A Estrutura switch 102 3.4.5 A Estrutura try/catch 104 Caractersticas Adicionais de Diagramas 106 3.5.1 Controlando os Limites nos Diagramas dos Eixos x e y 106 3.5.2 Desenhando Mltiplos Diagramas sobre os Mesmos Eixos 109 3.5.3 Criando Mltiplas Figuras 109 3.5.4 Subdiagramas 110 3.5.5 Controle Avanado de Linhas Desenhadas 111 3.5.6 Controle Avanado de Cadeias de Texto 113 3.5.7 Diagramas Polares 113 3.5.8 Anotando e Armazenando Diagramas 121 Notas Adicionais a Respeito da Depurao de Programas MATLAB 123 Resumo 126 3.7.1 Resumo de Boas Prticas de Programao 127 3.7.2 Resumo do MATLAB 127 Exerccios 128

Laos 135 4.1 O Lao while 135 4.2 O Lao for 141 4.2.1 Detalhes de Operao 148 4.2.2 As Expresses break e continue 152 4.2.3 Laos Aninhados 153 4.3 Matrizes Lgicas e Vetorizao 155 4.3.1 A Importncia das Matrizes Lgicas 156 4.3.2 Criando o Equivalente a Estruturas if/else com Matrizes Lgicas 159 4.4 Exemplos Adicionais 161 4.5 Resumo 176 4.5.1 Resumo de Boas Prticas de Programao 176 4.5.2 Resumo do MATLAB 176 4.6 Exerccios 177 Funes Definidas pelo Usurio 185 5.1 Introduo a Funes MATLAB 186 5.2 Passagem de Variveis em MATLAB: O Esquema de Passagem por Valor 192 5.3 Argumentos Opcionais 202 5.4 Compartilhando Dados pelo Uso de Memria Global 207 5.5 Preservando Dados Entre Chamadas de uma Funo 215 5.6 Funes de Funes 220 5.7 Subfunes e Funes Privadas 224 5.8 Resumo 226

Programao em MATLAB para Engenheiros

5.9

5.8.1 Resumo de Boas Prticas de Programao 226 5.8.2 Resumo do MATLAB 227 Exerccios 228

Dados Complexos, Dados de Caracteres e Tipos Adicionais de Diagramas 239 6.1 Dados Complexos 239 6.1.1 Variveis Complexas 241 6.1.2 Usando Nmeros Complexos com Operadores Relacionais 242 6.1.3 Funes Complexas 242 6.1.4 Colocando Dados Complexos em Diagramas 246 6.2 Funes de Cadeias de Caracteres 250 6.2.1 Funes de Converso de Cadeias de Caracteres 250 6.2.2 Criando Matrizes Bidimensionais de Caracteres 250 6.2.3 Concatenao de Cadeias de Caracteres 251 6.2.4 Comparao de Cadeias de Caracteres 252 6.2.5 Busca/Substituio de Caracteres Dentro de uma Cadeia 254 6.2.6 Converso para Maiscula e Minscula 256 6.2.7 Converses de Nmero para Cadeia de Caracteres 256 6.2.8 Converses de Cadeia de Caracteres para Nmero 258 6.2.9 Resumo 258 6.3 Matrizes Multidimensionais 264 6.4 Diagramas Bidimensionais Adicionais 266 6.4.1 Tipos Adicionais de Diagramas Bidimensionais 266 6.4.2 Funes para Diagramas 271 6.4.3 Histogramas 272 6.5 Diagramas Tridimensionais 274 6.5.1 Diagramas Tridimensionais de Linha 274 6.5.2 Diagramas Tridimensionais de Superfcie, Malha e Curva de Nvel 276 6.6 Resumo 279 6.6.1 Resumo de Boas Prticas de Programao 280 6.6.2 Resumo do MATLAB 280 6.7 Exerccios 281 Matrizes Esparsas, Matrizes Celulares e Estruturas 285 7.1 Matrizes Esparsas 285 7.1.1 O Tipo de Dados sparse 287 7.2 Matrizes Celulares 292 7.2.1 Criando Matrizes Celulares 294 7.2.2 Usando Chaves {} como Construtores de Clulas 295 7.2.3 Vendo o Contedo de Matrizes Celulares 296 7.2.4 Estendendo Matrizes Celulares 296 7.2.5 Apagando Clulas em Matrizes 298 7.2.6 Usando Dados em Matrizes Celulares 298 7.2.7 Matrizes Celulares de Cadeias de Caracteres 299 7.2.8 A Importncia das Matrizes Celulares 300 7.2.9 Resumo das Funes da Matriz cell 303

Sumrio

xi

7.3

7.4

7.5

Matrizes Estruturas 304 7.3.1 Criando Estruturas 304 7.3.2 Adicionando Campos a Estruturas 306 7.3.3 Removendo Campos de Estruturas 307 7.3.4 Usando Dados em Matrizes Estruturas 308 7.3.5 As Funes getfield e setfield 309 7.3.6 Usando a Funo size com Matrizes Estruturas 310 7.3.7 Aninhando Matrizes Estruturas 310 7.3.8 Resumo das Funes structure 311 Resumo 312 7.4.1 Resumo de Boas Prticas de Programao 313 7.4.2 Resumo do MATLAB 313 Exerccios 314

Funes de Entrada/Sada 317 8.1 A Funo textread 317 8.2 Mais Informaes sobre os Comandos load e save 319 8.3 Uma Introduo ao Processamento de Arquivos MATLAB 321 8.4 Abrindo e Fechando Arquivos 322 8.4.1 A Funo fopen 323 8.4.2 A Funo fclose 326 8.5 Funes de E/S Binrias 326 8.5.1 A Funo fwrite 326 8.5.2 A Funo fread 327 8.6 Funes de E/S Estruturadas 330 8.6.1 A Funo fprintf 330 8.6.2 Entendendo as Especificaes de Converso de Formato 332 8.6.3 Como as Cadeias de Caracteres de Formato So Utilizadas 334 8.6.4 A Funo fscanf 337 8.6.5 A Funo fget1 339 8.6.6 A Funo fgets 339 8.7 Comparando Funes de E/S Binrias e Estruturadas 339 8.8 Posicionamento de Arquivo e Funes de Estado 345 8.8.1 A Funo exist 345 8.8.2 A Funo ferror 347 8.8.3 A Funo feof 348 8.8.4 A Funo ftell 348 8.8.5 A Funo frewind 348 8.8.6 A Funo fseek 348 8.9 Funo uiimport 354 8.10 Resumo 356 8.10.1 Resumo de Boas Prticas de Programao 357 8.10.2 Resumo do MATLAB 357 8.11 Exerccios 358 Grficos de Controle 361 9.1 O Sistema de Grficos MATLAB 361

xii

Programao em MATLAB para Engenheiros

9.2 9.3

9.4 9.5 9.6 9.7 9.8

9.9 9.10 9.11 9.12

9.13

Controles de Objetos 363 Examinando e Modificando Propriedades de Objetos 363 9.3.1 Modificando Propriedades do Objeto no Momento da Criao 363 9.3.2 Modificando Propriedades de Objetos aps a Criao 364 Usando set para Listar Valores Possveis de Propriedades 370 Dados Definidos pelo Usurio 372 Localizando Objetos 373 Selecionando Objetos com o Mouse 375 Posio e Unidades 378 9.8.1 Posies de Objetos figure 378 9.8.2 Posies de Objetos axes e uicontrol 379 9.8.3 Posies de Objetos text 379 Posies de Impresso 382 Propriedades Default e de Fbrica 383 Propriedades de Objetos Grficos 385 Resumo 385 9.12.1 Resumo de Boa Prtica de Programao 386 9.12.2 Resumo do MATLAB 386 Exerccios 387

10

Interfaces Grficas de Usurios 389 10.1 Como Funciona uma Interface Grfica de Usurio 389 10.2 Criando e Exibindo uma Interface Grfica de Usurio 390 10.2.1 Espiando Por Trs dos Panos 400 10.2.2 A Estrutura de uma Subfuno de Retorno 402 10.2.3 Adicionando Dados de Aplicao a uma Figura 403 10.2.4 Algumas Funes teis 404 10.3 Propriedades de Objetos 404 10.4 Componentes da Interface Grfica de Usurio 405 10.4.1 Campos de Texto 407 10.4.2 Caixas de Edio 407 10.4.3 Quadros 407 10.4.4 Botes 407 10.4.5 Chaves 409 10.4.6 Caixas de Verificao e Marcadores 409 10.4.7 Menus Dinmicos 412 10.4.8 Caixas de Listagem 412 10.4.9 Rguas 415 10.5 Caixas de Dilogo 420 10.5.1 Caixas de Dilogo de Erro e de Aviso 421 10.5.2 Caixas de Dilogo de Entrada 421 10.5.3 As Caixas de Dilogo uigetfile e uisetfile 422 10.6 Menus 423 10.6.1 Suprimindo o Menu-Padro 426 10.6.2 Criando seus Prprios Menus 427 10.6.3 Teclas de Acelerao e Mnemnicos de Teclado 428 10.6.4 Criando Menus de Contexto 428

Sumrio

| xiii

10.7 Dicas para Criar Interfaces Grficas de Usurio Eficientes 434 10.7.1 Dicas de Ferramentas 434 10.7.2 Pcode 435 10.7.3 Melhorias Adicionais 437 10.8 Resumo 441 10.8.1 Resumo de Boas Prticas de Programao 443 10.8.2 Resumo do MATLAB 443 10.9 Exerccios 444 Apndice A Conjunto de Caracteres ASCII 447 Apndice B Respostas para os Testes 449 ndice Remissivo 463

Prefcio

MATLAB (que abrevia MATrix LABoratory Laboratrio de Matrizes) um programa de computador de uso especfico, otimizado para executar clculos cientficos e de engenharia. Ele nasceu como um programa para operaes matemticas sobre matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexvel capaz de resolver essencialmente qualquer problema tcnico. O programa MATLAB implementa a linguagem MATLAB, e oferece uma ampla biblioteca de funes predefinidas para que a programao tcnica se torne mais fcil e eficiente. Essa variedade extremamente ampla de funes torna muito mais fcil resolver problemas tcnicos 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 tcnicos tpicos. Esta obra ensina o MATLAB como uma linguagem de programao tcnica, mostrando aos estudantes como escrever programas limpos, eficientes e bem-documentados. Ela no tem a pretenso de ser uma descrio completa de todas as centenas de funes MATLAB. Em vez disso, ensina como usar o MATLAB como uma linguagem, e como localizar qualquer funo desejada atravs dos recursos de ajuda on-line do MATLAB. Os primeiros seis captulos so feitos para servir como texto para um curso de Introduo Programao/Resoluo de Problemas para estudantes calouros de engenharia. Esse material deve se adequar folgadamente para um curso de nove semanas com trs horas por semana. Os captulos restantes cobrem tpicos avanados como entrada/sada e interfaces grficas de usurios. Esses captulos podem ser cobertos em cursos mais longos, ou usados como referncia por estudantes de engenharia ou engenheiros que utilizem o MATLAB como parte de seus cursos ou atividades profissionais. xv

xvi

Programao em MATLAB para Engenheiros

Esta edio especificamente devotada s verses 6.0 e 6.1 do MATLAB. Embora a linguagem MATLAB bsica tenha se mantido constante desde a verso 5.0, as ferramentas integradas, as janelas e o subsistema de ajuda mudaram drasticamente. Adicionalmente, um paradigma completamente novo para projetos de interfaces grficas de usurio MATLAB foi introduzido na de 6.0. Os usurios que trabalham com verses do MATLAB anteriores de 6.0 precisam estar conscientes que a descrio do desenvolvimento de interfaces grficas de usurio no Captulo 10 no serve para eles. O livro tambm cobre as melhorias pequenas, porm importantes, na prpria linguagem, como a introduo da expresso continue.

As Vantagens do MATLAB para Programao Tcnica


MATLAB apresenta muitas vantagens, em comparao com linguagens de computador convencionais, para resoluo de problemas tcnicos. Dentre elas, temos: 1. Facilidade de Uso MATLAB uma linguagem interpretada, assim como muitas verses de Basic. Como Basic, muito fcil 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 escritos e modificados com facilidade usando o ambiente de desenvolvimento integrado embutido, bem como depurados usando o depurador MATLAB. Por ser muito fcil de usar, a linguagem ideal para uso educacional e para desenvolver rapidamente prottipos de novos programas. Muitas ferramentas de desenvolvimento de programas so fornecidas para tornar o programa fcil de usar. Dentre elas, temos um editor/depurador, um navegador de espao de trabalho e muitos programas de demonstrao. 2. Independncia de Plataforma MATLAB tem suporte em muitos sistemas computacionais diferentes, proporcionando, em grande medida, uma independncia de plataforma. No momento de preparao deste livro, a linguagem tinha suporte em Windows 9x/NT/2000 e em diversas verses de UNIX. Programas escritos em uma plataforma funcionam em todas as outras, e arquivos de dados escritos em qualquer plataforma podem ser lidos transparentemente em todas as outras. Como resultado, programas escritos em MATLAB podem migrar para novas plataformas quando as necessidades do usurio se alteram. 3. Funes Predefinidas MATLAB vem completo, com uma grande biblioteca de funes predefinidas que proporcionam solues testadas e empacotadas para muitas tarefas tcnicas bsicas. Por exemplo, suponha que voc esteja escrevendo um programa que precise calcular a estatstica associada com um conjunto de dados de entrada. Na maioria das linguagens, voc precisaria escrever suas prprias sub-rotinas ou funes para implementar os clculos como mdia aritmtica, desvio padro, mediana etc. Essas e centenas de outras funes so construdas j na linguagem MATLAB, tornando seu trabalho muito mais fcil.

Prefcio

| xvii

Alm da grande biblioteca de funes construda na linguagem bsica MATLAB, existem muitas outras caixas de ferramentas especializadas disponveis para ajudar a resolver problemas complexos em reas especficas. Por exemplo, um usurio pode comprar caixas de ferramentas-padro para resolver problemas em processamentos de sinais, sistemas de controle, comunicaes, processamentos de imagens e redes neurais, dentre muitas outras. 4. Diagramas Independentes de Dispositivos Diferente de outras linguagens de computador, MATLAB tem diversos comandos para imagens e desenhos integrais. Os desenhos e as imagens podem ser exibidos em qualquer dispositivo grfico suportado pelo computador onde est funcionando o MATLAB. Esse recurso torna o MATLAB uma ferramenta notvel para visualizar dados tcnicos. 5. Interface Grfica de Usurio MATLAB inclui ferramentas que permitem que um programador construa interativamente uma interface grfica de usurio (GUI, do ingls Graphical User Interface) para seu programa. Com esse recurso, o programador capaz de projetar programas sofisticados para anlise de dados que podem ser operados por usurios relativamente inexperientes. 6. Compilador MATLAB A flexibilidade e a independncia de plataforma do MATLAB so proporcionadas pela compilao de programas MATLAB em um pseudocdigo independente de dispositivo, e pela interpretao das instrues do pseudocdigo em tempo de execuo. Essa abordagem semelhante usada na linguagem de programao Visual Basic, da Microsoft. Infelizmente, o programa resultante por vezes pode ser lento, pois o cdigo MATLAB interpretado em vez de compilado. Indicaremos aspectos que tendem a reduzir a velocidade da execuo de programas, quando os encontrarmos. Um compilador MATLAB separado est disponvel. Ele pode compilar um programa MATLAB como um executvel verdadeiro que executa mais rpido que o cdigo interpretado. Essa uma grande forma de converter um programa de prottipo MATLAB em um executvel apropriado para venda e distribuio a usurios.

Caractersticas deste Livro


Muitas caractersticas deste livro tm por objetivo enfatizar a maneira apropriada de escrever programas MATLAB. Essas caractersticas devem ser teis para um estudante aprendendo a usar o MATLAB e para quem j trabalha com esse programa. Dentre elas, temos: 1. nfase na metodologia de projetos top-down O livro apresenta uma metodologia de projetos top-down no Captulo 3, e ento a utiliza de forma consistente no seu decorrer. Essa metodologia encoraja o estudante a pensar a respeito do projeto apropriado de um programa antes de

xviii |

Programao em MATLAB para Engenheiros

iniciar a codificao. Ela enfatiza a importncia de definir claramente o problema a ser resolvido e os dados requeridos de entrada e sada antes de iniciar qualquer outra atividade. Uma vez definido apropriadamente o problema, ensina o estudante a aplicar o refinamento passo a passo para subdividir a tarefa em subtarefas menores, e implementar as subtarefas como sub-rotinas ou funes separadas. Finalmente, a metodologia utilizada ensina a importncia de efetuar testes em todos os estgios do processo, tanto testes unitrios das rotinas componentes como testes exaustivos do produto final. O processo formal de projeto ensinado no livro pode ser assim resumido: Estabelea claramente o problema que voc est tentando resolver. Defina os dados de entrada requeridos pelo programa e os dados de sada produzidos por ele. Descreva o algoritmo que voc pretende implementar no programa. Esse passo requer projeto top-down e decomposio passo a passo, fazendo uso de pseudocdigo ou de diagramas de fluxo. Transforme o algoritmo em sentenas MATLAB. Teste o programa MATLAB. Nesse passo esto includos os testes unitrios de funes especficas e o teste exaustivo do programa final, com diferentes conjuntos de dados. 2. nfase em funes O livro enfatiza o uso de funes para a decomposio lgica de tarefas em subtarefas menores. Ele ensina as vantagens das funes para ocultar dados. Enfatiza tambm a importncia dos testes unitrios das funes antes de combin-las no programa final. O livro mostra ainda os erros comumente efetuados com funes e como evit-los. 3. nfase em ferramentas MATLAB O livro ensina o uso apropriado das ferramentas pr-construdas MATLAB para facilitar a programao e depurao de programas. As ferramentas tratadas so o Espao de Lanamento, o Editor/Depurador, o Navegador do Espao de Trabalho, o Navegador de Ajuda e ferramentas de projeto de GUI. 4. Notas de boa prtica de programao As notas enfatizam as boas prticas de programao medida que so apresentadas, para a convenincia do estudante. Alm disso, as boas prticas de programao apresentadas em um captulo so resumidas no seu final. Apresentamos a seguir uma nota de boa prtica de programao.

Boa Prtica de Programao


Sempre destaque com tabulao o corpo de uma construo if, com dois ou mais espaos, para melhorar a legibilidade do cdigo.

Prefcio

| xix

5. Notas de erros de programao Essas notas enfatizam erros comuns que podem ser evitados. Apresentamos a seguir uma nota de erros de programao.

Erros de Programao
Sempre verifique se os seus nomes de variveis no se repetem nos primeiros 31 caracteres. Se isso no ocorrer, o MATLAB no conseguir diferenciar as variveis.

6. nfase nas estruturas de dados No Captulo 7, temos uma discusso detalhada a respeito das estruturas de dados MATLAB, incluindo matrizes esparsas, matrizes de clulas e matrizes de estruturas. O uso apropriado dessas estruturas de dados ilustrado nos captulos sobre Grficos de Apoio e Interfaces Grficas de Usurios.

Caractersticas Pedaggicas
Os primeiros seis captulos deste livro so projetados especificamente para uso em cursos de Introduo Programao e Resoluo de Problemas. Deve ser possvel cobrir esse material confortavelmente em um curso de nove semanas, com trs horas semanais. Se o tempo for insuficiente em algum programa particular de engenharia, o Captulo 6 poder ser eliminado; os captulos remanescentes ainda assim ensinaro os fundamentos de programao e uso do MATLAB para resoluo de problemas. Essa caracterstica deve ser atraente para os professores de engenharia pressionados para compactar cada vez mais material dentro de um currculo finito. Os captulos seguintes tratam de material avanado que ser til para estudantes e engenheiros ao longo de suas carreiras. Esse material inclui recursos avanados de entrada/sada e o projeto de interfaces grficas de usurios para os programas. O livro inclui diversas caractersticas projetadas para dar suporte compreenso do estudante.* Esto includos 15 testes, distribudos ao longo dos captulos. As respostas a todas as perguntas esto apresentadas no Apndice B. Os testes podem ser usados como autotestes de compreenso. Alm disso, temos aproximadamente 140 exerccios de final de captulo. As boas prticas de programao so apresentadas em todos os captulos em quadros de Boa Prtica de Programao, e os erros comuns so apresentados em notas de Erros de Programao. O material de final de captulo composto por Resumos de Boas Prticas de Programao e Resumos de Comandos e Funes MATLAB.

NE: H, no final do livro, um encarte de figuras coloridas. Elas ilustram algum ponto especial a respeito de cada figura que no pde ser exibido com tons de cinza.

Captulo

Introduo ao MATLAB

MATLAB (que abrevia MATrix LABoratory Laboratrio de Matrizes) um programa de computador especializado e otimizado para clculos cientficos e de engenharia. Inicialmente, era projetado para clculos com matrizes; ao longo dos anos, transformou-se em um sistema computacional flexvel, capaz de resolver essencialmente qualquer problema tcnico. O programa MATLAB implementa a linguagem de programao MATLAB, juntamente com uma grande biblioteca de funes predefinidas que tornam as tarefas de programao tcnica mais fceis e eficientes. Este livro apresenta a linguagem MATLAB e mostra como utiliz-la para resolver problemas tcnicos tpicos. MATLAB um programa muito grande, com uma rica variedade de funes. At mesmo a verso bsica do MATLAB, sem ferramentas adicionais, muito mais rica que outras linguagens de programao tcnica. Existem mais de 1.000 funes no produto MATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais funes em diferentes especialidades. Este livro no pretende apresentar ao leitor todas as funes MATLAB. Em vez disso, o usurio aprende os fundamentos de como escrever, depurar e otimizar bons programas MATLAB, juntamente com um subconjunto das funes mais importantes. Outro aspecto igualmente importante que o programador aprende a utilizar as ferramentas do prprio MATLAB para localizar a funo adequada a um propsito especfico a partir da enorme gama de opes disponveis.

1.1 Vantagens do MATLAB


MATLAB tem muitas vantagens, em comparao com linguagens computacionais convencionais, para resolver problemas tcnicos. Dentre elas, temos: 1

Programao em MATLAB para Engenheiros

1 Facilidade de Uso MATLAB uma linguagem interpretada, assim como diversas verses de Basic. Como o Basic, ele muito fcil de usar. O programa pode ser usado como prancheta de rascunhos para avaliar expresses digitadas em linha de comando, ou pode ser utilizado para executar programas grandes escritos previamente. Os programas podem ser facilmente escritos e modificados no ambiente integrado de desenvolvimento, e depois depurados por meio do depurador MATLAB. Como a linguagem muito fcil de usar, ele ideal para o desenvolvimento rpido de prottipos para novos programas. Diversas ferramentas para desenvolvimento de programas so fornecidas, o que facilita o uso do programa. Dentre elas, temos um editor/depurador integrado, um navegador do espao de trabalho e diversos programas de demonstrao. 2 Independncia de Plataforma MATLAB tem suporte em diferentes sistemas computacionais, o que proporciona independncia de plataforma. No momento da preparao deste livro, a linguagem tem suporte em Windows 95/98/ME/NT/2000 e diferentes verses de UNIX. (Verses mais antigas do MATLAB eram disponveis para computadores Macintosh e VAX, as quais ainda so utilizadas em diversos locais.) Programas escritos em qualquer plataforma so executados nas outras plataformas, e arquivos de dados escritos em qualquer plataforma podem ser lidos transparentemente nas outras. Com isso, programas escritos em MATLAB podem migrar para novas plataformas caso o usurio precise da mudana. 3 Funes Predefinidas MATLAB vem completo, com uma grande biblioteca de funes predefinidas, que representam solues testadas e empacotadas para diversas tarefas tcnicas bsicas. Por exemplo, suponha que voc esteja escrevendo um programa para calcular as estatsticas relacionadas com um conjunto de dados de entrada. Na maioria das linguagens, voc precisaria escrever suas prprias sub-rotinas ou funes para implementar os clculos de mdia aritmtica, desvio-padro, mediana, etc. Essas e centenas de outras funes fazem parte da linguagem MATLAB, assim facilitando o seu trabalho. Alm da grande biblioteca de funes presentes na linguagem MATLAB bsica, diversas ferramentas especficas esto disponveis para ajudar a resolver problemas complexos em reas especficas. Por exemplo, um usurio pode adquirir ferramentas-padro para resolver problemas em Processamento de Sinais, Sistemas de Controle, Comunicaes, Processamento de Imagens e Redes Neurais, alm de outros. Existem tambm muitos programas MATLAB de uso livre, que so contribuies de usurios compartilhadas por meio da pgina WWW do MATLAB. 4 Desenhos Independentes de Dispositivos Diferente da maioria das linguagens de computador, MATLAB tem muitos comandos para desenhos e imagens. Os desenhos e imagens podem ser apresentados em qualquer dispositivo de sada grfica suportado pelo computador que executa o MATLAB. Esse recurso torna o MATLAB uma ferramenta excepcional para visualizao de dados tcnicos.