matlab 7 - fundamentos - Élia yathie matsumoto
TRANSCRIPT
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
1/377
OPENCADD
FUNDAMENTOS
I n t e r f a c e M a t l a b ®D e s k t o p • M a n i p u l a ç ã o d e M a t r i z e s
In t r o d u ç ã o à P r o g r a m a ç ã o • T r a t a m e n t o d e A r q u i v o s d e D a d o s
G r á f i c o s • D e s e n v o l v i m e n t o d e In t e r f a c e s G r á f i c a s
F u n ç õ e s E s p e c i a l i z a d a s • In t r o d u ç ã o a o Sy m b o l i c M a t h T o o l b o x
ÉLIAYATHIEMATSUMOTO
2a EDIÇÃO
Exemplos do livro, respostas dos exercícios e
apêndice, complementar disponíveis na INTERNET.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
2/377
MATLAB® 7 Fundamentos
EDITORA AFILIADA
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
3/377
Seja Nos so Parceiro no Co m bate à Cóp ia Ilegal
A cópia ilegal é crime. Ao efetuá-la, o infrator estará cometendo um grave erro, que é inibir
a produção de obras literárias, prejudicando profissionais que serão atingidos pelo crime
praticado.
Junte-se a nós nesta corrente contra a pirataria. Diga não à cópia ilegal.
Ao preencher e remeter a ficha de cadastro constante no final desta publicação, você
passará a receber informações sobre nossos lançamentos em sua área de preferência.
Conhecendo melhor nossos leitores e suas preferências, vamos produzir títulos que atendam suas necessidades.
Obrigado pela sua escolha.
Eventuais problemas referentes ao conteúdo deste livro serão encaminhados ao(s)
respectivo(s) autor(es) para esclarecimento, excetuando-se as dúvidas que dizem respeito
a pacotes de softwares, as quais sugerimos que sejam encaminhadas aos distribuidores e
revendedores desses produtos, que estão habilitados a prestar todos os esclarecimentos.
Os problemas só podem ser enviados por:
1. E-mail: [email protected]
2. Fax: (11) 6197.4060
3. Carta: Rua São Gil, 159 - Tatuapé - CEP 03401-030 - São Paulo - SP
Seu Cadastro É Mui to Importante para Nós
Fale Conosc o!
INVISTA EM VOCÊ.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
4/377
Élia Yathie Matsumoto
MATLAB® 7
F u n d a m e n t o s
Ed i to r a É r ica L tda .
2006 - 2aEdição
C o n s e lh o E d i t o r i al :Diretor Editorial:
Diretor Comercial:
Diretor de Publicidade:
Capa:Editoração:
Revisão Gramatical:
Revisão de Diagramação:Coordenação e Revisão:
Antonio Marco Vicari Cipelli
Paulo Roberto Alves
Waldir João Sandrini
Maurício S. de FrançaÉrica Regina Pagano
Pedro Paulo Vieira HerruzoDirce Yukie Yamamoto
Rosana Ap. Alves dos SantosRosana Arruda da Silva
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
5/377
Copyright © 2004 da Ed i to ra É r ica L tda .
Dados In te rnac iona is de Ca ta logação na Pub l i cação (C IP)(Câmara Bras i le i ra do L iv ro , SP, B ras i l )
Matsumoto, Élia YathieMATLAB® 7: Fundamentos / Élia Yathie Matsumoto. — 1. ed. —São Paulo:
Érica, 2004.
Bibliografia.ISBN 85-365-0032-8
1. Cálculo numérico - Programas de computador. 2. MATLAB. I. Título.
04-4725 CDD-519.40285
Índices para catálogo sistemático1. MATLAB: Cálculo numérico: Programas: Processamento de dados 519.40285
T o d o s o s d i r ei t o s r e s e r v ad o s . Proibida a reprodução total ou parcial, por qualquer meioou processo, especialmente por sistemas gráficos, microfílmicos, fotográficos, reprográfi-cos, fonográficos, videográficos, internet, e-books. Vedada a memorização e/ou recuperação total ou parcial em qualquer sistema de processamento de dados e a inclusão dequalquer parte da obra em qualquer programa juscibernético. Essas proibições aplicam-setambém às características gráficas da obra e à sua editoração. A violação dos direitos
autorais é punível como crime (art. 184 e parágrafos, do Código Penal, conforme Lein² 10.695, de 07.01.2003) com pena de reclusão, de dois a quatro anos, e multa, conjuntamente com busca e apreensão e indenizações diversas (artigos 102, 103 parágrafo único,104, 105, 106 e 107 itens 1, 2 e 3 da Lei n2 9.610, de 19/06/98, Lei dos Direitos Autorais).
A Autora e a Editora acreditam que todas as informações aqui apresentadas estão corretase podem ser utilizadas para qualquer fim legal. Entretanto, não existe qualquer garantia,explícita ou implícita, de que o uso de tais informações conduzirá sempre ao resultadodesejado. Os nomes de sites e empresas, porventura mencionados, foram utilizadosapenas para ilustrar os exemplos, não tendo vínculo nenhum com o livro, não garantindo asua existência nem divulgação. Eventuais erratas estarão disponíveis no site da EditoraÉrica para download.
Ed i to ra É r ica L tda .
Rua São Gil, 159 - Tatuapé
CEP: 03401-030 - São Paulo - SP
Fone: (11) 2295-3066 - Fax: (11) 6197-4060
w w w . e d i t o r a e r i c a . c o m . b r
http://www.editoraerica.com.br/http://www.editoraerica.com.br/
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
6/377
Fabricante
Produto: MATLAB® 7 (Release 14)
Desenvolvedor:The MathWorks, Inc.
e-mail: [email protected]
site: www.mathworks.com
Distribuidor no Brasil:
Opencadd Advanced Technolog y
Av. Brig. Faria Lima, 1931 - Cj. 42 - 4oandar
São Paulo - SP -01452-001
Tel/Fax: (11)1816-7864
e-mail: [email protected]
www.opencadd.com.br
mailto:[email protected]://www.mathworks.com/mailto:[email protected]://www.opencadd.com.br/http://www.opencadd.com.br/mailto:[email protected]://www.mathworks.com/mailto:[email protected]
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
7/377
Sobre o Material Disponível na Internet
O material disponível no site da Editora Érica contém todos os arquivos de exemplos eexercícios apresentados no livro, as respostas dos exercícios propostos no Apêndice Ae um apêndice complementar contendo um resumo das novidades do CD Release 14.
Para utilizar este material, é necessário ter o software MATLAB® 7 corretamentenstalado em seu equipamento e o Adobe Acrobat Reader 3 ou versão mais recente.
MATLAB7_A.exe -1 .08 M B MATLA B7_B.exe - 2.00 MB
Procedimento para Download
Acesse o site da Editora Érica Ltda.: www.editoraerica.com.br . A transferência dosarquivos disponíveis pode ser feita de duas formas:
♦ Por meio do módu lo pesquisa. Localize o livro desejado, digitando palavras-c haves (nome do livro ou do autor). Aparecerão os dados do livro e os arquivospara download, então dê um clique sobre o primeiro arquivo executável que serátransferido. Repita o procedimento para o segundo arquivo.
♦ Por meio do botão " Download" . Na página principal do site, clique no item
"Download". Será exibido um campo, no qual devem ser digitadas palavras-chaves(nome do livro ou do autor). Serão exibidos o nome do livro e os arquivos paradownload. Dê um clique sobre o primeiro arquivo executável que será transferido.Repita o procedimento para o segundo arquivo.
Procedimento para Descom pactação
Primeiro passo: após ter transferido os arquivos, verifique o diretório em que se
encontram e dê um duplo-clique sobre eles. Será exibida uma tela do programa WINZIPSELF-EXTRACTOR que conduzirá você ao processo de descompactação. Abaixo doUnzip To Folder, existe um campo que indica o destino dos arquivos que serãocopiados para o disco rígido do seu computador.
C:\MATLAB7 Fundamentos
Segundo passo: prossiga com a instalação, clicando no botão Unzip, o qual seencarrega de descompactar os arquivos. Logo abaixo dessa tela, aparece a barra de
status a qual monitora o processo para que você acompanhe. Após o término, outra telade informação surgirá, indicando que os arquivos foram descompactados com sucessoe estão no diretório criado. Para sair dessa tela, clique no botão OK. Para finalizar oprograma WINZIP SELF-EXTRACTOR, clique no botão Close.
http://www.editoraerica.com.br/http://www.editoraerica.com.br/
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
8/377
Requisi tos de Hardware e de Software
Este livro foi escrito com base na versão MATLAB® 7 para ambiente Windows XP.
Para este ambiente, os requisitos básicos são:
♦ microcomputador com processador:Pentium III, IV, Xeon, M
AMD Athlon
- Athlon XP/MP
♦ monitor de vídeo gráfico (16,24, ou 32 bits, OpenGL recomendável);
♦ unidade de CD-ROM (4x ou superior);
♦ unidade multimídia;♦ mouse ou outro dispositivo de entrada;
♦ impressora ou outro dispositivo de saída gráfica;
♦ no caso de licenças individuais: porta USB para instalação do dispositivo deproteção (hardware lock)
♦ no caso de licenças em rede: TCP/IP com acesso ao equipamento servidor da redeno qual o programa de gerenciamento de licenças FLEXIm deve estar correta e
adequadamente instalado.Os requisitos de espaço em disco para instalação, memória RAM, espaço livre em discopara execução podem variar de acordo com o tipo de instalação e necessidade dedesempenho:
Requisito Mínimo Necessário Recomendável
Espaço em disco para
instalação
1.0 GB (instalação sem
documentação)
1.5 GB (instalação com
documentação completa)Memória RAM 256 MB 1.0 GB
Espaço livre para execução 1.0 GB 3.0 GB
Sistema operacional para plataforma Windows
♦ Windows XP
♦ Windows 2000 (Service Pack 3 ou 4)
♦ Windows NT 4.0 (Service Pack 5 ou 6 a)
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
9/377
Software
♦ MATLAB® 7.0 (Release 14)
♦ Symbolic Math Toolbox 3.1 (Release 14)
Aplicativos adicionais
♦ Internet Browser (ex.: Internet Explorer, Netscape);
♦ Adobe Acrobat Reader 3.0 (ou superior);
♦ Microsoft Office 2000/XP;
♦ Compilador C/C++ (ex.: Microsoft Visual .NET).
Outras plataformas suportadas pelo MATLAB® 7
Sistema Operacional Processador
Sun Solaris 2.8/2.9 SPARC ULTRA
HP-UX 11.0/11i PA-RISC 2.0
Linux 2.4.x Pentium, AMD, Athlon
glibc (glibc6 ) 2.2.5 Pentium, AMD, Athlon
Mac OS X 10.3.2 (Panther) Power Mac G4 / G5
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
10/377
Dedicatória
Para Gabriel e Yasmin.
"... e que eu seja tão bondoso e alegreque todos quantos se aconcheguem
a mim sintam a Tua presença."
Oração da Manhã São Francisco de Assis
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
11/377
Sobre a Autora
Élia Yathie Matsumoto, bacharel em Ciência da Computação pelo Instituto deMatemática e Estatística da Universidade de São Paulo, com extensão universitária emCapacitação Gerencial na FIA/USP, é sócia-diretora da Opencadd Advanced
Technology, na qual coordena a área de tecnologia e treinamento desde 1990.
É autora dos seguintes livros, publicados pela Editora Érica:
♦ AutoCAD® R14 Fundamentos (1997)
♦ AutoLISP® Linguagem de Programação do AutoCAD (1998)
♦ AutoCAD® 14 em Português (1999)
♦ AutoCAD® 2000 Fundamentos (2000)
♦ MATLAB® 6 Fundamentos (2001)
♦ AutoCAD® 2002 Fundamentos (2001)
♦ AutoLISP® 2002 Linguagem de Programação do AutoCAD (2001)
♦ MATLAB® 6.5 Fundamentos de Programação (2002)
♦ Simulink® 5 Fundamentos (2003)
♦ AutoCAD® 2004 Fundamentos (2004)
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
12/377
Prefácio
"O mundo anda tão complicado e hoje eu quero fazer tudo ..."
Renato Russo
Hoje, já não é suficiente que as indústrias produzam com eficiência e busqueminovações. É quase obrigatório que elas estejam comprometidas com a melhoria dosprocessos de produção para reduzir impactos ambientais negativos e garantir umcrescimento auto-sustentável.
No caso do mercado financeiro, o estabelecimento de uma infra-estrutura eficiente eacessível de intercomunicação mundial (Internet, e-mail, comunicação wireless, etc.)
permitiu o surgimento de sofisticados produtos financeiros tão difíceis de serementendidos quanto de terem seu risco gerenciado.
Nas universidades e faculdades, professores e estudantes desesperam-se com acomposição dos currículos escolares. O tempo disponível para os cursos parece sersempre insuficiente para cobrir todos os assuntos gerados pelo acelerado crescimentoda produção de informação e inovação tecnológica.
Desta forma, todos acabamos tendo que enfrentar o grande desafio de resolver
questões complexas aparentemente insolúveis.Nas áreas técnicas, a busca de soluções para esses problemas demanda estudo epesquisa que podem ser extremamente beneficiados com a adoção de ferramentascomputacionais adequadas.
Neste contexto, o MATLAB® é tido como produto líder na área de computação numéricae científica, adotado como ferramenta padrão de desenvolvimento pelas principaisuniversidades e empresas, contando com mais de 1 milhão de usuários no mundo. No
Brasil, o este software está presente em todas universidades de primeira linha (porexemplo: USP, UNICAMP, ITA, UnB, UNESP, Federais, PUCs), bem como nosdepartamentos de engenharia e desenvolvimento das principais empresas do país, taiscomo: Embraer, Petrobrás, Banco Central do Brasil, BankBoston, Banco Itaú, Citibank.
Preparamos este livro para ser um material introdutório, objetivo e didático, quepossibilite a rápida capacitação de estudantes e profissionais para utilização doMATLAB® 7, podendo ser utilizado como material de apoio de cursos em vários níveisde ensino (técnico, superior ou pós-graduação), treinamentos empresariais e até em
escolas de segundo grau.
O escopo do livro é a utilização dos recursos do MATLAB®, ou seja, não temos apretensão de ensinar teorias e conceitos básicos de matemática, engenharia oulinguagem de programação. Na verdade, esses conhecimentos são pré-requisitosfundamentais para o completo aproveitamento do conteúdo apresentado.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
13/377
Para facilitar a leitura e compreensão dos assuntos, principalmente para os iniciantes,procuramos utilizar uma linguagem simples e acessível, sem muito rigor formal, semcontudo comprometer a precisão técnica das informações.
Desde a sua primeira versão, lançada comercialmente em 1984, o MATLAB® vemsendo utilizado por estudantes, professores, pesquisadores, cientistas, engenheiros eprofissionais de tecnologia de informação como ambiente de trabalho básico para
criação, análise e simulação de modelos matemáticos aplicados às mais diversas áreas,desde automação e controle industrial, passando por gerenciamento de risco financeiro,até pesquisas avançadas em biotecnologia e bioinformática.
Em junho de 2004, foi lançado o CD "Release 14" com as novas versões dos produtosda The MathWorks (empresa desenvolvedora do MATLAB®): MATLAB® 7, Simulink® 6,12 novos produtos e 17 atualizações.
Esperamos que este trabalho acelere os "primeiros passos" de usuários novatos, e
facilite os "passos de transição" para o MATLAB® 7 de usuários veteranos, de tal formaque todos possam rapidamente aproveitar as vantagens oferecidas por esta novaversão.
Como informação complementar, o livro contém um capítulo de introdução ao uso doSymbolic Math Toolbox, aplicativo do MATLAB® dedicado à matemática simbólica.
Todos os exemplos utilizados no livro e as respostas dos exercícios estão disponíveisno site da Editora Érica para download.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
14/377
Apresentação
O objetivo deste livro é capacitar o leitor para utilização do MATLAB® 7 naimplementação de soluções neste ambiente, que integra:
♦ biblioteca de funções matemáticas extremamente eficiente em processamento
numérico baseado em matrizes;
♦ sofisticados recursos de geração de gráficos para visualização e análise de dados;
♦ poderosa linguagem de programação de alto nível e de codificação simples;
♦ interface de troca de dados com sistemas externos.
Programar em MATLAB® é, sem dúvida, mais simples, rápido e eficiente do que emqualquer outra linguagem de programação convencional como C/C++, VBA ou Fortran.
Tanto que a própria The Mathworks, com o apoio de empresas e consultoriasespecializadas, desenvolve e comercializa bibliotecas de rotinas MATLAB® (m-files), denominadas 'Toolbox', aplicadas a áreas específicas como estatística, otimização,controle, redes neurais, finanças, totalizando mais de 70 títulos.
Além disso, estudantes e profissionais em instituições acadêmicas e centros de pesquisa ao redor do mundo costumam disponibilizar, na Internet, os m-files desenvolvidospara resolver problemas em áreas específicas.
Este livro está organizado em sete capítulos:Capítulo 1: Introdução - Descreve o ambiente interativo do MATLAB® 7 na plataformaPC/Windows XP.
Capítulo 2: Conceitos - Apresenta os principais conceitos de utilização do MATLAB® 7por meio de exemplos, exercícios práticos e tutoriais.
É recomendável que a leitura deste capítulo seja feita com o programa aberto e emexecução, para que o leitor possa praticar os exercícios ao longo da leitura.
Capítulo 3: Programação - Expõe os principais comandos e as principais funções dalinguagem de programação do software, com suas sintaxes mais típicas.
Este capítulo não precisa, necessariamente, ser lido do início ao fim. Pode ser utilizadocomo um manual de consulta e referência.
Capítulo 4: Leitura e Gravação de Arquivos - Descreve as principais funções deleitura e gravação de arquivos de vários tipos de formatos.
Capítulo 5: Gráficos e Handle Graphics ® - Apresenta os recursos gráficos doMATLAB® 7 e as funções Handle Graphics®, que gerenciam objetos gráficos.
Capítulo 6: Criação de Interface Gráfica com Usuário - Mostra como desenvolverimplementação de interface com usuário utilizando as funções de caixa de diálogopredefinidas e os recursos do GUIDE.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
15/377
Capítulo 7: Introdução Symbolic Math Toolbox - Faz uma introdução ao uso doSymbolic Math Toolbox, aplicativo do MATLAB® para matemática simbólica.
Possui também um apêndice com exercícios propostos.
Além disso, no site da Editora Érica, estão disponíveis todos os arquivos de exemplos eexercícios apresentados no livro, as respostas dos exercícios propostos no Apêndice A
e um apêndice complementar contendo um resumo das novidades do CD Release 14.
Convenções Utilizadas no Livro
♦ Nom enclaturas e Expressões Estrangeiras
Optamos por não traduzir nomenclaturas e expressões estrangeiras. Nestes casos, aspalavras são grafadas em itálico.
Exemplo: menu pop-up, workspace, online help, prompt.
♦ Opçõ es de menus e caixas de diálogo
São grafadas entre [ ].
Exemplo: Opção [Set Path...] do menu pop-up [File]-------►
♦ Linhas de com ando do MATLAB®
São delimitadas por um retângulo e grafadas com fonte Courier.
Exemplo:
♦ Linhas de prog rama do editor do MATLAB® (Edit)
São delimitadas por um retângulo de fio duplo e grafadas com fonte Courier.
Exemplo:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
16/377
Índice Analítico
Capítulo 1. introdução...............................................................................................................19
Capítulo 2. Conceitos................................................................................................................252.1. O Que É MATLAB®7...........................................................................................................25
2.2. Números, Vetores e Matrizes............................................................................................26
2.3. Operadores e Funções........................................................................................................31
2.3.1. Operadores................................................................................................................... 31
2.3.2. Funções..........................................................................................................................35
2.3.3. Manipulação de Matrizes............................................................................................372.3.4. Indexação de Elementos de Matrizes......................................................................38
2.3.5. Vetores Seqüenciais...................................................................................................42
2.3.6. Funções Matriciais Elementares...............................................................................44
2.4. Outros Tipos de Objetos..................................................................................................... 45
2.4.1. Matriz Tridimensional..................................................................................................45
2.4.2. Cadeia de Caracteres (String)...................................................................................462.4.3. Matriz de Células (Cell Array).....................................................................................47
2.4.4. Estrutura (Struct)..........................................................................................................49
2.5. Outros Tipos de Dados Numéricos...................................................................................50
2.6. Gráficos..................................................................................................................................53
2.6.1. Gráfico Bidimensional..................................................................................................54
2.6.2. Gráfico Tridimensional.................................................................................................60
2.7. Leitura e Armazenamento de Dados................................................................................62
2.7.1. Arquivo MAT..................................................................................................................62
2.7.2. Arquivo ASCII................................................................................................................63
2.7.3. Arquivo MS-Excel.........................................................................................................67
2.7.4. Utilitário de Importação de Dados.............................................................................68
2.8. Programação no MATLAB® 7 ............................................................................................69
2.8.1. Editor de Programas: edit...........................................................................................70
2.8.2. Depuração de Programas: Debug Mode...................................................................72
2.8.3. Analisador de Sintaxe de Programas:M-Lint............................................................74
2.8.4. Elementos de Programação do MATLAB® 7...........................................................75
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
17/377
2.8.5. Estatística de Execução de Programa.......................... ..........................................84
2.9. Criação de Interface Gráfica com Usuário........................................................................86
Capítulo 3. Programação........................................................................................................97
3.1. Ambiente MATLAB® 7 .........................................................................................................98
3.1.1. MATLAB® Desktop.......................................................................................................99
3.1.2. Utilitários e Arquivos Especiais...............................................................................118
3.2. Operações Matemáticas no MATLAB® 7........................................................................121
3.2.1. Funções Matemáticas Elementares........................................................................121
3.2.2. Vetores e Matrizes.....................................................................................................123
3.2.3. Álgebra Linear............................................................................................................138
3.2.4. Análise de Dados e Transformada de Fourier..................................................... 147
3.2.5. Polinômios..................................................................................................................155
3.2.6. Interpolação................................................................................................................158
3.2.7. Conversão de Sistemas de Coordenadas............................................................. 164
3.2.8. Métodos Numéricos Não-lineares...........................................................................165
3.2.9. Matrizes Esparsas......................................................................................................175
3.3. Programação......................................................................................................................1803.3.1. Estrutura e Tratamento de Dados.........................................................................181
3.3.2. Operadores.................................................................................................................199
3.3.3. M-files.........................................................................................................................207
3.3.4. Fluxo de Programação............................................................................................. 213
Capítulo 4. Leitura e Gravação de Arquivos.....................................................................2194.1. Construção de Nome de Arquivo...................................................................................219
4.2. Utilitários de Abertura e Gravação de Arquivos............................................................ 221
4.3. Funções de Entrada/Saída de 'baixo nível1.................................................................. 226
4.4. Arquivos de Formatos Específicos.................................................................................233
4.4.1. Arquivos ASCII...........................................................................................................233
4.4.2. Planilhas *.XLS e *.WK1..........................................................................................2364.4.3. Arquivos de Áudio.................................................... ................................................239
4.4.4. Arquivos de Imagem.................................................................................................242
4.4.5. Dados de Animação..................................................................................................245
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
18/377
4.4.6. Troca de Dados com Internet
4.4.7. Outros Tipos de Funções.....
247
252
Capítulo 5. Gráficos e Handle Graphics ® .........................................................................255
5.1. Gráficos...............................................................................................................................255
5.1.1. Utilitário Plot Tools ....................................................................................................2555.1.2. Exportação e Impressão de Figuras.......................................................................266
5.1.3. Utilitário Basic Fitting................................................................................................268
5.1.4. Utilitário Data Statistics.............................................................................................269
5.1.5. Funções Gráficas 2D................................................................................................270
5.1.6. Funções Gráficas 3D................................................................................................278
5.1.7. Gráficos de Fórmulas Matemáticas........................................................................2865.1,8. Acabamento de Superfícies....................................................................................290
5.1.9. Visualização 3D.........................................................................................................295
5.2. Handle Graphics®..............................................................................................................296
5.2.1. Criação de Figuras e Objetos Gráficos.................................................................297
5.2.2. Manipulação de Figuras e Objetos Gráficos........................................................300
Capítulo 6. Criação de Interface com Usuário ...............................................................305
6.1. Caixas de Diálogo..............................................................................................................305
6.2. Entrada Interativa de Dados............................................................................................314
6.3. Utilitário GUIDE.................................................................................................................317
6.3.1. Menu Pop-up do GUIDE...........................................................................................320
6.3.2. Barra de Ferramentas do GUIDE............................................................................321
6.3.3. Objetos de Controle.................................................................................................325
Capítulo 7. Introd ução ao Symbolic Math Too lbox .......................................................339
7.1. Conceitos............................................................................................................................ 340
7.1.1. Símbolos.....................................................................................................................340
7.1.2. Criação de Variáveis e Expressões Simbólicas...................................................341
7.1.3. Substituição de Variáveis Simbólicas porNúmeros.............................................343
7.1.4. Gráficos de Expressões Simbólicas.......................................................................344
7.2. Funções por Categoria.....................................................................................................344
7.2.1. Cálculo........................................................................................................................344
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
19/377
7.2.2. Simplificação e Substituição..................................................................................348
7.2.3. Aritmética de Precisão Variada.............................................................................352
7.2.4. Álgebra Linear...........................................................................................................353
7.2.5. Solução de Equações...........................................................................................354
7.2.6. Funções de Conversão..........................................................................................357
7.2.7. Transformadas......................................................................................................... 3597.2.8. Funções de Formatação.......................................................................................361
7.2.9. Funções Especiais..................................................................................................363
Apêndice A. Exercícios Pro po sto s ...................................................................................365
Índice Remissivo ................................................................................................................... 369
Referências Bibliográficas ................................................................................................. 375
Marcas Registradas...............................................................................................................376
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
20/377
C a p í t u l o 1
Introdução
Neste capítulo, descrevemos os aspectos genéricos do ambiente interativo e da tela detrabalho principal do MATLAB® 7
O MATLAB® 7 possui versões para os seguintes ambientes operacionais: Windows,LINUX, Sun-Solaris e Mac OS (veja página 8).
Este livro está baseado na versão para ambiente Windows XP.
Neste caso, após a correta instalação, o aplicativo pode ser acionado pormeio de seu ícone de tela.
Em seguida, você vê a tela do MATLAB® 7 Desktop, cuja configuração padrão tem o
seguinte layout:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
21/377
A. [Command Window] - janela de trabalho na qual são digitados dados e instruçõespara o MATLAB® 7 e são exibidos os resultados das operações executadas.
B. [Current Directory] - janela na qual é exibida a lista de arquivos contidos no diretóriocorrente.
C. [Workspace] - janela na qual é exibida a lista de variáveis definidas na janela de
trabalho [Command Window],D. [Command History] - janela na qual ficam armazenadas todas as instruções
executadas na janela de trabalho [Command Window].
E. Menus pop-up: comandos de configuração e acesso a utilitários do MATLAB® 7.
F. Barra de Ferramentas (menus de ícones): ícones de acesso rápido a comandos eutilitários.
G. Botão [Start]: opções de acesso rápido a comandos e utilitários.
H. Ícone de encerramento da sessão. A sessão do MATLAB® 7 pode ser encerradapelo comando quit:
Todos esses componentes estão detalhados no tópico 3.1 deste livro.
O MATLAB® 7 utiliza tecnologia Java Virtual Machine (JVM) e segue as mesmas
convenções de interatividade típicas deste tipo de ambiente:
♦ Botão esquerdo do mouse (botão de seleção): executa ação de acordo com ocontexto no qual o objeto é selecionado.
Por exemplo: indicação, com botão esquerdo do mouse, do arquivo de programa(m-file) circuito.m na janela• [Current Directory], abre arquivo no editor deprogramas EDIT.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
22/377
♦ Botão direito do mouse (botão de menu contextuai): abre menu contextuai, ouseja, um menu flutuante cujas opções variam de acordo com o contexto no qual omenu foi aberto.
Por exemplo: indicação,com botão direito domouse, do arquivo
circui to.m na janela[Current Directory], abre omenu contextual comopções de operações válidas para o arquivo. Nocaso da janela [CommandHistory], abre o menucontextual com opções de
operações válidas para oconjunto de instruçõesselecionadas.
♦ Tec las [ ^ ] [ ^ ] na janela [Command Window]: repetem os comandos digitados.
♦ Resizing Tools: tanto os tamanhos das janelas quanto os espaçamentos dasdivisões internas podem ser modificados com o cursor:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
23/377
♦ M oving Tools within the Desktop: as janelas podem ser movidas de uma posiçãopara outra por meio de 'drag-and-drop'.
Por exemplo: 'drag-and-drop', ou seja, clique a arraste a janela [Current Directory]:
ela pode ser deslocada para baixo e ocupar a mesma área que a janela[Command History], que passa a acomodar duas pastas;
ou, para a área da janela [Command Window], que é dividida em duas.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
24/377
♦ M o v i n g T o o l s o u t o f / in t o t h e M A T L A B ® 7 D e s k to p : 'undock' (retira) / 'dock'(encaixa) a janela na tela principal do MATLAB® 7.
Por exemplo:
clique na janela [Current Directory] para retirá-la da tela.
clique para restaurar.
O menu pop-up [Desktop] contém opções de configuração de posicionamento de janelas (Desktop Layout).
Essas configurações podem ser armazenadas e restauradas.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
25/377
Todos esses recursos estão descritos minuciosamente no tópico 3.1 deste livro.
Para finalizar este capítulo introdutório sobre aspectos genéricos de interatividade doMATLAB® 7, um último assunto merece atenção.
O MATLAB® 7 permite que comandos do sistema operacional sejam acionados a partirde instruções digitadas na janela [Comando Window]:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
26/377
Capít u l o 2
Conceitos
Acreditamos que uma das formas mais eficientes de se aprender a utilizar um softwareé trabalhar com ele.
Com o MATLAB® 7 não é diferente; portanto, na medida do possível, use-o e repita osexemplos e exercícios descritos neste capítulo pois, por meio deles, apresentamos osprincipais conceitos de utilização do MATLAB® 7.
2.1. O Que É MATLAB® 7
Pode ser definido como um software cujo elemento básico de trabalho são matrizes (o
nome MATLAB vem do inglês 'MATrix LABoratory), no qual problemas podem serfacilmente expressos em notação matemática e rapidamente solucionados por meio decálculos computacionais eficientes e confiáveis.
Aplicações típicas deste software incluem:
♦ matemática e computação;
♦ desenvolvimento de algoritmos;
♦ aquisição e análise de dados;
♦ visualização de resultados;
♦ modelamento, simulação e prototipação;
♦ desenvolvimento de aplicativos.
Neste contexto, os recursos do MATLAB® 7 podem ser divididos em cinco grandescategorias:
I. Am biente de desenvolvim ento: consiste no ambiente interativo do programa
propriamente dito, ou seja, o MATLAB® 7 Desktop ([Command Window], outras janelas e menus), no qual o usuário pode facilmente elaborar instruções ecomandos para testar idéias e verificar resultados.
II. Bibl ioteca de fun çõ es matemátic as do MATLAB® 7: núcleo do MATLAB® 7,composto por mais de 1.000 funções, desde as mais elementares, como soma e
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
27/377
subtração, até as mais sofisticadas, como inversa de matrizes, transformadas deFourier, solvers de equação diferencial ordinária.
III. Ling uagem de pro gram ação MATLAB® 7: linguagem de alto nível, cuja estruturade dados principal são matrizes que não precisam ser previamente dimensionadas. Além disso, a linguagem é 'orientada por objetos', o que torna suaprogramação mais simples e eficiente do que a programação em C/C++, Fortranou qualquer outra linguagem de programação tradicional.
IV. Recursos gráfico s do MATLAB® 7: biblioteca de funções gráficas do MATLAB,que disponibiliza recursos poderosos e flexíveis para a criação de gráficos paravisualização de resultados.
V. MATLAB® 7 App licati on Prog ram Interface (AP I): biblioteca que permite integraro programa com funções desenvolvidas em C e Fortran.
No capítulo 1 deste livro, introduzimos os principais elementos do ambiente dedesenvolvimento do MATLAB® 7 Desktop (item I da lista anterior). Nos próximos tópicos
deste capítulo, apresentamos os conceitos básicos dos itens II, III, IV.
2.2. Números, Vetores e Matrizes
Como já mencionado, o tipo de objeto (estrutura de dados) básico do MATLAB® 7 sãomatrizes, que podem ser:
♦ um escalar (número): matriz com dimensão 1x1:
♦ um vetor linha: matriz com dimensão 1x n:
♦ um vetor coluna: matriz com dimensão n x 1:
♦ uma matriz bidimensional: matriz com dimensão m x n:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
28/377
♦ um matriz tridimensional (ou vetor multi-dimensional): matriz com dimensão m x n x p
O MATLAB utiliza a seguinte notação para representar números:
♦ sinal - para indicar número negativo;
♦ para indicar casa decimal;♦ 'e' para notação científica;
♦ 'i 'e 'j' para notação de números complexos (raiz imaginária).
Por exemplo, na janela [Com m nd Window] do MATLAB® 7, digite:
Observação: 'ans' é o nome da variável reservada do MATLAB® 7 que armazena o resultado
da última operação executada na linha de comando do programa. _________________________
O MATLAB® 7 possui constantes numéricas predefinidas, cujos valores são determinados pela precisão numérica do processador matemático do equipamento no qual osoftware está instalado:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
29/377
Além disso, o MATLAB® 7 possui dois símbolos não-numéricos utilizados para representar situações de descontinuidade:
Exemplos (arquivo cap2_exemplo_01.m):
O formato de exibição dos números é configurado pelo comando format.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
30/377
Vetores e matrizes são definidos com a seguinte notação:
♦ '[' indica início de definição de matriz;
♦ ']' indica final de definição de matriz;
♦ ' ' ou ',' separa elementos na mesma linha, definindo colunas;
♦ finaliza definição de linha.
Exemplos (arquivo cap2_exemplo_02.m):
Números, vetores e matrizes podem ser armazenados em variáveis. No MATLAB® 7,nome de variável segue a seguinte convenção:
♦ Deve ser uma seqüência alfanumérica começando com letra. Exemplo: x i , m a t2,V a l o r ;
♦ É case-sensitive, ou seja, diferencia letras minúsculas e maiúsculas. Exemplo:v a l o r é diferente de v a l o r.
♦ Aceita no meio do nome. Exemplo: m a t _ 2 _ x _ 3 ,
♦ A função namel engthma x retorna o tamanho máximo do nome de variável emnúmero de caracteres. No ambiente Windows, este valor é 63.
Exemplo:
Observação: as informações digitadas na janela [Command Window] ficam armazenadas na janela [Command History], Visualmente, o conteúdo da janela [Command Window] pode serapagado pelos comandos: _________
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
31/377
» clc
Apaga a janela e leva o cursor para o topo da tela.
» home
Leva o cursor para o topo da tela, mantendo as linhas anteriores.
Conforme mencionado no capítulo 2 , as variáveis definidas na janela [CommandWindow] ficam armazenadas na memória do MATLAB® 7, em uma área denominadaWorkspace, cujo conteúdo é exibido na janela [Workspace],
O conteúdo das variáveis é exibido pelo editor de variáveis, [Array Editor], acionável porum 'duplo-clique' no nome da variável listada na janela [Workspace].
;
: ï
Os principais comandos de consulta e manipulação do [Workspace] são: :
Comando Descr ição Exemplo
who lista os nomes das variáveis» whoYour variables are: ans mat_2_x_3
whos lista os nomes ecaracterísticas das variáveis
» whos Name Size Bytes Classans lxl 8 double array
mat_2_x_3 2x3 48 double array
clear elimina variáveis da lista» clear mat_2_x_3
elimina todas as variáveis » clear
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
32/377
2,3. Operadores e Funções
No MATLAB® 7, expressões matemáticas são compostas por:
♦ números, vetores, matrizes;
♦ variáveis;
♦ resultados de execução de operadores e funções.
2.3.1. Operadores
Operadores aritméticos trabalham com números, vetores e matrizes.
Considere (arquivo eap2_exemplo_03.m):
Operador Descrição Exemplo
+ Soma
» a+b ans =
6 8 10 12
- Subtração
» a-b ans =
-4 -4 -4 -4
* Multiplicação matricial
» a*b ans =
19 22 43 50
* Multiplicação escalar » a.*b ans =
5 12 21 32
/Divisão matricial(a/b equivale a a*b'1)
» a/b ans =
3.0000 -2.00002.0000 -1.0000
./ Divisão escalar
» a./b ans =
0.2000 0.3333
0.4286 0.5000
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
33/377
Operador Descrição Exemplo
\Divisão 'esquerda'(a\b equivale a a~1*b)
» a\b ans =
-3.0000 -4.0000 4.0000 5.0000
A Potência (matrizAescalar)(aA3 equivale a a*a*a)
» a~3 ans =
37 54 81 118
A Potência escalar (matriz ,Amatriz - elemento a elemento)
» a.^b ans =1 64
2187 65536
1 Transposta
» a' ans =
1 32 4
( ) Precedência
» a+b*a ans =
24 36 34 50
» (a+b)*a ans =
30 44 46 68
Observação: para inibir a exibição do resultado da operação na tela, coloque o sinalnofinal da linha de comando.
» c=a*b;'
» cc =
19 2243 50
As matrizes devem ter dimensões compatíveis com as operações solicitadas.
» a = [1 2 3 4 3 ; % a 2x2» b=[5 6 % b lx2» a*b % Erro: as dimensões incompatíveis a 2X2 * b lx2
??? Error using ==> mtimesInner matrix dimensions must agree.
» b*a % Dimensões compatíveis b ix2 * a 2x2, o resultado é um vetor1x2
ans =23 34
Para recordar alguns conceitos de matemática relacionados à álgebra matricial e ilustrara utilização dos operadores, propomos dois exercícios.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
34/377
Exercício 1 O
Considere as seguintes tabelas com dados de uma montadora de automóveis:
a. Quantidade de carros do tipo C1 e C2 produzidos em Janeiro e Fevereiro:
Tipo de Carro / Mês Produção em Janeiro Produção em Fevereiro
Carro C1 1 0 0 1 2 0Carro C2 2 0 0 180
b. Custo de produção, em milhares de unidades monetárias, de cada carro tipo C1 eC2 em Janeiro e Fevereiro.
Tipo de Carro / Mês Custo em Janeiro Custo em Fevereiro
Carro C1 $ 10 .0 $9.8
Carro C2 $ 6 .0 $ 6.1
I. Crie duas matrizes no MATLAB para representar as tabelas precedentes.
II. Armazene na variável m1 a multiplicação escalar das matrizes a e b.
III. Qual é o significado do resultado obtido na variável m1?
Solução dos itens I e II (arquivo cap2_exercicio_01.m):
% Solucao do item I » a = [100 120; 200 180] a =
100 120200 180
» b = [10 9.8; 6 6.1] b =
10.0000 9.80006.0000 6.1000
% Solucao do item II » ml=a.*b
ml =1000 11761200 1098
Solução do item II):
A multiplicação escalar multiplica os elementos das matrizes elemento a elemento:
m1 (1 ,1 ) = a(1 ,1 ) * b(1 ,1 )
m1 (1 ,2 ) = a(1 ,2 ) * b(1 ,2 )
f> Fonte: programação 'Vestibulando Digital' exibido pela TV Cultura - São Paulo.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
35/377
m1 (2 ,1 ) = a(2 ,1 ) * b(2 ,1 )
m1 (2 ,2 ) = a(2 ,2 ) * b(2 ,2 )
Desta forma, m1 (1,1) contém a quantidade de carros tipo C1 produzidos em Janeirovezes o custo de produção de cada carro C1 em Janeiro, ou seja, o custo de produçãode todos os carros tipo C1 produzidos em Janeiro.
Portanto, m1 é uma tabela que mostra o custo de produção, em milhares de unidadesmonetárias, de todos os carros C1 e C2 produzidos em Janeiro e Fevereiro:
Tipo de Carro / Mês Custo em Janeiro Custo em Fevereiro
Carro C1 1 0 0 * 10 = 1000 120*9.8 = 1176Carro C2 2 0 0 * 6 = 1200 180 *6.1 = 1098
Exercício 2 (*)
Considere mais uma tabela da mesma montadora do Exercício 1: quantidade de peçasdos tipos P1 e P2 utilizadas na produção dos carros C1 e C2.
Tipo de Peça/ Carro Carro C1 Carro C2
Peça P1 25 28
Peça P2 42 55
I. Crie uma matriz c no MATLAB para representar a tabela anterior.
II. Armazene na variável m2 a multiplicação matricial das matrizes c e a, do exercícioanterior.
III. Qual é o significado do resultado obtido na variável m2?
Solução dos itens I e II (arquivo cap2_exercicio_02.m):
% Solucao do item I» c = [25 28;42 55]c =
25 2842 55
% Solucao do item II» m2 = c*a
m2 =8100 8040
15200 14940
0 Fonte: programação ‘Vestibulando Digital' exibido pela TV Cultura - São Paulo.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
36/377
Solução do item III:
Na multiplicação matricial:
m2 (1 ,1 ) = c(1 ,1 )*a(1 ,1 ) + c(1 ,2 )*a(2 ,1 )
m2 (1 ,2 ) = c(1 ,1 )*a(1 ,2 ) + c(1 ,2 )*a(2 ,2 )
m2 (2 ,1 ) = c(2 ,1 )*a(1 ,1 ) + c(2 ,2 )*a(2 ,1 )
m2 (2 ,2 ) = c(2 ,1 )*a(1 ,2 ) + c(2 ,2 )*a(2 ,2 )
2 esta forma, m2 (1 ,1 ) contém a quantidade de peças do tipo P1 utilizadas no carro C1. ezes a quantidade de carros C1 produzidos em Janeiro mais a quantidade de peças do: do P1 utilizadas no carro C2 vezes a quantidade de carros C2 produzidos em Janeiro,: ̂ seja, a quantidade total de peças do tipo P1 consumidas no mês de Janeiro.
-crtanto, m2 é uma tabela que mostra a quantidade total de peças P1 e P2 consumidase~ Janeiro e Fevereiro.
Tipo de Peça / Mês Utilizadas em Janeiro Utilizadas em FevereiroPeça P1 25* 100 + 28*200 = 8100 25*120 + 28*180 = 8040
Peça P2 42*100 + 55*200 = 15200 42*120 + 55*180 = 14940
2.3.2. Funções
- sintaxe básica para chamada de qualquer função do MATLAB® 7, seja própria do-TLAB® 7 (built-in function) seja desenvolvida pelo usuário, segue este formato:
;3ai dal , Sai daN] = Funcao (Entradal , . . . , Entrada2)
♦ [S ai d al , SaidaN]: parâmetros de saída;
♦ Funcao: nome da função;
♦ [En trad al,..., EntradaN]: parâmetros de entrada.
Exemplo 1 - Funções trigonométricas:
[ » x = 0.5;» v=[0 1] ;» sin(x)=r.s =
0.4794I » cos (v)
ar.s =
1.0000 0.5403
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
37/377
Exemplo 2 - Funções matemáticas:
» sqrt(x)ans =
0.7071» exp(v)ans =
1.0000 2.7183
Exemplo 3 - Funções matriciais:
» a = [2 3 ; 5 -8]a =
2 35 -8
» det(a)ans =
-31
» i nv (a )ans =0.2581 0.0968
0.1613 -0.0645
No próximo exercício, utilizamos a função sum, que:
♦ dado um vetor Vixnou „xi, retorna a soma de todos os elementos do vetor; ■
♦ dada uma matriz Mmxn, retorna um vetor linha Vixn com a soma por coluna da matriz
M.
Exercício 3
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
38/377
% Criar vetor para representar os salários >>salarios=[50 100 150] salarios =
50 100 150% Criar vetor para representar as frequencias» freq=[30 60 10] freq =
30 60 10% Calcular a media ponderada» media = sum(salarios.*freq)/ surti (freq)
media =90
Solução do item II:
A variância dos salários é a soma do quadrado da diferença entre cada valor de salárioe a média, multiplicada pela sua freqüência, dividida pela soma das freqüências. Desviopadrão é a raiz quadrada da variância.
» variancia=sum((salarios-media). ̂2.*freq)/sum(freq) variancia =
» dp=sqrt(variancia) dp =
30
Observação: as principais funções da biblioteca matemática do MATLAB® 7 estão listadas nocapítulo 3.___________________________________________________________________
2.3.3. Manipulação de Matrizes
Apenas para relembrar, com relação à criação de matrizes:
♦ definição de matrizes é delimitada por'[' e
♦ 1 ' ou separa elementos na mesma linha, definindo colunas;
♦ delimita linhas.
Elementos de matrizes podem ser números e expressões.
» m = [38-log(65) sqrt(0.04); 3+i pi] m =
33.8256 0.20003.0000 + 1.0000Í 3.1416
Os símbolos ' ' e também podem ser utilizados para concatenar matrizes (arquivocap2_exemplo_04.m):
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
39/377
Observação: as matrizes devem ter dimensões compatíveis com a operação deconcatenação solicitada.________________________________________________________
2.3.4. Indexação de Elementos de Matrizes
O padrão de identificação de elementos de matrizes no MATLAB® 7 segue a sintaxeintuitiva da linguagem matemática tradicional:
Exemplo: elemento da 2- linha e 4ãcoluna da matriz a = a(2,4) = 9.
a =1 2 3 4 56 7 8 9 10
11» a(2,4)ans =
9
12 13 14 15
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
40/377
Os elementos também podem ser identificados seqüencialmente. A indexação começano primeiro elemento e segue de cima para baixo, da esquerda para a direita:
O símbolodefine intervalos de indexação.Por exemplo (arquivo cap2_exemplo_05.m):
♦ criar b com os elementos da 2- a 4- coluna da 2- linha da matriz a.
b=a (2 ,,-2 :4) b =
7 8 9
♦ criar c com os todos os elementos da 3- coluna da matriz a.
» c= a(:,3) c =
38
13
♦ criar d com os todos os elementos da 1 - linha da matriz a.
» d=a(l,:) d =
1 2 3 4 5
♦ 'end' indica fim de intervalo, ou seja, para criar e com todos os elementos da 2 -linha da matriz a a partir da 2- coluna, digite:
>> e=a(2,2:end)e =
7 8 9 10
É possível utilizar a indexação seqüencial com '[ ]' para definir submatrizes. Porexemplo, criar h a com a 1- linha composta pelos 3ee 102 elementos de a, e a 2- linhapelos 59e 12aelementos.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
41/377
» f=[ a(3) a (10) a (5) a (12) ]f =
11 47 14
Vejamos, agora, como resolver um sistema linear do tipo A * X = B no MATLAB®7.
Exercício 4__________________________________________________________
Resolvamos um problema típico de curso básico de eletricidade, ilustrado no esquemaapresentado a seguir:
Ri- WAMV-
+
2-VWMV-
R3-VMWv-
+
PT
Dados de Entrada:
♦ Quais são os valores das correntes 11,12 e I3?
♦ Qual é a potência total (PT) do circuito?
Solução (arquivo cap2_exercicio_04.m):
A resposta do item I deste problema é obtida com a resolução do sistema linear de três
equações e três incógnitas seguinte:(R1 + R4) * 11 -(R4)*I2 =V1
-R 4* 11 +(R2 + R4 + R5)*I2 - (R5) * I3 =0
- (R5) * I2 + (R3 + R5) * I3 =-V 2
Variáveis Valor Voltagem V1 10 VVoltagem V2 5 VResistência R1 1 Q
Resistência R2 2Q.
Resistência R3 3QResistência R4 4 £2
Resistência R5 5 Q
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
42/377
E a do item II é dada por esta fórmula: PT = V1 * 11—V2 * 13
Devemos criar as variáveis no MATLAB®7:
£ or HI
I
v H>
> >L DI I
C M>
» M I I
» t o I I t o
> > R3 = 3»
I I
» R5 = 5
E 'montar' a matriz A e o vetor coluna B do sistema linear A * X = B:
» A=[(R1+R4) -R4 0;-R4 (R2+R4+R5) -R5;0 -R5 (R3+R5)] A =
5 - 4 0-4 11 -50 - 5 8
» B- [VI; 0; -V2 ]B =
100
-5
Para verificar se o sistema linear tem solução, podemos consultar:
♦ o posto de A: se for 3, então o sistema tem solução;
♦ ou o determinante de A: se for diferente de 3, então o sistema tem solução.
» rank(A) % posto de A ans =
3
» det(A) % determinante de A ans =
187
A solução do sistema A * X = B é armazenada no vetor X, obtido da seguinte forma:X = A” 1 * B (inversa de A vezes B) ou A \ B (divisão pela esquerda):
» X=inv(A) *BX =
2.8342 % X (1) = 111.0428 % X (2) = 120.0267 % X (3) = 13
» X=A\BX =
2.83421.04280.0267
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
43/377
0 vetor X contém os valores das três correntes: X(1) = 11, X(2) = 12 e X(3) = 13. Paracalcular a potência, execute:
» PT = VI * X(l) - V2 * X (3) PT =
28.2086
Ou seja, o resultado final é:
Variáveis Valor
Corrente 11 2.8342 A
Corrente 12 1.0428 A
Corrente 13 0.0267 A
Potência Total PT 28.2086 W
2.3.5. Vetores Seqüenciais
Além das formas de definição de vetores e matrizes apresentadas nos tópicos anteriores, o MATLAB® 7 possui recursos que facilitam a construção de vetores seqüenciais,essenciais para o tratamento de séries de tempo.
A sintaxe mais simples para definir um vetor seqüencial é feita com o símboloDevemos fornecer, também, os valores inicial, de incremento e final.
[ Valor_Inicial : Incremento : Valor_Final
Por exemplo (arquivo cap2_exemplo_06.m):
♦ criar v1 contendo valores de 0 a 1 0 com incremento 2 .
» vl =[0:2:10]
vl =
O t
o
4 6 8 10
♦ criar v2 contendo valores de 15 a 5 com incremento -3.
» v2 =[15:-3:5]v2 =
15 12 9 6
Observação: o último elemento nunca ultrapassa o limite estabelecido pelo valor final.Por exemplo, o último elemento do vetor v2 é 6 , pois o próximo elemento, 6 -3 = 3, seriamenor que 5._________________________________________________________________
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
44/377
Algumas omissões são permitidas:
♦ os‘[ ]' podem ser omitidos;
♦ se o parâmetro de incremento for omitido, assume-se incremento 1 .
» v3 = l : 5 v3 =
1 2 3 4 5
Vetores seqüenciais também podem ser criados peia função l inspace.
A função l inspace recebe como dados de entrada os valores inicial e final da seqüênciae o número desejado de divisões uniformemente espaçadas.
Por exemplo (arquivo cap2_exemplo_07.m):
♦ criar w1 com 5 divisões uniformemente espaçadas entre de 0 a 10. Equivale a[0:2.5:10],
» wl=linsp ace{0,10,5)wl =
0 2.5000 5.0000 7.5000 10.0000
♦ criar w2 com 6 divisões uniformemente espaçadas entre 0 e 10. Equivale a [0:2:10].
» w2=linspace (0,10, 6)w2 =
0 2 4 6 8 10
Se o número de elementos for omitido, a função assume 100 elementos.
Exemplo: criar 100 elementos igualmente espaçados entre 0 e pi.
» w3=linspace(0,pi);» whos w3 Name Size Bytes Classw3 1x100 800 double array
Grand total is 100 elements using 800 bytes
Examine o conteúdo da variável w3 no [Array Editor] (duplo-clique no nome da variávelna janela [Workspace]):
' ’ f j i , o * X i l £ A r r a y Editor - w 3
l â f i á S %
Name Í Value j Class
■H 01 éü stack.H , 1 _ EB Q ] 0 Ö [ 1 (
i 1 1 2 3 i 4 j 5 ; 6 '
? X
0 3 w1 [0 2.5 5 7,... double
Ï B w 2 [ 0 2 4 6 8 . , . d ou ble j
f f i j w S
: i 1 01 0.03173 3: 0.063 467! 0.0952!
2 ___ r3 ;1.......... ...|...........................-j _______ .
: 4 I j j j !: 51 j ____ I __ S 1! 6 j j j j I
1.7.’]
8 j
: 9 1
.......0.126931......0.15867; A
Workspace Current Directory 101
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
45/377
2.3.6. Funções Matriciais Elementares
Assim como a função l inspace, apresentada no tópico anterior, o MATLAB® 7 possuiinúmeros recursos para facilitar a criação e manipulação de matrizes elementares.
Criação de matrizes elementares:
Matriz Função Exemplo
Identidade eye
» eye(2) ans =
1 0 0 1
>> eye(2,3) ans =
1 0 0 0 1 0
Composta por 0 zeros
» zeros(3,2) ans =
0 0 0 0 0 0
Composta por 1 ones
» ones(3) ans =
1 1 11 1 11 1 1
Composta pornúmeros aleatórios
(distribuição uniforme)rand
» rand(3,4) ans =
0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919
Composta pornúmeros aleatórios(distribuição normal)
randn
» rand n(3,4) ans =
-0.4326 0.2877 1.1892 0.1746 -1.6656 -1.1465 -0.0376 -0.1867 0.1253 1.1909 0.3273 0.7258
Observação: essas funções aceitam um ou dois parâmetros. No caso do fornecimento deapenas um parâmetro n, a função gera uma matriz quadrada n x n. No caso de doisparâmetros, n e m, a função gera uma matriz retangular n x m. _________________________
Manipulação de matrizes: considere a matriz a=[1 2;3 4]
Operação Função Exemplo
Informa o número de linhas ecolunas da matriz
size» size(a)
ans =
2 2
Informa o número deelementos da matriz
numel» numel(a) ans =
4
Hl
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
46/377
Operação Exemplo
Calcula posto de matriz rank» rank(a) ans =
2
Calcula determinante de matriz det» det(a) ans =
-2
Calcula inversa de matriz inv
» inv(a) ans =
-2.0000 1.0000 1.5000 -0.5000
2.4. Outros Tipos de Objetos
Neste tópico, apresentamos os principais tipos de objetos utilizados nas funções doMATLAB® 7, além de vetores e matrizes numéricos.
2.4.1. Matriz Tridimensional
O MATLAB® 7 permite criar matrizes tridimensionais a partir da composição dematrizes bidimensionais concatenadas com o símbolo
♦ m x n x p
Por exemplo: criar matriz A 3x3x2, a partir de duas matrizes bidimensionais 3x3(arquivo cap2_exemplo_08.m).
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
47/377
A ( : : , 2 ) =
1 0 00 1 00 0 1
2.4.2. Cadeia de Caracteres (String)
É o tipo de dado char, ou seja, caractere ou texto ASCII, armazenado em 2 bytes dememória.
No MATLAB® 7, cadeias de caracteres são delimitadas por" e exibidas em cor púrpura.
Exemplo: a variável txt recebe o texto 'Resultado', que é armazenado no MATLABcomo classe char array de dimensão 1x9, ocupando 18 bytes na memória.
» txt='Resultado'txt =
Resultado
» whos txt Name Size Bytes Classtxt 1x9 18 char array
Grand total is 9 elements using 18 bytes
Cadeias de caracteres podem ser manipuladas como matrizes, ou seja, aceitam operações de transposição e concatenação, desde que as dimensões sejam compatíveis.
Exemplos (arquivo cap2_exemplo_09.m):
» t x t l ' % Transposicaoans =R es
u1tad o
>>txt2 = [txtl 1 da Provai'] % Concatenacao horizontaltxt2 =
Resultado da Provai
>>txt3 = [ txtl ; ’da Provai ] % Concatenacao verticaltxt3 =
Resultadoda Provai
Observação: no caso de concatenação vertical, uma nova linha de caracteres é adicionada.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
48/377
» txt3(1,:) ans = Resultado
» txt3 (2,:) ans = da Proval
A concatenação vertical com sinal só foi possível porque as duas cadeias decaracteres possuem o mesmo número de letras.
Cadeias de caracteres com números diferentes de letras não podem ser concatenadascom
» txt4 = [ txtl ; 'da Prova']??? Error using ==> vertcat
All rows in the bracketed expression must have the same number of columns.
Nesse caso, deve-se usar a função strvcat, que executa a concatenação, ajustando ostamanhos das cadeias de caracteres com a inclusão de1
» txt4=strvcat(txt l,'da Pro va 1)txt4 =
Resultadoda Prova
» whos txt4
Name Size Bytes Classtxt4 2x9 36 char array
Grand total is 18 elements using 36 bytes
2.4.3. Matriz de Células (CelIArray)
Matriz de célula (cell array) é um tipo de dado que permite o armazenamento deelementos de naturezas diferentes em uma única estrutura, identificáveis por um único
nome.Internamente, cell array é uma tabela de apontadores que endereça as regiões dememórias nas quais os elementos estão efetivamente armazenados.
A função cell cria uma matriz de células vazias (ou seja, uma tabela de apontadoresvazios), que podem ser preenchidas posteriormente por meio de atribuições de dados:
'{ }' são usadas para definir o conteúdo de células.
Exemplo (arquivo cap2_exemplo_10.m): criar uma matriz de célula celula 2x2 comquatro elementos diferentes:
♦ ceiula(1,1): matriz identidade 3x3
♦ celula(1,2): texto 'matriz identidade 3x3'
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
49/377
♦ celula(2 ,1 ): constante pi
♦ celula(2,2): vetor 0:5
» celula=cell(2) celula =
[ ] [ ][ ] [ ]
» celula(1,1}={eye (3)}
celula =[3x3 double] []
[ ] [ ]» cel ula(1,2)={'matriz identidade 3x3'} celula =
[3x3 double] [1x21 char]
[ ] [ ]» celula(2,1)={pi} celula =
[3x3 double] [1x21 char][ 3.1416] []
» celula(2,2)={1:5} celula =[3x3 double] [1x21 char ][ 3.1416] [1x5 double]
Cell arrays são visualizáveis no [Array Editor], Um duplo-clique no elemento da célulaexibe o seu conteúdo.
Cell arrays podem ser definidos apenas com'{ }':» cel={ ones(2) 'texto' pi }cel =
[2x2 double] 'texto' [3.1416]
O acesso indexado ao conteúdo da célula é feito com'{ }':
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
50/377
2.4.4. Estrutura (Struct)
Estrutura (struct) é um tipo de dado que permite o armazenamento de elementos denaturezas diferentes em uma única estrutura, identificáveis individualmente por nomesde campos (.fields).
Internamente, struct é semelhante ao cell array, isto é, é também uma tabela deapontadores. A diferença está na forma de acesso aos elementos internos. Enquantocell arrays trabalham com índices, structs usam nomes (campos ou fields).
A função struct cria estruturas. No exemplo seguinte, criamos uma estrutura com nomes, com três campos com os seguintes conteúdos:
♦ nome: 'Dolar Comercial'
♦ iden: 'DOL'
♦ valor: 3.19
»s=struct ( 'Nome' , { 1 Dolar Comercial' }, ' Iden' , { 'DO L ' }, ' Valor ',{3.19})
Nome: 'Dolar Comercial'Iden: 'DOL'
Valor: 3.1900
O conteúdo da estrutura é identificado pelo nome da estrutura seguido por efinalizado pelo nome do campo:
É possível criar vetores de estruturas. A indexação é feita com'( )':I» s (2).Nome='Ouro 250g'; » s (2).Iden='OZ 1';» s (2) .Valor=39.65;» s (2) ans =
Nome: 'Ouro 250g'Iden: 'OZl'
Valor: 39.6500
Structs são visualizáveis no [Array Editor], Um duplo-clique no elemento da estruturaexibe seus campos.
» s.Nome ans =Dolar Comercial » s.Iden ans =DOL» s.Valor ans =
3.1900
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
51/377
A função f ieldnames lista o nome dos campos da estrutura em um cell array, cujoconteúdo pode ser utilizado posteriormente.
» campos=fieldnames(s)campos =
1 Nome''Iden''Valor'
» whos campos Name Size Bytes Classcampos 3x1 206 cell array
Grand total is 16 elements using 206 by te s» whos campos
» campos{l}ans =
Nome
Observação: esses exemplos estão armazenados no arquivo cap2_exemplo_11.m.
2.5. Outros Tipos de Dados Numéricos
O MATLAB® trabalha tradicionalmente com matemática de ponto flutuante de precisãodupla. A partir do MATLAB® 7, números podem ser armazenados e manipulados com
precisão simples e como números inteiros. A tabela seguinte mostra as propriedades dos tipos de dados numéricos suportados:
♦ Nome: identificação padrão do tipo de dado numérico no MATLAB®;
♦ Bits: tamanho, em bits ( 8 bits = 1 byte), do dado na memória;
♦ Valor Mínimo: valor mínimo do tipo de dado numérico:
- função realmin para números reais (precisão dupla e simples);
- função intmin para números inteiros.♦ Valor Máximo: valor máximo do tipo de dado numérico:
- função realmax para números reais (precisão dupla e simples);
função intmax para números inteiros.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
52/377
Tipo de Dado Nome Bits Valor Mínimo Valor Máximo
PrecisãoDupla
double 64 bits» realmin
2.2251e-308
» realmax
1.7977e+308
PrecisãoSimples
single 32 bits» realmi n(1 single')
1.1755e-038
» realma x(1 single ')
3. 4028e+038
Inteiro 8 bitscom sinal
int8 8 bits» intmin('int8')
-128
» intm ax(1int8 ' )
127
Inteiro 8 bitssem sinal
uint8 8 bits » intmin(1uint 8') 0
» intmax(1uin t8') 255
Inteiro 16 bitscom sinal
intl6 16 bits» intminf'intl6')
-32768
» intmax('intl61)
32767
Inteiro 16 bitssem sinal
uintl6 16 bits» intmin('uintl6 ')
0
» intmax('uintl61)
65535
inteiro 32 bitscom sinal
int32 32 bits» intmin('int32')
-2147483648
» intmax('int32')
2147483647
Inteiro 32 bitssem sinal uint32 32 bits» intmin('uint32')
0
» intmax('uint32')
4294967295
Inteiro 64 bitscom sinal
int64 64 bits» intmin(1int641)
-9223372036854775808
» intmax('int64 ')
9223372036854775807
Inteiro 64 bitssem sinal
uint64 64 bits» intm in('uint64')
0
» intma x('uint 64')
18446744073709551615
0 MATLAB® 7 consegue tratar aritmeticamente as operações combinando os tipos dedados numéricos: double (real com precisão dupla) e nondouble (real com precisãosimples e números inteiros).
Esta capacidade é essencial para a solução de problemas em áreas como otimização etratamento de sinais.
Além disso, a escolha do tipo de dado numérico mais adequado permite umasubstancial redução do espaço ocupado em memória.
Os tipos de dados são indicados pela utilização das funções de conversão (arquivo
cap2_exemplo_12.m):
Função Descrição Exemplodouble converte para doubie » a01=double(10) ;
s ingle converte para single » a 0 2= s in g le (1 0) ;
int8 converte para ints » a 03 =in t8 (1 0) ;
uint8 converte para uints » a04=uint8(10) ;
int l6 converte para in t i6 » a 0 5= in tl 6(1 0) ;
uintl6 converte parauint iõ » a06=u int l6 (10) ;int32 converte para int32 » a 07 =in t3 2( 10 );
uint32 converte para u in t32 » a08=uint32(10) ;
int64 converte para int64 » a 09 =in t6 4( 10 );
uint64 converte parauint64 » a l0 = ui nt 64 (1 0) ;
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
53/377
Na janela [Workspace], é possível verificar a classe das variáveis criadas pelas funçõesde conversão.
1 i f á g m w I fc!m -níis«'.'1iName •* jValue ClassÈBiaoí! 10 doubleSa02 10 singleEBa03 10 int8
S a04 10 uint8R-la05 10 int16f̂ aOB 10 uinl16EBa07 .10 int32ffia08 10 uint32H]a09 10 int64(®]a10 10 uint64
< >Current Directory Workspace;
Os tipos de dados numéricos podem ser combinados da seguinte forma:
♦ Tipo double pode ser combinado com qualquer outro tipo de dado nondouble. Oresultado é sempre do tipo nondouble.
Exemplo:
» 10+int8(pi) ans =
13
♦ Os nondoubles (s i ngl e, i nt 8, ui nt 8, i nt l 6, ui nt l 6, i nt 32,ui nt 32) só aceitam operações com dados do mesmo tipo ou com double.
» int8(10)+single(pi)??? Error using ==> plus
Integers can only be combined with integers of the same class, or scalar doubles.
» in t8 (10)+int8(pi) ans =
13
Veja este exemplo sobre precisão dupla e precisão simples:
♦ a variável p recebe a soma de três números de precisão dupla (0.3+0.3+0.4). Esseresultado é o número 1 armazenado com precisão dupla.
♦ a variável q recebe a soma de quatro números de precisão dupla(0.3+0.3+0.3+0.1). Esse resultado é o número 1.000 armazenado com precisãodupla.
» p= 0.3+0.3+0.4 P =
1
» q = 0 . 3 +0 .3 +0 .3 +0 .1
q =1 . 0 0 0 0
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
54/377
Porém p é diferente de q, pois o resultado da soma em q, em precisão dupla, éuma dízima binária. Podemos usar a função format hex do MATLAB paravisualizar o valor de p e q em formato hexadecimal e confirmar esse fato.
» format hex » P P =
3ff0000000000000
» qq =
3fefffffffffffff
♦ Vamos criar a variável q1 com a soma de quatro números:
- três com precisão dupla: 0.3+0.3+0.3
um com precisão simples: single(0 .1 )
O resultado é um número com precisão simples. Vamos observar o resultado numéricoe o resultado em formato hexadecimal.
» format» ql= 0.3+0.3+0.3+single(0.1)
q i =1
» format hex» ql= 0.3+0.3+0.3+singl e(0.1) ql =
3f800000
Com precisão simples, o resultado não é uma dízima. Sendo assim, p é diferente de q com precisão dupla, e p é igual a q1 com precisão simples.
» p == q ans =
0» p == qians =
1
2.6. Gráficos
Neste tópico, mostramos os recursos disponíveis no MATLAB® 7 de criação e manipulação de figuras para apresentação de resultados em formato gráfico.
O conjunto destes recursos, denominado Handle Graphicsi®, é descrito com detalhes no
capítulo 5.A operação de geração de gráficos pode ser organizada nos seguintes passos:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
55/377
Passo 0: Preparação dos dados
Fase que precede a geração do gráfico propriamente dita. Em geral, envolveleitura de dados externos e cálculos.
Passo 1; Chamada das fun ções de criação de gráficos
O MATLAB® 7 possui funções de criação de gráficos 2D e 3D.
Os gráficos são criados em janelas para figuras (figure window). Dentrodessas janelas, o usuário define o eixo no qual seus dados são exibidos.
Passo 2: Conf igur ação da aparência dos gráficos
No MATLAB®7, é possível configurar a aparência das curvas do gráfico (cor,tipo de linha e marcador), bem como a aparência do próprio gráfico (título,divisão dos eixos, grades, legendas, etc.).
Passo 3: Impress ão e expo rtação do gráfico
Gráficos do MATLAB® 7 podem ser facilmente impressos e exportados paraoutros sistemas, agilizando a geração de documentos e relatórios.
Vamos executar cada um desses passos no próximo exercício, utilizando duas funçõesbásicas de geração de gráficos no MATLAB®7: plot (gráfico bidimensional) e surf (superfície tridimensional).
2.6.1. Gráfico Bidimensional
Neste tópico, utilizamos a função plot para gerar o gráfico da curva dada pela fórmulax * cos(2 x), seguindo os passos listados anteriormente.
Exercício 5___________________________________________________________________
Passo 0: Preparação dos dados.
♦ Gerar o gráfico da função f(x) = x * cos (2 x) entre [~2n,2n].
Digite no MATLAB:
» x = - 2 * p i : O . 1 : 2 * p i ;
» y = x .* cos(2*x) ;
Passo 1: Chamada das funções de criação de gráficos.
A função plot cria um gráfico na figura corrente. Caso não exista nenhuma figura, elacria uma nova.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
56/377
Essa função espera como dados de entrada:
♦ Dois vetores l inhas (ou colunas) com dimensões iguais: neste caso, o 15 vetordeve conter os valores do eixo X e o 22vetor os do eixo Y; ‘
» plot(x,y)
Este deve ser o aspecto do gráfico gerado pela função plot.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
57/377
♦ Uma matriz: neste caso, considera que cada coluna da matriz contém o valor doeixo Y de uma curva, e assume os valores 1:m (número de linhas da matriz) como-valores do eixo X.
Exemplo: duas curvas x*cos(2*x) e x*sin(2*x).
» m= [y' (x.*sin(2*x))'];
» plot(m)
Fie Edit Víew Insert Tools DesViop Wndow Help
d 7 í # | k «iVA® * DB
e1---- 1---- ----- 1---- 1---- ----- j----0 20 40 60 ao 100 120 140
Passo 2: Configuração da aparência dos gráficos.
A função plot aceita um terceiro parâmetro, que define as propriedades de exibição dacurva do gráfico: cor, marcador, tipo de linha.
Digite a instrução seguinte para obter um gráfico com curva marcador'+' de cor vermelha:
» plot(x,y,'+ r ')
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
58/377
Tipos aceitos pela função plot, para exibição de curva:
Cor Marcador Tipo de linha
y (amarela) . (ponto) : (pontilhada)m(magenta) o (círculo) -. (ponto-traço)c (azul-claro) x (x's) -- (tracejada)r (vermelha) + (cruz) solid (sólida)
g (verde) * (estrela)b (azul) s (quadrado)w (branca) d (losango)k (preta) v (triângulo p/ baixo)
A (triângulo p/ cima)< (triângulo p/ esquerda)> (triângulo p/ direita)
p (pentagrama)h (hexagrama)
Também é possível configurar títulos e textos de anotações. Para configurar título dográfico, rótulos dos eixos e legenda digite:
>> titl e( Gráfico f(x) = x*cos( 2x)1)>> xlabel ('Eixo X ')» y labei ('Eixo Y ')
» legend ('x*cos(2x)')
Estes parâmetros também podem ser configurados de modo interativo, por meio da
janela [Plot Tools], acionável pelo ícone de mesmo nome, na janela do gráfico.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
59/377
Janela [PIot Tools]: os recursos disponíveis nesta janela estão descritos no item 5.1.1.
Fite Edit View :
Q ^ y i :
SEI▼ New Subplots
I...J 20 Axes
30 Axes
Insert Tools Desktop Windc
'k
1x126
1x126
▼ Annotations
\ Ime
'X . A-row
\ Double Arrow
^ Text Arrow
T Tex18ox
I I Rectangle
O Ellipse
Figure Name j
:Cotormep
:Foure Color
□ :y □ fc*Gfäfico f(x) - x’co&{2>.)
£3 Gráfico f(x) = x*cos(2x)I ED 4 x'cos(2x)
; [v j Show Figure Number
Export Setup . "1
Além disso, é possível criar vários eixos (gráficos) em uma mesma janela de figura
utilizando-se a função subplot, cuja sintaxe é dada por:
subplot(m,n,p)
Parâmetros de entrada:
♦ m: números de eixos (gráficos) na vertical (número de linhas).
♦ n: números de eixos na horizontal (número de colunas).
♦ p: índice do eixo corrente (a contagem do índice é da esquerda para a direita e decima para baixo).
Por exemplo, a seqüência de comandos abaixo gera a figura exibida a seguir:
» x = -2*pi:0.1:2*pi;» yl = x .* cos(2*x) ;» y2 = x . * exp (x) ;» subplot(1,2,1)» plot(x,yl)» ti tle(1x*cos(2*x )')
» subplot(1,2,2)» plot(x,y2)» ti tle('x*ex p(x)')» subplot(m,n,p)
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
60/377
Passo 3: Impressão e exportação do gráfico.O ícone print da barra de ferramentas da janela do gráfico abre a janela de impressãoda figura:
Fie Edt View Insert Toots Desktop Window Help ;
f Print Figure | I
Name: j \\einster;sjp
Status: Paused; S documents wa*ng
T>çe HP LaserJet 5
Where \-*n5t«n'ip
Comment:
Properties...
I f~ PnnttoSe
Pnnt range Copie*
fii Number of ccp
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
61/377
♦ formato de gravação. No exemplo, a figura é gravada em formato 'jpeg' comresolução alta;
♦ nome do arquivo. No exemplo, a figura é armazenada em um arquivo com nome'exercicio5.jpg'.
>>h=gc f;» p r i n t (h,'-djpeg901,1exercicio5.jp g');
Para visualizar o arquivo 'exercicio5.jpg' podemos:
♦ usar a função imread para 1er as informações da imagem;
♦ usar a função image para visualizar a imagem.
» a=imrea d(1exercicio5.jp g1);» image(a);
Observação: a solução deste exercício está armazenada no arquivo cap2_exercicio_05.m.
2.6.2. Gráfico Tridimensional
Neste tópico, empregamos a função surf para gerar o gráfico da superfície gerada pelafórmula x * cos(2y), com (x,y) entre [—rc,7i:].
Exercício 6__________________________________________________________
Passo 0: Preparação dos dados
♦ Gerar o gráfico da superfície Z(X,Y) = X * cos (2Y) entre [-71,71].
Digite no MATLAB:
» x = -pi:0.2:pi;» y = -pi:0.2:pi;
Utilizamos a função meshgrid, que cria duas matrizes, resultantes do cruzamento dosvalores dos vetores x e y. As duas matrizes servem de entrada à geração dascoordenadas tridimensionais necessárias para a definição da superfície.
» x = -pi : 0.2:pi ;» y = -pi : 0.2:pi;
» [X,Y] = meshgrid(x,y);
Veja 0 conteúdo das matrizes X e Y geradas a partir dos vetores x e y:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
62/377
\%£ Ar ray Editor X :..... *
f ic A f y ® L
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
63/377
Passo 2: Configuração da aparência dos gráficos.
No caso de gráficos tridimensionais, além de configurar tipo de títulos e textos deanotação, é possível configurar mapas de cores, posicionamento de câmera(visualização tridimensional), transparência e iluminação. Este assunto está detalhadono tópico 5.1.8.
Observação: a solução desse exercício está armazenada no arquivo cap2_exercicio_06.m.
2.7. Leitura e Arm azenamento de DadosNeste tópico, apresentamos os recursos de leitura e armazenamento de dados, emformato MAT, ASCII e MS-Excel, bem como o utilitário de importação de dados. Osoutros recursos do MATLAB® 7 de manipulação de arquivos de dados são apresentadosno capítulo 4.
2.7.1. Arquivo MAT
O MATLAB® possui um formato binário próprio de armazenamento de dados, usualmente chamado de formato MAT, pois os arquivos de dados neste formato possuemextensão .MAT (mat-file).
MAT é o formato de armazenamento de dados mais eficiente (rápido e compacto)disponível no MATLAB®. A funções que manipulam dados .MAT são:
♦ load: lê arquivo .MAT
♦ save: grava arquivo .MAT
Exemplos:
♦ grava um arquivo com nome dadosl .mat contendo todas as variáveis definidas no[Workspace]:
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
64/377
» a = [1 2 3;4 5 6;7 8 9] ;» b=[10 50 100] 1 ;» save dadosl
♦ grava um arquivo com nome dados2.mat contendo todas as variáveis fornecidas.No caso, contendo apenas a variável a:
» save dados2 a
A função save é acionável pelo menu contextual do [Workspace] para gravar oconteúdo da variável selecionada em arquivo.
S lp r " .tl.Q.3:X.CG;7.Q 9n T j Open Selection
Copy Ctrl+C
Duplicate Ctrl+D
Delete
Hfnax [SSBIPaces
Save as type: jMAT-fi iesf
♦ lê um arquivo com nome dadosl .mat. As variáveis contidas no arquivo aparecemno [Workspace],
>> load dadosl
Arquivos de dados .MAT também podem ser lidos pelo utilitário de importação de dadosque é apresentado no tópico 4.2.
2.7.2. Arquivo ASCII
Neste tópico mostramos como utilizar as funções de leitura e gravação de arquivos ASCII em formato delimitado (delimited file: dados separados por caractere delimitador):
♦ dlmread: lê arquivo ASCII delimitado;
♦ dlmwri te: grava arquivo ASCII delimitado.
No exercício proposto a seguir, vamos ler o arquivo 'cap2_dados1 ,txt', que contém duascolunas de dados numéricos.
-
8/18/2019 MatLab 7 - Fundamentos - Élia Yathie Matsumoto
65/377
Exercício 7
O arquivo 'cap2_dados1 .txt1contém dados sobre o crescimento da população de águas--vivas em um viveiro a 19°C.
As informações estão organizadas em 2 colunas e 50 registros (linhas):
♦ 1- coluna: % tempo de observação (de 0 a 100%);
♦ 2- coluna: tamanho da população de águas-vivas.
I. Ler o arquivo 'cap2_dados1.txt' e criar o gráfico tempo x tamanho dapopulação.
II. Obter valores da reta ax+b que melhor aproxime os pontos dados (mínimosquadrados / regressão linear). E crie um gráfico com os pontos dados e a retade aproximação.
III. Criar um arquivo 'cap2_saida.txt' com 3 colunas:1- coluna: % tempo de observação (de 0 a 100%);
- 2- coluna: tamanho da população de águas-vivas;
3ãcoluna; os valores obtidos pela regressão linear.
Solução do item I:
A função dlmread recebe, como parâmetro de entrada, o nome do arquivo a ser lido eretorna uma matriz com os valores lidos.
» m=dl mread(1cap2_dadosl .t xt ' );
A variável m recebe uma matriz 50 x 2 com os valores numéricos armazenados noarquivo:
♦ 1a co luna: % tempo de observação (de 0 a 100%);
♦ 2- coluna: tamanho da população de águas-vivas. A variável x recebe a 1? coluna transposta (ou seja, é um vetor linha) e a variável yrecebe a 2- coluna transposta:
» x=m( : , 1 ) ' ;
» y=m( : , 2 )' ;
Use a função plot, apresentada no item anterior,