G
N
Ç
Ã
O
STEPHEN J. CHAPMAN
Sumário
Prefácio
1
xv
Introdução ao MATLAB 1 1.1 Vantagens do MATLAB 2 1.2 Desvantagens do MATLAB 1.3 O Ambiente MATLAB 4
1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.3.10 1.3.11 1.3.12
1.4 1.5
3
A Área de Trabalho MATLAB 4 A Janela de Comandos 5 A Janela de Histórico de Comandos 7 O Botão Iniciar 7 A Janela de Edição/Depuração 8 Janela de Figuras 10 Como Estacionar e Transportar Janelas 10 O Espaço de Trabalho MATLAB 11 O Navegador do Espaço de Trabalho 12 Obtendo Ajuda 13 Alguns Comandos Importantes 14 O Caminho de Busca MATLAB 15
Utilizando o MATLAB como Prancheta de Rascunhos Resumo 18
17
Resumo do MATLAB 19 1.6 Exercícios 19
2
MATLAB Básico 21 2.1 Variáveis e Matrizes 21 2.2 Criando e Iniciando Variáveis no MATLAB
25 vii
viii
| Programação em MATLAB ® para Engenheiros - 2ª Edição
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
3
2.2.1 Iniciando Variáveis em Expressões de Atribuição 25 2.2.2 Iniciando com Expressões de Atalho 28 2.2.3 Iniciando com Funções Predefinidas 29 2.2.4 Iniciando Variáveis com Entrada pelo Teclado 29 Matrizes Multidimensionais 31 2.3.1 Armazenando Matrizes Multidimensionais em Memória 33 2.3.2 Acessando Matrizes Multidimensionais com uma Dimensão 33 Submatrizes 35 2.4.1 A Função end 35 2.4.2 Utilizando Submatrizes no Lado Esquerdo de uma Declaração de Atribuição 36 2.4.3 Atribuindo um Escalar a uma Submatriz 37 Valores Especiais 38 Exibindo Dados de Saída 40 2.6.1 Alterando o Formato-Padrão 40 2.6.2 A Função disp 42 2.6.3 Saída Estruturada Usando a Função fprintf 43 Arquivos de Dados 44 Operações com Escalares e Matrizes 47 2.8.1 Operações com Escalares 47 2.8.2 Operações com Matrizes 47 Hierarquia de Operações 51 Funções Predefinidas MATLAB 54 2.10.1 Resultados Opcionais 54 2.10.2 Utilizando Funções MATLAB com Matrizes como Entrada 54 2.10.3 Funções MATLAB Comuns 55 Introdução a Diagramas 56 2.11.1 Utilizando Diagramas xy Simples 57 2.11.2 Imprimindo um Diagrama 58 2.11.3 Exportação de um Diagrama como Imagem Gráfica 59 2.11.4 Diagramas Múltiplos 59 2.11.5 Cores de Linhas, Estilos de Linhas, Estilos de Marcadores e Legendas 61 2.11.6 Escalas Logarítmicas 64 Exemplos 69 Depurando Programas MATLAB 75 Resumo 75 2.14.1 Resumo de Boas Práticas de Programação 75 2.14.2 Resumo do MATLAB 76 Exercícios 79
Expressões de Ramificação e Projeto de Programa 3.1 Introdução a Técnicas de Projeto Top-Down 87 3.2 Uso de Pseudocódigo 93 3.3 O Tipo de Dados Logical 93 3.3.1 Operadores Relacionais 94
87
Sumário
3.4
3.5
3.6 3.7
3.8
|
ix
3.3.2 Nota de Atenção a Respeito dos Operadores == e ~= 97 3.3.3 Operadores Lógicos 98 3.3.4 Funções Lógicas 103 Ramificações 104 3.4.1 A Construção if 105 3.4.2 Exemplos de Utilização de Construções if 107 3.4.3 Notas a Respeito do Uso de Construções if 113 3.4.4 A Construção switch 115 3.4.5 A Construção try/catch 117 Características Adicionais de Diagramas 119 3.5.1 Controlando os Limites nos Diagramas dos Eixos x e y 119 3.5.2 Desenhando Múltiplos Diagramas sobre os Mesmos Eixos 122 3.5.3 Criando Múltiplas Figuras 123 3.5.4 Subdiagramas 124 3.5.5 Controle Avançado de Linhas Desenhadas 125 3.5.6 Controle Avançado de Cadeias de Texto 126 3.5.7 Diagramas Polares 127 3.5.8 Anotando e Armazenando Diagramas 135 Notas Adicionais a Respeito da Depuração de Programas MATLAB 139 Resumo 141 3.7.1 Resumo de Boas Práticas de Programação 143 3.7.2 Resumo do MATLAB 143 Exercícios 144
4
Laços 151 4.1 O Laço while 151 4.2 O Laço for 157 4.2.1 Detalhes de Operação 165 4.2.2 O Compilador No-momento-exato (JIT) do MATLAB 167 4.2.3 As Expressões break e continue 171 4.2.4 Laços Aninhados 173 4.3 Matrizes Lógicas e Vetorização 175 4.3.1 Criando o Equivalente a Construções if/else com Matrizes Lógicas 176 4.4 Os Perfis MATLAB 178 4.5 Exemplos Adicionais 181 4.6 Resumo 196 4.6.1 Resumo de Boas Práticas de Programação 196 4.6.2 Resumo do MATLAB 197 4.7 Exercícios 197
5
Funções Definidas pelo Usuário 205 5.1 Introdução a Funções MATLAB 207 5.2 Passagem de Variáveis em MATLAB: O Esquema de Passagem por Valor 213 5.3 Argumentos Opcionais 224 5.4 Compartilhando Dados pelo Uso de Memória Global 229 5.5 Preservando Dados entre Chamadas de uma Função 237 5.6 Funções de Funções 242
x
| Programação em MATLAB ® para Engenheiros - 2ª Edição
5.7
5.8
5.9
6
Tipos Adicionais de Dados e de Diagramas 6.1 Dados Complexos 263
6.2
6.3 6.4
6.5
6.6
6.7
7
Subfunções e Funções Privadas 246 5.7.1 Subfunções 247 5.7.2 Funções Privadas 248 5.7.3 Ordem de Avaliação de Funções 249 Resumo 249 5.8.1 Resumo de Boas Práticas de Programação 250 5.8.2 Resumo do MATLAB 250 Exercícios 251 263
6.1.1 Variáveis Complexas 265 6.1.2 Usando Números Complexos com Operadores Relacionais 266 6.1.3 Funções Complexas 267 6.1.4 Colocando Dados Complexos em Diagramas 271 Funções de Cadeias de Caracteres 274 6.2.1 Funções de Conversão de Cadeias de Caracteres 274 6.2.2 Criando Matrizes Bidimensionais de Caracteres 274 6.2.3 Concatenação de Cadeias de Caracteres 275 6.2.4 Comparação de Cadeias de Caracteres 276 6.2.4.1 Comparando Cadeias de Caracteres quanto à Igualdade 276 6.2.4.2 Comparando Cadeias Individuais quanto à Igualdade e Desigualdade 277 6.2.4.3 Categorizando Caracteres em uma Cadeia de Caracteres 277 6.2.5 Buscando ou Substituindo Caracteres Dentro de uma Cadeia 279 6.2.6 Conversão para Caixa Alta e Caixa Baixa 281 6.2.7 Eliminação de Espaços em Branco das Cadeias de Caracteres 281 6.2.8 Conversões de Número para Cadeia de Caracteres 282 6.2.9 Conversões de Cadeia de Caracteres para Número 284 6.2.10 Resumo 285 Matrizes Multidimensionais 291 Diagramas Bidimensionais Adicionais 293 6.4.1 Tipos Adicionais de Diagramas Bidimensionais 293 6.4.2 Funções para Diagramas 298 6.4.3 Histogramas 299 Diagramas Tridimensionais 300 6.5.1 Diagramas Tridimensionais de Linha 301 6.5.2 Diagramas Tridimensionais de Superfície, Malha e Curva de Nível 303 Resumo 306 6.6.1 Resumo de Boas Práticas de Programação 306 6.6.2 Resumo do MATLAB 307 Exercícios 308
Matrizes Celulares, e Estruturas Gráficos de Controle 7.1 Matrizes Celulares 312
7.1.1 7.1.2
312
Criando Matrizes Celulares 315 Utilizando Chaves {} como Construtores de Células 317
Sumário
7.2
7.3
7.4
7.5 7.6 7.7 7.8
7.9
7.1.3 Visualizando o Conteúdo de Matrizes Celulares 317 7.1.4 Estendendo Matrizes Celulares 318 7.1.5 Apagando Células em Matrizes 320 7.1.6 Utilizando Dados em Matrizes Celulares 321 7.1.7 Matrizes Celulares de Cadeias de Caracteres 321 7.1.8 A Importância das Matrizes Celulares 322 7.1.9 Resumo das Funções da Matriz cell 326 Matrizes Estruturas 327 7.2.1 Criando Matrizes Estruturas 327 7.2.2 Adicionando Campos a Estruturas 330 7.2.3 Removendo Campos de Estruturas 331 7.2.4 Usando Dados em Matrizes Estruturas 331 7.2.5 As Funções getfield e setfield 333 7.2.6 Nomes Dinâmicos de Campos 333 7.2.7 Usando a Função size com Matrizes Estruturas 335 7.2.8 Aninhando Matrizes Estruturas 335 7.2.9 Resumo das Funções structure 336 Gráficos de Controle 338 7.3.1 O Sistema de Gráficos MATLAB 338 7.3.2 Controles de Objetos 339 7.3.3 Examinando e Modificando Propriedades de Objetos 340 7.3.4 Usando set para Listar Valores Possíveis de Propriedades 347 7.3.5 Localizando Objetos 348 7.3.6 Selecionando Objetos com o Mouse 350 Posição e Unidades 353 7.4.1 Posições de Objetos figure 353 7.4.2 Posições de Objetos axes 354 7.4.3 Posições de Objetos text 354 Posições de Impressão 357 Propriedades Iniciais e de Fábrica 358 Propriedades de Objetos Gráficos 360 Resumo 360 7.8.1 Resumo de Boas Práticas de Programação 361 7.8.2 Resumo do MATLAB 361 Exercícios 362
Apêndice A Conjunto de Caracteres ASCII Apêndice B Funções de Entrada/Saída
369
Apêndice C Respostas para os Testes
391
Índice Remissivo
403
367
|
xi
Prefácio
MATLAB® (abreviatura de MATrix LABoratory – Laboratório de Matrizes) é um programa de computador de uso específico, otimizado para executar cálculos científicos e de engenharia. Ele nasceu como um programa para operações matemáticas sobre matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico. O programa MATLAB implementa esta linguagem e oferece uma ampla biblioteca de funções predefinidas para que a programação técnica se torne mais fácil e eficiente. Essa variedade extremamente ampla de funções 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 pro blemas técnicos típicos. Este livro não é um texto sobre “como utilizar o MATLAB” (embora os estudantes aprendam a usá-lo para resolver problemas durante a leitura). O livro ensina o uso de MATLAB como uma linguagem técnica de programação, que pode ser usada no lugar de linguagens como Basic, Fortran ou C++. A maioria dos currículos de engenharia atualmente exige o aprendizado de MATLAB e usam essa linguagem como uma ferramenta essencial ao longo de todo o curso. As universidades também exigem que os estudantes se familiarizem pelo menos com os fundamentos da programação de computadores. Este livro pretende satisfazer esses dois requisitos simultaneamente em uma única disciplina, liberando assim tempo precioso nos cursos de engenharia. A obra não tem a pretensão de apresentar uma descrição completa das centenas de funções do MATLAB. Em vez disso, ensina ao estudante como utilizar MATLAB como uma linguagem para resolver problemas e como localizar qualquer função dese jada utilizando os recursos de ajuda on-line do MATLAB. xiii
xiv
|
Fundamentos de Programação em MATLAB ® - 2ª Edição
O livro Fundamentos de Programação em MATLAB , 2ª edição, foi elaborado para ser utilizado como livro-texto em disciplinas de Introdução à Programação e à Resolução de Problemas para estudantes de primeiro ano de engenharia. Este material é compatível com disciplinas de nove semanas com três horas de aula semanais.
As Vantagens do MATLAB para Programação Técnica MATLAB apresenta muitas vantagens, em comparação com linguagens de computador convencionais, para resolução de problemas técnicos. Entre elas, temos: 1. Facilidade de Uso MATLAB é uma linguagem interpretada, assim como muitas versões de Basic, e, como esta, é muito fácil de usar. O programa pode ser usado como prancheta de rascunhos para avaliar expressões 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 fácil de usar, a linguagem é ideal para uso educacional e para desenvolver rapidamente protótipos de novos programas. Muitas ferramentas de desenvolvimento de programas são fornecidas para tornar o programa fácil de usar. Dentre elas, temos um editor/depurador, um navegador de espaço de trabalho e muitos programas de demonstração. 2. Independência de Plataforma MATLAB tem suporte em muitos sistemas computacionais diferentes, proporcionando, em grande medida, uma independência de plataforma. No momento de preparação deste livro, a linguagem tinha suporte em Windows 2000/XP/ Vista, Linux, Unix e Macintosh. 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 usuário se alteram. 3. Funções Predefinidas MATLAB vem completo, com uma grande biblioteca de funções predefinidas que proporcionam soluções testadas e empacotadas para muitas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa que precise calcular a estatística associada com um conjunto de dados de entrada. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos, como média aritmética, desvio padrão, mediana etc. Essas e centenas de outras funções são construídas já na linguagem MATLAB, tornando seu trabalho muito mais fácil. Além da grande biblioteca de funções construída na linguagem básica MATLAB, existem muitas outras caixas de ferramentas especializadas disponíveis para ajudar a resolver problemas complexos em áreas específicas. Por exemplo, um usuário pode adquirir caixas de ferramentas-padrão para resol-
Prefácio
|
xv
ver problemas em processamentos de sinais, sistemas de controle, comunicações, 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, que podem ser exibidos em qualquer dispositivo gráfico compatível com computador que executa o MATLAB. Este recurso torna o MATLAB uma ferramenta excepcional para visualização de dados técnicos.
5. Interface Gráfica de Usuário MATLAB tem ferramentas que permitem a um programador construir interativamente uma interface gráfica de usuário (GUI, do inglês Graphical User Interface) para seu programa. Com esse recurso, o programador é capaz de pro jetar programas sofisticados para análise de dados, os quais podem ser operados por usuários relativamente inexperientes. Características deste Livro
Muitas características deste livro têm por objetivo enfatizar a maneira apropriada de escrever programas MATLAB. Essas características devem ser úteis para um estudante aprendendo a usar o MATLAB e para quem já trabalha com este programa. Entre elas, temos:
1. Ênfase na metodologia de projetos top-down O livro apresenta uma metodologia de projetos top-down no Capítulo 3, e 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 iniciar a codificação. Ela enfatiza a importância de definir claramente o pro blema a ser resolvido e os dados de entrada e saída requeridos 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 funções separadas. Finalmente, a metodologia utilizada ensina a importância de efetuar testes em todos os estágios do processo, tanto unitários das rotinas componentes como testes exaustivos do produto final. O processo formal de projeto ensinado no livro pode ser assim resumido: 1. Estabeleça claramente o problema que você está tentando resolver. 2. Defina os dados de entrada requeridos pelo programa e os dados de saída produzidos por ele. 3. Descreva o algoritmo que você pretende implementar no programa. Este passo requer um projeto top-down e decomposição passo a passo, fazendo uso de pseudocódigo ou de diagramas de fluxo. 4. Transforme o algoritmo em sentenças MATLAB. 5. Teste o programa MATLAB. Neste passo estão incluídos os testes unitários de funções específicas e o exaustivo do programa final, com diferentes conjuntos de dados.
xvi
|
Fundamentos de Programação em MATLAB ® - 2ª Edição
2. Ênfase em funções O livro enfatiza o uso de funções para a decomposição lógica de tarefas em subtarefas menores. Ele ensina as vantagens das funções para ocultar dados. Enfatiza também a importância dos testes unitários das funções antes de com biná-las no programa final. O livro mostra ainda os erros mais comuns em funções e como evitá-los.
3. Ênfase em ferramentas MATLAB O livro ensina o uso apropriado das ferramentas pré-construídas MATLAB para facilitar a programação e depuração de programas. As ferramentas tratadas são o Espaço de Lançamento, o Editor/Depurador, o Navegador do Espaço de Trabalho, o Navegador de Ajuda e ferramentas de projeto de GUI.
4. Notas de boa prática de programação As notas enfatizam as boas práticas de programação à medida que são apresentadas, para a conveniência do estudante. Além disso, as boas práticas de programação apresentadas em um capítulo são resumidas no seu final. Apresentamos a seguir uma nota de boa prática de programação.
Boa Prática de Programação Sempre destaque com tabulação o corpo de uma construção if, com dois ou mais espaços, para melhorar a legibilidade do código.
5. Notas de erros de programação Essas notas enfatizam erros comuns que podem ser evitados. Apresentamos a seguir uma nota de erros de programação.
Erros de Programação Sempre verifique se os nomes de variáveis não se repetem nos primeiros 63 caracteres. Se houver repetição, o MATLAB não conseguirá diferenciar as variáveis.
Características Pedagógicas Este livro foi projetado especificamente para uso em cursos de Introdução à Programação e à Resolução de Problemas. Todo o conteúdo pode facilmente ser abordado em um curso de nove semanas, com três horas semanais. Se o tempo for insuficiente em algum programa particular de engenharia, os capítulos 6 e 7 podem ser desconsiderados; os remanescentes ainda assim ensinarão os fundamentos de programação e uso do MATLAB para resolução
Prefácio
| xvii
de problemas. Essa característica deve ser atraente para os professores de engenharia que têm de inserir cada vez mais conteúdo em currículo delimitado. Os capítulos seguintes tratam de material avançado que será útil para estudantes e engenheiros ao longo de suas carreiras. Inclui recursos avançados de entrada/saída e o projeto de interfaces gráficas de usuários para os programas. O livro possui diversas características projetadas para dar suporte à compreensão do estudante. Estão incluídos 12 testes, distribuídos ao longo dos capítulos. As respostas de todos os exercícios estão apresentadas no Apêndice C. Os testes podem ser usados como autotestes de compreensão. Além disso, temos aproximadamente 130 exercícios de final de capítulo. Todos os capítulos trazem quadros de Boa Prática de Programação, e os erros comuns são apresentados em notas de Erros de Programação. O material de final de capítulo é composto por Resumos de Boas Práticas de Programação e Resumos de Comandos e Funções MATLAB. Quero agradecer aos seguintes revisores por seus comentários: Randy Freeman, Northwestern University Thomas N. Gambill, University of Illinois – Urbana Champaign Arlene A. Guest, Naval Postgraduate School Dieter S. Schmidt, University of Cincinnati. Manterei atualizada uma lista de errata e correções* na página Web do livro, que se encontra em www.cengage.com/engineering
* A errata e as correções dizem respeito à edição original em inglês (N.T.).
Capítulo
1
Introdução ao MATLAB
MATLAB (abreviatura de MATrix LABoratory – Laboratório de Matrizes) é um programa de computador especializado e otimizado para cálculos científicos e de engenharia. Inicialmente, foi projetado para cálculos com matrizes; ao longo dos anos, transformou-se em um sistema computacional flexível, capaz de resolver essencialmente qualquer pro blema técnico. O MATLAB implementa a linguagem de programação de mesmo nome, juntamente com uma grande biblioteca de funções predefinidas que tornam as tarefas de programação técnica mais fáceis e eficientes. Este livro apresenta a linguagem MATLAB versão 7.5, e mostra como utilizá-la para resolver problemas técnicos típicos. MATLAB é um programa muito grande, com uma rica variedade de funções. Até mesmo sua versão básica, sem ferramentas adicionais, é muito mais rica que outras linguagens de programação técnica. Existem mais de 1.000 funções no produto MATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais funções em diferentes especialidades. Este livro não pretende ensinar todas as funções do MATLAB. Em vez disso, o usuário aprende os fundamentos de como escrever, depurar e otimizar bons programas MATLAB, juntamente com um subconjunto das funções mais importantes. Outro aspecto igualmente importante é que o programador aprende a utilizar as ferramentas do próprio MATLAB para localizar a função adequada a um propósito específico a partir da enorme gama de opções disponíveis.
1
2
| Programação em MATLAB ® para Engenheiros - 2ª Edição
1.1 Vantagens do MATLAB MATLAB tem muitas vantagens, em comparação com linguagens computacionais convencionais, para resolver problemas técnicos. Entre elas, temos: 1 Facilidade de Uso MATLAB é uma linguagem interpretada, assim como muitas versões de Basic. Como o Basic, ele é muito fácil de usar. O programa pode ser utilizado como prancheta de rascunhos para avaliar expressões digitadas em linha de comando, ou 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 fácil de utilizar, ele é ideal para o desenvolvimento rápido de protótipos para novos programas. Diversas ferramentas para desenvolvimento de programas são fornecidas, o que facilita o uso do programa. Entre elas, temos um editor/depurador integrado, documentação e manuais on-line, um navegador do espaço de trabalho e diversos programas de demonstração. 2 Independência de Plataforma MATLAB tem suporte em diferentes sistemas computacionais, o que proporciona independência de plataforma. No momento da preparação deste livro, a linguagem tem suporte em Windows XP/Vista, Linux, diversas versões de Unix e Macintosh. Programas escritos em qualquer plataforma são executados nas outras, e arquivos de dados escritos em qualquer plataforma podem ser lidos transparentemente em todas as outras. Com isso, programas escritos em MATLAB podem migrar para novas plataformas quando as necessidades do usuário se alteram. 3 Funções Predefinidas MATLAB vem completo, com uma grande biblioteca de funções predefinidas, que apresentam soluções testadas e empacotadas para diversas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa para calcular as estatísticas relacionadas a um conjunto de dados de entrada. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos de média aritmética, desvio-padrão, mediana etc. Estas, e centenas de outras funções fazem parte da linguagem MATLAB, facilitando seu trabalho. Além da grande biblioteca de funções presentes na linguagem MATLAB básica, diversas ferramentas específicas estão disponíveis para ajudar a resolver problemas complexos em áreas específicas. Por exemplo, um usuário pode adquirir ferramentas-padrão para resolver problemas em Processamento de Sinais, Sistemas de Controle, Comunicações, Processamento de Imagens e Redes Neurais, além de outros. Existem também muitos programas MATLAB de uso livre, que são contribuições de usuários compartilhadas por meio do site MATLAB.
Capítulo 1
Introdução ao MATLAB
|
3
4 Desenhos Independentes de Dispositivos Diferente da maioria das linguagens de computador, MATLAB tem muitos comandos para desenhos e imagens, que podem ser exibidos em qualquer dispositivo de saída gráfica compatível com o computador que executa o MATLAB. Este recurso torna o MATLAB uma ferramenta excepcional para visualização de dados técnicos. 5 Interface Gráfica de Usuário MATLAB tem ferramentas que permitem a um programador construir interativamente uma interface gráfica de usuário (GUI, do inglês Graphical User Interface) para seus programas. Com este recurso, o programador é capaz de projetar programas sofisticados de análise de dados, os quais podem ser operados por usuários relativamente inexperientes. 6 O Compilador MATLAB A flexibilidade e a independência de plataforma do MATLAB resultam da compilação de programas MATLAB em um código independente de dispositivo denominado pcode, e da interpretação em tempo de execução das instruções em pcode. Essa abordagem é similar à adotada pela linguagem Visual Basic da Microsoft. Infelizmente, os programas resultantes às vezes podem se tornar lentos, pois o código MATLAB é interpretado, em vez de compilado. Indicaremos os aspectos que tendem a tornar a execução de programas mais lenta quando os encontrarmos. Versões recentes do MATLAB resolveram parcialmente esse problema com a inclusão da tecnologia de compilação no momento de uso ( Just-in-time – JIT). O JIT compila partes do código MATLAB durante a execução dos programas, desta forma acelerando os programas de maneira geral. Existe um compilador MATLAB separado. Ele pode compilar um programa MATLAB como um programa efetivamente executável, que pode rodar sem a necessidade de uma licença MATLAB. Essa é uma boa forma de converter um programa protótipo MATLAB em um programa executável que pode ser vendido e distribuído a usuários.
1.2 Desvantagens do MATLAB MATLAB tem duas desvantagens principais. Primeiro, é uma linguagem interpretada, por isso pode ser mais lento que linguagens compiladas. Esse problema pode ser diminuído pela estruturação apropriada dos programas MATLAB para otimizar o desempenho do código vetorizado e pelo uso do compilador JIT. A segunda desvantagem é o custo: uma cópia completa do MATLAB é de cinco a dez vezes mais cara que um compilador convencional C ou Fortran. Esse custo relativamente alto é mais do que compensado pelo tempo reduzido requerido para um engenheiro ou cientista criar um programa, o que torna o MATLAB eficaz para empresas. Ele pode ser muito caro, entretanto, para a compra individual. Felizmente, existe uma versão mais barata para o estudante, que é uma excelente ferramenta para aqueles que queiram aprender a linguagem. A versão estudante do MATLAB é essencialmente idêntica à versão completa.
4
| Programação em MATLAB ® para Engenheiros - 2ª Edição
1.3 O Ambiente MATLAB A unidade fundamental de dados em qualquer programa MATLAB é a matriz, que é uma coleção de valores de dados organizados em linhas e colunas, determinada por um nome único. Valores individuais de dados em uma matriz podem ser acessados por meio do nome da matriz seguido de índices entre parênteses que identificam a linha e a coluna de um valor particular. Até mesmo escalares são tratados como matrizes em MATLAB – eles são simplesmente matrizes com apenas uma linha e uma coluna. Aprenderemos a criar e a manipular matrizes MATLAB na seção 1.4. Na execução do MATLAB podem ser exibidas janelas de diferentes tipos, as quais aceitam comandos ou exibem informações. Os três tipos mais importantes são Janelas de Comandos, onde podem ser inseridos comandos; Janelas de Figuras, que exibem desenhos e gráficos; e Janelas de Edição, que permitem a um usuário criar e modificar programas MATLAB. Veremos exemplos desses três tipos de janelas na presente seção. Além disso, o MATLAB pode exibir outras janelas de auxílio, que possibilitam ao usuário examinar o valor de variáveis definidas em memória. Vamos conhecer aqui algumas dessas janelas adicionais, e examinar as outras quando discutirmos como depurar programas MATLAB.
1.3.1 A Área de Trabalho MATLAB Quando iniciado, o MATLAB versão 7.5 abre uma janela especial denominada área de tra balho MATLAB, na qual há outras janelas, que exibem os dados do MATLAB, barras de ferramentas e um botão “Iniciar” similar aos utilizados no Windows XP ou Vista. A maior parte das ferramentas MATLAB fica “estacionada” na área de trabalho. Entretanto, o usuário pode “transportar” uma ou todas as ferramentas, para que elas apareçam em janelas separadas. A configuração inicial da área de trabalho MATLAB está apresentada na Figura 1.1. Ela integra muitas ferramentas para gerenciar arquivos, variáveis e aplicações do ambiente MATLAB. As principais ferramentas que podem ser acessadas na ou a partir da área de tra balho MATLAB são: • Janela de Comandos • Janela de Histórico de Comandos • Botão Iniciar • Janela de Documentos, que inclui o Editor/Depurador e o Editor de Matrizes • Janelas de Figuras • Navegador do Espaço de Trabalho • Navegador de Ajuda • Navegador de Caminhos Discutiremos as funções dessas ferramentas em seções subsequentes do presente capítulo.
Capítulo 1
Introdução ao MATLAB
|
5
Área de trabalho MATLAB. A aparência exata da janela pode diferir ligeiramente em diferentes tipos de computador.
Figura 1.1
1.3.2 A Janela de Comandos
O lado direito da área de trabalho MATLAB contém a Janela de Comandos. Um usuário pode inserir comandos interativos pelo marcador de comandos ( »), na Janela de Comandos, e eles serão executados de imediato. Um exemplo de cálculo interativo simples é o seguinte: suponha que você queira calcular a área de um círculo com raio de 2,5 m. Isso pode ser feito pela janela de comandos MATLAB, digitando: »
area = pi * 2.5^2
area
=
19.6350
O MATLAB calcula a resposta assim que a tecla Enter é pressionada, e armazena o resultado em uma variável (na realidade, em uma matriz 1 x 1) denominada area. O conteúdo dessa variável é exibido na Janela de Comandos, conforme mostrado na
6
| Programação em MATLAB ® para Engenheiros - 2ª Edição
Figura 1.2
A Janela de Comandos fica mais à direita na área de trabalho. Os usuários podem inserir comandos e ver as respostas ali.
Figura 1.2, e a variável pode ser usada em outros cálculos. (Observe que π é predefinido no MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar seu valor como 3,141592...). Se uma declaração é muito extensa para ser digitada em uma única linha, ela pode ser complementada em linhas sucessivas digitando reticências (...) no final de cada linha, e então continuando na linha seguinte. Por exemplo, as duas expressões a seguir são idênticas: x1 = 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6
e x1 = 1 + 1/2 + 1/3 + 1/4... + 1/5 + 1/6
Em vez de digitar comandos diretamente na Janela de Comandos, uma série de comandos pode ser colocada em um arquivo, e o arquivo inteiro pode ser executado quando digitamos seu nome na Janela de Comandos. Esses arquivos são denominados arquivos de scripts, também chamados arquivos M, por terem uma extensão de arquivo “.m” assim como as funções, como veremos.
Visite a página deste livro na Cengage Learning Brasil e conheça também todo o nosso catálogo