Você está na página 1de 378

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 ip u l a o
In t r o d u o

P r o g r a m a o T ratam ento

G r f ic o s D e s e n v o l v im e n t o

2a EDIO

Exemplos do livro, respostas dos exerccios e


apndice, complementar disponveis na INTERNET.

ao

M a t r iz e s

A r q u iv o s

d e In t e r f a c e s

F u n e s E s p e c ia l iz a d a s I n t r o d u o

LIA YATHIE
M
A
T
S
U
O

de

de

de

D ados

G r f ic a s

S y m b o l ic M a th T o o l b o x

MATLAB 7
Fundamentos

EDITORA AFILIADA

Seja Nosso Parceiro no Com bate Cpia Ilegal


A c pia ilegal crim e. A o efetu-la, o in fra to r estar com e te n d o um grave erro, que inibir
a produo de obras literrias, p rejudicando p rofissionais que sero atingidos pelo crim e
praticado.
Junte-se a ns nesta corrente co n tra a pirataria. D iga no cpia ilegal.

Seu Cadastro Muito Im portante para Ns


A o preencher e rem eter a fich a de c a d a stro co n sta n te no final desta publicao, voc
passar a receber inform aes sobre nossos lanam entos em sua rea de preferncia.
C onhecendo m elhor nossos leitores e su a s preferncias, vam os produzir ttu lo s que a te n
dam suas necessidades.
O brigado pela sua escolha.

Fale Conosco!
E ventuais problem as referentes ao contedo deste livro sero enca m in h a d o s ao(s)
respectivo(s) a utor(es) para e sclarecim ento, excetuando-se as dvidas que dizem respeito
a pacotes de softw ares, as quais su gerim os que sejam encam inhadas aos distribuidores e
revendedores desses produtos, que e sto habilitados a prestar todos os esclarecim entos.
O s problem as s podem se r enviados por:
1.

E -m ail: producao @ erica .co m .b r

2.

Fax: (11) 6 197 .4060

3.

C arta: R ua S o G il, 159 - Tatuap - C E P 0 3 4 0 1-030 - S o P aulo - SP

INVISTA EM VOC.

MATLAB 7- Fundamentos

lia Yathie Matsumoto

MATLAB 7
F u n d a m e n to s

E ditora rica Ltda.


2006 - 2a E dio

C onselh o Editorial:
D iretor Editorial:
D iretor C om ercial:
D iretor de P ublicidade:
Capa:
Editorao:
R eviso G ram atical:
R eviso de D iagram ao:
C oordenao e R eviso:

A nto n io M arco V icari C ipelli


P aulo R oberto A lves
W a ld ir Jo o S andrini
M aurcio S. de Frana
rica R egina Pagano
P edro P aulo V ieira H erruzo
D irce Y ukie Y am am oto
R osana Ap. A lves dos S antos
R osana A rru d a da S ilva

C o p y rig h t 2004 da E ditora rica Ltda.


Da d o s In ternacionais de C atalogao na P ublicao (C IP)
(C m ara B rasileira do Livro, S P, B rasil)
M atsum oto, lia Y athie
MATLAB 7: Fu ndam entos / lia Y athie M atsum oto. 1. ed. S o Paulo:
rica, 2004.

B ibliografia.
IS BN 85-365-0032-8

1. C lculo num rico - P rogram as de com putador. 2. M A TLAB . I. Ttulo.


04-4725

C D D -5 19.40285

ndices para catlogo sistem tico


1. M A TLAB : C lculo num rico: P rogram as: P rocessam ento de dados 5 1 9 .40285
T o d o s os d ireitos reservado s. P roibida a reproduo total ou parcial, por q u a lquer m eio
ou processo, e specialm ente por sistem as grficos, m icro flm icos, fotogrficos, reprogrficos, fonogrficos, videogrficos, internet, e-books. V edada a m em orizao e/ou re cu p e ra
o total ou parcial em q ua lq u e r s iste m a de p rocessam ento de dados e a incluso de
qualquer parte da obra em qua lq u e r program a ju s c ib e rntico. E ssas proibies aplicam -se
tam bm s caractersticas grficas da obra e sua editorao. A vio la o dos direitos
autorais punvel com o crim e (art. 184 e pargrafos, do C digo Penal, conform e Lei
n 10.695, de 0 7 .0 1.2003) com pena de recluso, de dois a quatro anos, e m ulta, c o n ju n ta
m ente com busca e apreenso e indenizaes diversas (artigos 102, 103 pargrafo nico,
104, 105, 106 e 107 itens 1, 2 e 3 da Lei n2 9 .6 10, de 19/06/98, Lei dos D ireitos A utorais).
A A utora e a E ditora acreditam que todas as inform aes aqui apresentadas esto corretas
e podem ser utilizadas para q u a lquer fim legal. E ntretanto, no existe q u a lquer garantia,
e xplcita ou im plcita, de que o uso de ta is inform aes conduzir sem pre ao resultado
desejado. O s nom es de sites e em presas, porventura m encionados, foram utilizados
a penas para ilustrar os exem plos, no ten d o vnculo nenhum com o livro, no g arantindo a
sua existncia nem divulgao. E ventuais erratas estaro disponveis no site da E ditora
rica para dow nload.

E ditora rica Ltda.


Rua S o G il, 159 - T atuap
C EP: 0 3 4 0 1-030 - S o Paulo - SP
Fone: (11) 2295-3066 - Fax: ( 11) 6 197-4060
w w w .ed ito raerica .co m .b r

MATLAB 7-Fundamentos

Fabricante
Produto: MATLAB 7 (Release 14)

Desenvolvedor:
The MathWorks, Inc.
e-mail: info@mathworks.com
site: www.mathworks.com

Distribuidor no Brasil:
Opencadd Advanced Technology
Av. Brig. Faria Lima, 1931 - Cj. 42 - 4o andar
So Paulo - SP - 01452-001
Tel/Fax: (1 1 )1 816-7864
e-mail: info@opencadd.com.br
www.opencadd.com .br

Sobre o Material Disponvel na Internet


O material disponvel no site da Editora rica contm todos os arquivos de exemplos e
exerccios apresentados no livro, as respostas dos exerccios propostos no Apndice A
e um apndice complementar contendo um resumo das novidades do CD Release 14.
Para utilizar este material, necessrio ter o software MATLAB 7 corretamente
instalado em seu equipamento e o Adobe Acrobat Reader 3 ou verso mais recente.
MATLAB7_A.exe - 1 .08 M B
MATLAB7_B.exe - 2.00 MB

Procedimento para Download


Acesse o site da Editora rica Ltda.: www.editoraerica.com.br. A transferncia dos
arquivos disponveis pode ser feita de duas formas:

Por meio do mdulo pesquisa. Localize o livro desejado, digitando palavrasc haves (nome do livro ou do autor). Aparecero os dados do livro e os arquivos
para download, ento d um clique sobre o primeiro arquivo executvel que ser
transferido. Repita o procedimento para o segundo arquivo.

Por meio do boto "Download". Na pgina principal do site, clique no item


"Download". Ser exibido um campo, no qual devem ser digitadas palavras-chaves
(nome do livro ou do autor). Sero exibidos o nome do livro e os arquivos para
download. D um clique sobre o primeiro arquivo executvel que ser transferido.
Repita o procedimento para o segundo arquivo.

Procedimento para Descompactao


Primeiro passo: aps ter transferido os arquivos, verifique o diretrio em que se
encontram e d um duplo-clique sobre eles. Ser exibida uma tela do programa WINZIP
SELF-EXTRACTO R que conduzir voc ao processo de descompactao. Abaixo do
Unzip To Folder, existe um campo que indica o destino dos arquivos que sero
copiados para o disco rgido do seu computador.
C:\MATLAB7 Fundamentos
Segundo passo: prossiga com a instalao, clicando no boto Unzip, o qual se
encarrega de descompactar os arquivos. Logo abaixo dessa tela, aparece a barra de
status a qual monitora o processo para que voc acompanhe. Aps o trmino, outra tela
de informao surgir, indicando que os arquivos foram descompactados com sucesso
e esto no diretrio criado. Para sair dessa tela, clique no boto O K. Para finalizar o
programa WINZIP SELF-EXTRACTOR, clique no boto Close.

MATLAB 7 - Fundamentos

Requisitos de Hardware e de Software


Este livro foi escrito com base na verso MATLAB 7 para ambiente Windows XP.
Para este ambiente, os requisitos bsicos so:

microcomputador com processador:


Pentium III, IV, Xeon, M
AMD Athlon
-

Athlon XP/MP

monitor de vdeo grfico (1 6 ,24, ou 32 bits, OpenGL recomendvel);

unidade de CD-ROM (4x ou superior);

unidade multimdia;

mouse ou outro dispositivo de entrada;

impressora ou outro dispositivo de sada grfica;

no caso de licenas individuais: porta USB para instalao do dispositivo de


proteo (hardware lock)

no caso de licenas em rede: TCP/IP com acesso ao equipamento servidor da rede


no qual o programa de gerenciamento de licenas FLEXIm deve estar correta e
adequadamente instalado.

Os requisitos de espao em disco para instalao, memria RAM, espao livre em disco
para execuo podem variar de acordo com o tipo de instalao e necessidade de
desempenho:
Requisito

Mnimo Necessrio

Recomendvel

Espao em disco para


instalao

1.0 GB (instalao sem


documentao)

1.5 GB (instalao com


documentao completa)

Memria RAM

256 MB

1.0 GB

Espao livre para execuo

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)

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

MATLAB 7-Fundamentos

Dedicatria
Para Gabriel e Yasmin.

"... e que eu seja to bondoso e alegre


que todos quantos se aconcheguem
a mim sintam a Tua presena."

Orao da Manh
So Francisco de Assis

Sobre a Autora
lia Yathie Matsumoto, bacharel em Cincia da Computao pelo Instituto de
Matemtica e Estatstica da Universidade de So Paulo, com extenso universitria em
Capacitao Gerencial na FIA/ USP, scia-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 Programao do AutoCAD (1998)

AutoCAD 14 em Portugus (1999)

AutoCAD 2000 Fundamentos (2000)

MATLAB 6 Fundamentos (2001)

AutoCAD 2002 Fundamentos (2001)

AutoLISP 2002 Linguagem de Programao do AutoCAD (2001)

MATLAB 6.5 Fundamentos de Programao (2002)

Simulink 5 Fundamentos (2003)

AutoCAD 2004 Fundamentos (2004)

Prefcio
"O mundo anda to complicado e hoje eu quero fazer tudo ..."
Renato Russo

Hoje, j no suficiente que as indstrias produzam com eficincia e busquem


inovaes. quase obrigatrio que elas estejam comprometidas com a melhoria dos
processos de produo para reduzir impactos ambientais negativos e garantir um
crescimento auto-sustentvel.
No caso do mercado financeiro, o estabelecimento de uma infra-estrutura eficiente e
acessvel de intercomunicao mundial (Internet, e-mail, comunicao wireless, etc.)
permitiu o surgimento de sofisticados produtos financeiros to difceis de serem
entendidos quanto de terem seu risco gerenciado.
Nas universidades e faculdades, professores e estudantes desesperam-se com a
composio dos currculos escolares. O tempo disponvel para os cursos parece ser
sempre insuficiente para cobrir todos os assuntos gerados pelo acelerado crescimento
da produo de informao e inovao tecnolgica.
Desta forma, todos acabamos tendo que enfrentar o grande desafio de resolver
questes complexas aparentemente insolveis.
Nas reas tcnicas, a busca de solues para esses problemas demanda estudo e
pesquisa que podem ser extremamente beneficiados com a adoo de ferramentas
computacionais adequadas.
Neste contexto, o MATLAB tido como produto lder na rea de computao numrica
e cientfica, adotado como ferramenta padro de desenvolvimento pelas principais
universidades e empresas, contando com mais de 1 milho de usurios no mundo. No
Brasil, o este software est presente em todas universidades de primeira linha (por
exemplo: USP, UNICAMP, ITA, UnB, UNESP, Federais, PUCs), bem como nos
departamentos de engenharia e desenvolvimento das principais empresas do pas, tais
como: Embraer, Petrobrs, Banco Central do Brasil, BankBoston, Banco Ita, Citibank.
Preparamos este livro para ser um material introdutrio, objetivo e didtico, que
possibilite a rpida capacitao de estudantes e profissionais para utilizao do
MATLAB 7, podendo ser utilizado como material de apoio de cursos em vrios nveis
de ensino (tcnico, superior ou ps-graduao), treinamentos empresariais e at em
escolas de segundo grau.
O escopo do livro a utilizao dos recursos do MATLAB, ou seja, no temos a
pretenso de ensinar teorias e conceitos bsicos de matemtica, engenharia ou
linguagem de programao. Na verdade, esses conhecimentos so pr-requisitos
fundamentais para o completo aproveitamento do contedo apresentado.

Para facilitar a leitura e compreenso dos assuntos, principalmente para os iniciantes,


procuramos utilizar uma linguagem simples e acessvel, sem muito rigor formal, sem
contudo comprometer a preciso tcnica das informaes.
Desde a sua primeira verso, lanada comercialmente em 1984, o MATLAB vem
sendo utilizado por estudantes, professores, pesquisadores, cientistas, engenheiros e
profissionais de tecnologia de informao como ambiente de trabalho bsico para
criao, anlise e simulao de modelos matemticos aplicados s mais diversas reas,
desde automao e controle industrial, passando por gerenciamento de risco financeiro,
at pesquisas avanadas em biotecnologia e bioinformtica.
Em junho de 2004, foi lanado o CD "Release 14" com as novas verses dos produtos
da The MathWorks (empresa desenvolvedora do MATLAB): MATLAB 7, Simulink 6,
12 novos produtos e 17 atualizaes.
Esperamos que este trabalho acelere os "primeiros passos" de usurios novatos, e
facilite os "passos de transio" para o MATLAB 7 de usurios veteranos, de tal forma
que todos possam rapidamente aproveitar as vantagens oferecidas por esta nova
verso.
Como informao complementar, o livro contm um captulo de introduo ao uso do
Symbolic Math Toolbox, aplicativo do MATLAB dedicado matemtica simblica.
Todos os exemplos utilizados no livro e as respostas dos exerccios esto disponveis
no site da Editora rica para download.

MATLAB 7- Fundamentos

Apresentao
O objetivo deste livro capacitar o leitor para utilizao do MATLAB 7 na
implementao de solues neste ambiente, que integra:

biblioteca de funes matemticas extremamente eficiente em processamento


numrico baseado em matrizes;

sofisticados recursos de gerao de grficos para visualizao e anlise de dados;

poderosa linguagem de programao de alto nvel e de codificao simples;

interface de troca de dados com sistemas externos.

Programar em MATLAB , sem dvida, mais simples, rpido e eficiente do que em


qualquer outra linguagem de programao convencional como C/C++, VBA ou Fortran.
Tanto que a prpria The Mathworks, com o apoio de empresas e consultorias
especializadas, desenvolve e comercializa bibliotecas de rotinas MATLAB (m-files),
denominadas 'Toolbox', aplicadas a reas especficas como estatstica, otimizao,
controle, redes neurais, finanas, totalizando mais de 70 ttulos.
Alm disso, estudantes e profissionais em instituies acadmicas e centros de pesqui
sa ao redor do mundo costumam disponibilizar, na Internet, os m-files desenvolvidos
para resolver problemas em reas especficas.
Este livro est organizado em sete captulos:
Captulo 1: Introduo - Descreve o ambiente interativo do MATLAB 7 na plataforma
PC/Windows XP.
Captulo 2: Conceitos - Apresenta os principais conceitos de utilizao do MATLAB 7
por meio de exemplos, exerccios prticos e tutoriais.
recomendvel que a leitura deste captulo seja feita com o programa aberto e em
execuo, para que o leitor possa praticar os exerccios ao longo da leitura.
Captulo 3: Programao - Expe os principais comandos e as principais funes da
linguagem de programao do software, com suas sintaxes mais tpicas.
Este captulo no precisa, necessariamente, ser lido do incio ao fim. Pode ser utilizado
como um manual de consulta e referncia.
Captulo 4: Leitura e Gravao de Arquivos - Descreve as principais funes de
leitura e gravao de arquivos de vrios tipos de formatos.
Captulo 5: Grficos e Handle Graphics - Apresenta os recursos grficos do
MATLAB 7 e as funes Handle Graphics, que gerenciam objetos grficos.
Captulo 6: Criao de Interface Grfica com Usurio - Mostra como desenvolver
implementao de interface com usurio utilizando as funes de caixa de dilogo
predefinidas e os recursos do GUIDE.

Captulo 7: Introduo Symbolic Math Toolbox - Faz uma introduo ao uso do


Symbolic Math Toolbox, aplicativo do MATLAB para matemtica simblica.
Possui tambm um apndice com exerccios propostos.
Alm disso, no site da Editora rica, esto disponveis todos os arquivos de exemplos e
exerccios apresentados no livro, as respostas dos exerccios propostos no Apndice A
e um apndice complementar contendo um resumo das novidades do CD Release 14.

Convenes Utilizadas no Livro

Nomenclaturas e Expresses Estrangeiras

Optamos por no traduzir nomenclaturas e expresses estrangeiras. Nestes casos, as


palavras so grafadas em itlico.
Exemplo: menu pop-up, workspace, online help, prompt.

Opes de menus e caixas de dilogo

So grafadas entre [ ].
Exemplo: Opo [Set Path...] do menu pop-up [F ile ]-------

Linhas de comando do MATLAB

So delimitadas por um retngulo e grafadas com fonte Courier.


Exemplo:

Linhas de programa do editor do MATLAB (Edit)

So delimitadas por um retngulo de fio duplo e grafadas com fonte Courier.


Exemplo:

MATLAB 7-Fundamentos

ndice Analtico
Captu lo 1. int ro d u o ...............................................................................................................19
Captulo 2. C o n c e ito s ................................................................................................................25
2.1. O Que MATLAB 7 ........................................................................................................... 25
2.2. Nmeros, Vetores e M atrizes............................................................................................26
2.3. Operadores e Funes........................................................................................................ 31
2.3.1. O peradores................................................................................................................... 31
2.3.2. Funes..........................................................................................................................35
2.3.3. Manipulao de Matrizes............................................................................................ 37
2.3.4. Indexao de Elementos de M atrizes...................................................................... 38
2.3.5. Vetores Seqenciais................................................................................................... 42
2.3.6. Funes Matriciais Elem entares...............................................................................44
2.4. Outros Tipos de O bjetos..................................................................................................... 45
2.4.1. Matriz Tridim ensional..................................................................................................45
2.4.2. Cadeia de Caracteres (String)................................................................................... 46
2.4.3. Matriz de Clulas (Cell Array).....................................................................................47
2.4.4. Estrutura (Struct ) ..........................................................................................................49
2.5. Outros Tipos de Dados Numricos................................................................................... 50
2.6. G rficos..................................................................................................................................53
2 .6.1. Grfico Bidimensional.................................................................................................. 54
2.6.2. Grfico 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. Utilitrio de Importao de Dados.............................................................................68
2.8. Programao no MATLAB 7 ............................................................................................ 69
2.8.1. Editor de Programas: edit........................................................................................... 70
2.8.2. Depurao de Programas: Debug Mode...................................................................72
2.8.3. Analisador de Sintaxe de Programas:M -Lint............................................................74
2.8.4. Elementos de Programao do MATLAB 7 ...........................................................75

2.8.5. Estatstica de Execuo de Programa.......................... ..........................................84


2 .9. Criao de Interface Grfica com Usurio........................................................................86
Captulo 3. P ro g ra m a o ........................................................................................................97
3.1. Ambiente MATLAB 7 .........................................................................................................98
3.1.1. MATLAB Desktop.......................................................................................................99
3.1.2. Utilitrios e Arquivos Especiais............................................................................... 118
3.2. Operaes Matemticas no MATLAB 7 ........................................................................ 121
3.2.1. Funes Matemticas Elementares........................................................................ 121
3.2.2. Vetores e M atrizes.....................................................................................................123
3.2.3. lgebra Linear............................................................................................................ 138
3.2.4. Anlise de Dados e Transformada de Fourier..................................................... 147
3.2 .5. Polinm io s ..................................................................................................................155
3.2.6. Interpolao................................................................................................................158
3.2.7. Converso de Sistemas de Coordenadas............................................................. 164
3.2.8. Mtodos Numricos No-lineares...........................................................................165
3.2.9. Matrizes Esparsas......................................................................................................175
3.3. Programao...................................................................................................................... 180
3.3.1. Estrutura e Tratamento de Dados......................................................................... 181
3.3.2. Operadores.................................................................................................................199
3.3.3. M-file s ......................................................................................................................... 207
3.3.4. Fluxo de Programao............................................................................................. 2 13
Captulo 4. Leitura e Gravao de A rq u iv o s .....................................................................2 19
4.1. Construo de Nome de A rquivo................................................................................... 2 19
4 .2. Utilitrios de Abertura e Gravao de Arquivos............................................................ 221
4.3. Funes de Entrada/Sada de 'baixo nvel1.................................................................. 226
4 .4. Arquivos de Formatos Especficos................................................................................. 233
4.4.1. Arquivos ASCII...........................................................................................................233
4.4.2. Planilhas *.XLS e *.W K 1..........................................................................................236
4.4.3. Arquivos de udio.................................................... ................................................ 239
4.4.4. Arquivos de Im agem.................................................................................................242
4.4.5. Dados de Animao..................................................................................................245

MATLAB 7 - Fundamentos

4.4.6. Troca de Dados com Internet

247

4.4.7. Outros Tipos de Funes.....

252

Captulo 5. Grficos e Handle Graphics .........................................................................255


5.1. G rficos...............................................................................................................................255
5.1.1. Utilitrio Plot Tools ....................................................................................................255
5.1.2. Exportao e Impresso de Figuras.......................................................................266
5.1.3. Utilitrio Basic Fitting................................................................................................ 268
5.1.4. Utilitrio Data Statistics.............................................................................................269
5.1.5. Funes Grficas 2D ................................................................................................ 270
5.1.6. Funes Grficas 3D ................................................................................................ 278
5.1.7. Grficos de Frmulas Matemticas........................................................................286
5.1,8. Acabamento de Superfcies....................................................................................290
5.1.9. Visualizao 3D......................................................................................................... 295
5.2. Handle Graphics..............................................................................................................296
5.2.1. Criao de Figuras e Objetos G rficos.................................................................297
5.2.2. Manipulao de Figuras e Objetos G rficos........................................................300
Captulo 6. Criao de Interface com Usurio ...............................................................305
6.1. Caixas de Dilogo..............................................................................................................305
6.2. Entrada Interativa de D ados............................................................................................314
6.3. Utilitrio GUID E ................................................................................................................. 317
6.3.1. Menu Pop-up do GUIDE...........................................................................................320
6.3.2. Barra de Ferramentas do G UIDE............................................................................321
6.3.3. Objetos de C ontrole................................................................................................. 325
Captulo 7. Introduo ao Symbolic Math Toolbox....................................................... 339
7.1. Conceitos............................................................................................................................ 340
7.1.1. Sm bolos.....................................................................................................................340
7.1.2. Criao de Variveis e Expresses Sim blicas................................................... 341
7.1.3. Substituio de Variveis Simblicas porNmeros............................................. 343
7.1.4. Grficos de Expresses Simblicas.......................................................................344
7.2. Funes por Categoria.....................................................................................................344
7.2.1. C lculo........................................................................................................................344

7.2.2. Simplificao e Substituio..................................................................................348


7.2.3. Aritmtica de Preciso Variada............................................................................. 352
7.2.4. lgebra Linear...........................................................................................................353
7.2.5. Soluo de Equaes........................................................................................... 354
7.2 .6. Funes de Converso..........................................................................................357
7.2.7. Transformadas......................................................................................................... 359
7.2.8. Funes de Formatao....................................................................................... 361
7.2.9. Funes Especiais..................................................................................................363
Apndice A. Exerccios Propostos...................................................................................365
ndice Remissivo................................................................................................................... 369
Referncias Bibliogrficas................................................................................................. 375
Marcas Registradas...............................................................................................................376

MATLAB 7 - Fundamentos

C a p t u lo

Introduo

Neste captulo, descrevemos os aspectos genricos do ambiente interativo e da tela de


trabalho principal do MATLAB 7

O MATLAB 7 possui verses para os seguintes ambientes operacionais: Windows,


LINUX, Sun-Solaris e Mac OS (veja pgina 8).
Este livro est baseado na verso para ambiente Windows XP.
Neste caso, aps a correta instalao, o aplicativo pode ser acionado por
meio de seu cone de tela.
Em seguida, voc v a tela do MATLAB 7 Desktop, cuja configurao padro tem o
seguinte layout:

Introduo

A. [Command Window] - janela de trabalho na qual so digitados dados e instrues


para o MATLAB 7 e so exibidos os resultados das operaes executadas.
B. [Current Directory] - janela na qual exibida a lista de arquivos contidos no diretrio
corrente.
C. [Workspace] - janela na qual exibida a lista de variveis definidas na janela de
trabalho [Command Window],
D. [Command History] - janela na qual ficam armazenadas todas as instrues
executadas na janela de trabalho [Command Window].
E. Menus pop-up: comandos de configurao e acesso a utilitrios do MATLAB 7.
F. Barra de Ferramentas (menus de cones): cones de acesso rpido a comandos e
utilitrios.
G . Boto [Start]: opes de acesso rpido a comandos e utilitrios.
H. cone de encerramento da sesso. A sesso do MATLAB 7 pode ser encerrada
pelo comando quit:

Todos esses componentes esto detalhados no tpico 3.1 deste livro.


O MATLAB 7 utiliza tecnologia Java Virtual Machine (JVM) e segue as mesmas
convenes de interatividade tpicas deste tipo de ambiente:

Boto esquerdo do mouse (boto de seleo): executa ao de acordo com o


contexto no qual o objeto selecionado.
Por exemplo: indicao, com boto esquerdo do mouse, do arquivo de programa
(m-file) circuito.m na janela [Current Directory], abre arquivo no editor de
programas EDIT.

MATLAB 7-Fundamentos

Boto direito do m ouse (boto de menu contextuai): abre menu contextuai, ou


seja, um menu flutuante cujas opes variam de acordo com o contexto no qual o
menu foi aberto.
Por exemplo: indicao,
com boto direito do
mouse,
do
arquivo
circuito.m na janela
[Current Directory], abre o
menu contextual com
opes de operaes vli
das para o arquivo. No
caso da janela [Command
History], abre o menu
contextual com opes de
operaes vlidas para o
conjunto de instrues
selecionadas.

Teclas [ ^ ] [ ^ ] na janela [Command Window]: repetem os comandos digitados.

Resizin g Tools : tanto os tamanhos das janelas quanto os espaamentos das


divises internas podem ser modificados com o cursor:

M oving Tools w ith in the D esktop: as janelas podem ser movidas de uma posio
para outra por meio de 'drag-and-drop'.
Por exemplo: 'd rag-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.

MATLAB 7 - Fundamentos

M o v in g T o o ls o u t o f / in t o th e M A T L A B 7 D e s k t o p : 'undock'

(retira) / 'dock'

(encaixa) a janela na tela principal do MATLAB 7.


Por exemplo:
clique

clique

na janela [Current Directory] para retir-la da tela.

para restaurar.

O menu pop-up [Desktop] contm opes de configurao de posicionamento de


janelas (D esktop Layout).
Essas configuraes podem ser armazenadas e restauradas.

Introduo

23

Todos esses recursos esto descritos minuciosamente no tpico 3.1 deste livro.
Para finalizar este captulo introdutrio sobre aspectos genricos de interatividade do
MATLAB 7, um ltimo assunto merece ateno.
O MATLAB 7 permite que comandos do sistema operacional sejam acionados a partir
de instrues digitadas na janela [Comando Window]:

24

MATLAB 7 Fundamentos

C a p t u l o

Conceitos

Acreditamos que uma das formas mais eficientes de se aprender a utilizar um software
trabalhar com ele.
Com o MATLAB 7 no diferente; portanto, na medida do possvel, use-o e repita os
exemplos e exerccios descritos neste captulo pois, por meio deles, apresentamos os
principais conceitos de utilizao do MATLAB 7.

2.1.

O Que MATLAB 7

Pode ser definido como um software cujo elemento bsico de trabalho so matrizes (o
nome MATLAB vem do ingls 'M ATrix LABoratory), no qual problemas podem ser
facilmente expressos em notao matemtica e rapidamente solucionados por meio de
clculos computacionais eficientes e confiveis.
Aplicaes tpicas deste software incluem:

matemtica e computao;

desenvolvimento de algoritmos;

aquisio e anlise de dados;

visualizao de resultados;

modelamento, simulao e prototipao;

desenvolvimento de aplicativos.

Neste contexto, os recursos do MATLAB 7 podem ser divididos em cinco grandes


categorias:

I.

Ambiente de desenvolvimento: consiste no ambiente interativo do programa


propriamente dito, ou seja, o MATLAB 7 Desktop ([Command Window], outras
janelas e menus), no qual o usurio pode facilmente elaborar instrues e
comandos para testar idias e verificar resultados.

II.

Biblioteca de funes matemticas do MATLAB 7: ncleo do MATLAB 7,


composto por mais de 1.000 funes, desde as mais elementares, como soma e

Conceitos

25

subtrao, at as mais sofisticadas, como inversa de matrizes, transformadas de


Fourier, solvers de equao diferencial ordinria.

III.

Linguagem de programao MATLAB 7: linguagem de alto nvel, cuja estrutura


de dados principal so matrizes que no precisam ser previamente dimen
sionadas. Alm disso, a linguagem 'orientada por objetos', o que torna sua
programao mais simples e eficiente do que a programao em C/C++, Fortran
ou qualquer outra linguagem de programao tradicional.

IV.

Recursos grficos do MATLAB 7: biblioteca de funes grficas do MATLAB,


que disponibiliza recursos poderosos e flexveis para a criao de grficos para
visualizao de resultados.

V.

MATLAB 7 Application Program Interface (API): biblioteca que permite integrar


o programa com funes desenvolvidas em C e Fortran.

No captulo 1 deste livro, introduzimos os principais elementos do ambiente de


desenvolvimento do MATLAB 7 Desktop (item I da lista anterior). Nos prximos tpicos
deste captulo, apresentamos os conceitos bsicos dos itens II, III, IV.

2.2. Nmeros, Vetores e Matrizes


Como j mencionado, o tipo de objeto (estrutura de dados) bsico do MATLAB 7 so
matrizes, que podem ser:

um escalar (nmero): matriz com dimenso 1x1:

um vetor linha: matriz com dimenso 1 x n:

um vetor coluna: matriz com dimenso n x 1:

uma matriz bidimensional: matriz com dimenso m x n:

26

MATLAB 7 - Fundamentos

um matriz tridimensional (ou vetor multi-dimensional): matriz com dimenso m x n x p

O MATLAB utiliza a seguinte notao para representar nm eros:

sinal - para indicar nmero negativo;

para indicar casa decimal;

'e' para notao cientfica;

'i 'e 'j' para notao de nmeros complexos (raiz imaginria).

Por exemplo, na janela [Com m nd Window] do MATLAB 7, digite:

Observao: 'ans' o nome da varivel reservada do MATLAB 7 que armazena o resultado


da ltima operao executada na linha de comando do programa._________________________

O MATLAB 7 possui constantes numricas predefinidas, cujos valores so determi


nados pela preciso numrica do processador matemtico do equipamento no qual o
software est instalado:

Conceitos

27

Alm disso, o MATLAB 7 possui dois smbolos no-numricos utilizados para repre
sentar situaes de descontinuidade:

Exemplos (arquivo cap2_exemplo_01.m):

O formato de exibio dos nmeros configurado pelo comando format.

28

MATLAE 7 - Fundamentos

Vetores e matrizes so definidos com a seguinte notao:


'[' indica incio de definio de matriz;

']' indica final de definio de matriz;

' ' ou ',' separa elementos na mesma linha, definindo colunas;

finaliza definio de linha.

Exemplos (arquivo cap2_exemplo_02.m):

Nmeros, vetores e matrizes podem ser armazenados em variveis. No MATLAB 7,


nome de varivel segue a seguinte conveno:

Deve ser uma seqncia alfanumrica comeando com letra. Exemplo:

x i,

m a t2,

V a lo r ;

case-sensitive, ou seja, diferencia letras minsculas e maisculas. Exemplo:


diferente de v a l o r .

val or

Aceita

no meio do nome. Exemplo: m a t _ 2 _ x _ 3,

A funo n a me l e n g t h m a x retorna o tamanho mximo do nome de varivel em


nmero de caracteres. No ambiente Windows, este valor 63.

Exemplo:

Observao: as informaes digitadas na janela [Command Window] ficam armazenadas na


janela [Command History], Visualmente, o contedo da janela [Command Window] pode ser
apagado pelos comandos:_________
Conceitos

29

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 captulo 2 , as variveis definidas na janela [Command
Window] ficam armazenadas na memria do MATLAB 7, em uma rea denominada
W orkspace, cujo contedo exibido na janela [Workspace],
O contedo das variveis exibido pelo editor de variveis, [Array Editor], acionvel por
um 'duplo-clique' no nome da varivel listada na janela [Workspace].

Os principais comandos de consulta e manipulao do [Workspace] so:


Comando

Descrio

who

lista os nomes das variveis

whos

lista os nomes e
caractersticas das variveis

clear

elimina variveis da lista


elimina todas as variveis

- 3

Exemplo
who
Your variables are:
ans
mat_2_x_3
whos
Name
Size
Bytes
ans
lxl
8
mat_2_x_3 2x3
48

clear mat_2_x_3

clear

Class
double array
double array

MATLAB 7 - Fundamentos

2,3.

Operadores e Funes

No MATLAB 7, expresses matemticas so compostas por:

nmeros, vetores, matrizes;

variveis;

resultados de execuo de operadores e funes.

2.3.1. Operadores
Operadores aritmticos trabalham com nmeros, vetores e matrizes.
Considere (arquivo eap2_exemplo_03.m):

Operador
+

Soma

Subtrao

Multiplicao matricial

Conceitos

Descrio

Multiplicao escalar

Diviso matricial
(a/b equivale a a*b'1)

./

Diviso escalar

Exemplo
a+b
ans =
6
8
10
12
a-b
ans =
-4
-4
-4
-4
a*b
ans =
19
22
43
50
a.*b
ans =
5
12
21
32
a/b
ans =
3.0000
-2.0000
2.0000
-1.0000
a./b
ans =
0.2000
0.3333
0.4286
0.5000

Operador

Descrio

Diviso 'esquerda'
(a\b equivale a a~1*b)

Potncia (matrizAescalar)
(aA3 equivale a a*a*a)

Potncia escalar
(matriz ,Amatriz - elemento a elemento)

Transposta

Precedncia

( )

Exemplo
a\b
ans =
-3.0000
-4.0000
4.0000
5.0000
a~3
ans =
37
54
81
118
a.^b
ans =
1
64
2187
65536
a'
ans =
1
3
2
4
a+b*a
ans =
24
36
34
50

(a+b)*a
ans =
30
44
46
68

Observao: para inibir a exibio do resultado da operao na tela, coloque o s in a ln o


final da linha de comando.
c=a*b;'
c
c =
19
22
43
50

As matrizes devem ter dimenses compatveis com as operaes solicitadas.


a = [1 2 3 4 3 ; % a 2x2
b=[5 6
% b lx2
a*b
% Erro: as dimenses incompatveis a 2X2 * b lx2
??? Error using ==> mtimes
Inner matrix dimensions must agree.
b*a
1x2
ans =
23

% Dimenses compatveis b ix2 * a 2x2 , o resultado u m vetor

34

Para recordar alguns conceitos de matemtica relacionados lgebra matricial e ilustrar


a utilizao dos operadores, propomos dois exerccios.

MATLABP 7 - Fundamentos

Exerccio 1 O
Considere as seguintes tabelas com dados de uma montadora de automveis:
a.

Quantidade de carros do tipo C1 e C2 produzidos em Janeiro e Fevereiro:


Tipo de Carro / Ms
Carro C1
Carro C2

b.

Produo em Janeiro

Produo em Fevereiro

100

120

200

180

Custo de produo, em milhares de unidades monetrias, de cada carro tipo C1 e


C2 em Janeiro e Fevereiro.
Tipo de Carro / Ms
Carro C1
Carro C2

Custo em Janeiro
$ 1 0 .0
$ 6 .0

Custo em Fevereiro
$9.8
$ 6 .1

I.

Crie duas matrizes no MATLAB para representar as tabelas precedentes.

II.

Armazene na varivel m1 a multiplicao escalar das matrizes a e b.

III.

Qual o significado do resultado obtido na varivel m1?

Soluo dos itens I e II (arquivo cap2_exercicio_01.m):


% Solucao do item I
a = [100 120; 200 180]
a =
100
120
200
180
b = [10 9.8; 6 6.1]
b =
10.0000
9.8000
6.0000
6.1000
% Solucao do item II
ml=a.*b
ml =
1000
1176
1200
1098

Soluo do item II):


A multiplicao escalar multiplica os elementos das matrizes elemento a elemento:
m 1 ( 1 ,1 ) = a( 1 , 1 ) * b( 1 ,1 )
m 1 ( 1 ,2 ) = a( 1 ,2 ) * b( 1 ,2 )
f> Fonte: programao 'Vestibulando Digital' exibido pela TV Cultura - So Paulo.
Conceitos

m 1 (2 ,1 ) = a(2 ,1 ) * b( 2 ,1 )
m 1 (2 ,2 ) = a(2 ,2 ) * b(2 ,2 )
Desta forma, m1 (1,1) contm a quantidade de carros tipo C1 produzidos em Janeiro
vezes o custo de produo de cada carro C1 em Janeiro, ou seja, o custo de produo
de todos os carros tipo C1 produzidos em Janeiro.
Portanto, m1 uma tabela que mostra o custo de produo, em milhares de unidades
monetrias, de todos os carros C1 e C2 produzidos em Janeiro e Fevereiro:
Tipo de Carro / Ms
Carro C1
Carro C2

Custo em Janeiro
1 0 0 * 1 0 = 1000
2 0 0 * 6 = 1200

Custo em Fevereiro
120*9.8 = 1176
180 *6.1 = 1098

Exerccio 2 (*)
Considere mais uma tabela da mesma montadora do Exerccio 1: quantidade de peas
dos tipos P1 e P2 utilizadas na produo dos carros C1 e C2.
Tipo de Pea/ Carro
Pea P1
Pea P2

Carro C1
25
42

Carro C2
28
55

I.

Crie uma matriz c no MATLAB para representar a tabela anterior.

II.

Armazene na varivel m2 a multiplicao matricial das matrizes c e a, do exerccio


anterior.

III.

Qual o significado do resultado obtido na varivel m2?

Soluo dos itens I e II (arquivo cap2_exercicio_02.m):


% Solucao do item I
c = [25 28;42 55]
c =
25
28
42
55
% Solucao do item II
m2 = c*a
m2 =
8100
8040
15200
14940

0 Fonte: programao Vestibulando Digital' exibido pela TV Cultura - So Paulo.

MATLAB 7-Fundamentos

Soluo do item III:


Na multiplicao matricial:
m 2 ( 1 ,1 ) = c( 1 ,1 )*a( 1 , 1 ) + c( 1 ,2 )*a(2 ,1 )
m 2 ( 1 ,2 ) = c( 1 , 1 )*a( 1 ,2 ) + c( 1 ,2 )*a(2 ,2 )
m 2 (2 , 1 ) = c( 2 , 1 )*a( 1 ,1 ) + c( 2 ,2 )*a(2 ,1 )
m 2 (2 ,2 ) = c( 2 , 1 )*a( 1 ,2 ) + c(2 ,2 )*a(2 ,2 )
2 esta forma, m 2 ( 1 ,1 ) contm a quantidade de peas do tipo P1 utilizadas no carro C1
. ezes a quantidade de carros C1 produzidos em Janeiro mais a quantidade de peas do
: do P1 utilizadas no carro C2 vezes a quantidade de carros C2 produzidos em Janeiro,
: ^ seja, a quantidade total de peas do tipo P1 consumidas no ms de Janeiro.
-crtanto, m2 uma tabela que mostra a quantidade total de peas P1 e P2 consumidas
e~ Janeiro e Fevereiro.
Tipo de Pea / Ms
Pea P1
Pea P2

Utilizadas em Janeiro
25* 100 + 28*200 = 8100
42*100 + 55*200 = 15200

Utilizadas em Fevereiro
25*120 + 28*180 = 8040
42*120 + 55*180 = 14940

2.3.2. Funes
-

sintaxe bsica para chamada de qualquer funo do MATLAB 7, seja prpria do


-TLAB 7 (built-in function) seja desenvolvida pelo usurio, segue este formato:
;3aidal,SaidaN] = Funcao (Entradal, ..., Entrada2)

[S a id a l,

SaidaN]: parmetros de sada;

Funcao: nome da funo;

[Entradal,..., EntradaN]: parmetros de entrada.

Exemplo 1 - Funes trigonomtricas:


[ x = 0.5;
v=[0 1] ;
sin(x)
=r.s =
0.4794
I cos (v)
ar.s =
1.0000

0.5403

Exemplo 2 - Funes matemticas:


sqrt(x)
ans =
0.7071
exp(v)
ans =
1.0000

2.7183

Exemplo 3 - Funes matriciais:


a = [2 3 ;5 -8]
a =
2
3
5
-8
det(a)
ans =
-31
i n v (a )
ans =
0.0968
0.2581
-0.0645
0.1613

No prximo exerccio, utilizamos a funo sum, que:

dado um vetor V ixn ou xi, retorna a soma de todos os elementos do vetor;

dada uma matriz Mmxn, retorna um vetor linha V ixn com a soma por coluna da matriz
M.

Exerccio 3 <*)

----------------------------------------------------- ---------------------Numa pequena ilha, h 100 pessoas que trabalham na nica empresa ali existente.
Seus salrios (em moeda local) tm a seguinte distribuio de freqncias:
Salrio

Freqncia

$ 50.00

30

$100.00

60

$150.00

10

I.

Qual a mdia dos salrios das pessoas?

II.

Qual a varincia dos salrios? Qual o desvio padro dos salrios?

Soluo do item I (arquivo cap2_exercicio_03.m):


Mdia dos salrios igual soma de cada valor do salrio multiplicado por sua
freqncia, dividida pela soma das freqncias.
(*) Fonte: questo 1 da Prova de Matemtica da 2- fase da Fundao Getlio Vargas 2002 - (11/Nov/2001)
MATLAB 7 - Fundamentos

% Criar vetor para representar os salrios


> > s a l a r i o s = [50 100 150]
salarios =
50
100
150
% Criar vetor para representar as frequencias

f r e q = [30 60 10]
freq =
30
60
10
% Calcular ame d i a ponderada
m e d i a = s u m ( s alarios.*freq)/ surti (freq)
media =
90

Soluo do item II:


A varincia dos salrios a soma do quadrado da diferena entre cada valor de salrio
e a mdia, multiplicada pela sua freqncia, dividida pela soma das freqncias. Desvio
padro a raiz quadrada da varincia.
v a r i a n c i a=sum((salarios-media).^2.*freq)/sum(freq)
variancia =
dp=sqrt(variancia)
dp =
30

Observao: as principais funes da biblioteca matemtica do MATLAB 7 esto listadas no


captulo 3.___________________________________________________________________

2.3.3. Manipulao de Matrizes


Apenas para relembrar, com relao criao de matrizes:

definio de matrizes delimitada p o r'[' e

' ou

separa elementos na mesma linha, definindo colunas;

delimita linhas.

Elementos de matrizes podem ser nmeros e expresses.

m = [38-log(65)

sqrt(0.04);

3+i pi]

m =
33.8256
3.0000 + 1.0000

0.2000
3.1416

Os smbolos ' ' e tambm podem ser utilizados para concatenar matrizes (arquivo
cap2_exemplo_04.m):

l i Conceitos

Observao: as matrizes devem ter dimenses compatveis com a operao de


concatenao solicitada.________________________________________________________

2.3.4. Indexao de Elementos de Matrizes


O padro de identificao de elementos de matrizes no MATLAB 7 segue a sintaxe
intuitiva da linguagem matemtica tradicional:

Exemplo: elemento da 2- linha e 4 coluna da matriz a = a(2,4) = 9.


a =
1
6
11

2
7
12

3
8
13

9
14

5
10
15

a (2 ,4 )
ans =
9

MATLAB 7 Fundamentos

Os elementos tambm podem ser identificados seqencialmente. A indexao comea


no primeiro elemento e segue de cima para baixo, da esquerda para a direita:

O s m b o lo d e fin e intervalos de indexao.


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

criar c com os todos os elementos da 3- coluna da matriz a.


c = a (:,3)
c =
3
8

13

criar d com os todos os elementos da 1 - linha da matriz a.


d = a ( l , :)
d =
1
2

'end' indica fim de intervalo, ou seja, para criar e com todos os elementos da
linha da matriz a a partir da 2- coluna, digite:
>> e=a(2,2:end)
e =
7
8

10

possvel utilizar a indexao seqencial com '[ ]' para definir submatrizes. Por
exemplo, criar h a com a 1- linha composta pelos 3e e 102 elementos de a, e a 2- linha
pelos 59e 12a elementos.


f=[ a(3) a (10)
f =
11
4
7
14

a (5) a (12) ]

Vejamos, agora, como resolver um sistema linear do tipo A * X = B no MATLAB7.

Exerccio 4__________________________________________________________
Resolvamos um problema tpico de curso bsico de eletricidade, ilustrado no esquema
apresentado a seguir:
Ri

R3
-VMWv-

-VWMV-

-WAMV-

PT

Dados de Entrada:
Variveis
Voltagem V1
Voltagem V2
Resistncia R1

Valor
10 V
5V
1 Q

Resistncia R2

2Q.

Resistncia R3
Resistncia R4
Resistncia R5

3Q
4 2
5Q

Quais so os valores das correntes 11,12 e I3?

Qual a potncia total (PT) do circuito?

Soluo (arquivo cap2_exercicio_04.m):


A resposta do item I deste problema obtida com a resoluo do sistema linear de trs
equaes e trs incgnitas seguinte:
(R1 + R4) * 11

-(R 4 )* I2

=V1

- R 4 * 11

+ (R 2 + R4 + R 5 )*I2

- (R5) * I3

=0

- (R5) * I2

+ (R3 + R5) * I3

= -V 2

MATLAB 7 - Fundamentos ;

E a do item II dada por esta frmula: PT = V1 * 11 V2 * 13


Devemos criar as variveis no MATLAB7:

>

to M
II
II
to

>

rH LD
II
II
vH CM

> >

R3 = 3

> >

II

R5 = 5

E 'montar' a matriz A e o vetor coluna B do sistema linear A * X = B:


A=[(R1+R4)
A =

B =

-R4 0;-R4

(R2+R4+R5)

- R 5 ;0 -R5

(R3+R5)]

5 - 4
0
-4
11
-5
0 - 5
8
B- [VI;0; -V2 ]

10
0
-5

Para verificar se o sistema linear tem soluo, podemos consultar:

o posto de A: se for 3, ento o sistema tem soluo;

ou o determinante de A: se for diferente de 3, ento o sistema tem soluo.


rank(A)
ans =
3

det(A)
ans =
187

% posto de A

% determinante de A

A soluo 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 (diviso pela esquerda):
X=inv(A) *B
X =
2.8342
% X (1) = 11
1.0428
% X (2) = 12
% X (3) = 13
0.0267
X=A\B
X =
2.8342
1.0428
0.0267

0 vetor X contm os valores das trs correntes: X(1) = 11, X(2) = 12 e X(3) = 13. Para
calcular a potncia, execute:
PT = VI * X(l)
PT =
28.2086

- V2 * X (3)

Ou seja, o resultado final :


Variveis
Corrente 11
Corrente 12
Corrente 13
Potncia Total PT

Valor
2.8342 A
1.0428 A
0.0267 A
28.2086 W

2.3.5. Vetores Seqenciais


Alm das formas de definio de vetores e matrizes apresentadas nos tpicos ante
riores, o MATLAB 7 possui recursos que facilitam a construo de vetores seqenciais,
essenciais para o tratamento de sries de tempo.
A sintaxe mais simples para definir um vetor seqencial feita com o smbolo
Devemos fornecer, tambm, os valores inicial, de incremento e final.
[ Valor_Inicial

: Incremento

: Valor_Final

Por exemplo (arquivo cap2_exemplo_06.m):

criar v1 contendo valores de

10

com incremento 2 .

to

v l = [0:2:10]
vl =
4

10

criar v2 contendo valores de 15 a 5 com incremento -3.

v 2 = [15:-3:5]
v2 =
15
12

Observao: o ltimo elemento nunca ultrapassa o limite estabelecido pelo valor final.
Por exemplo, o ltimo elemento do vetor v2 6 , pois o prximo elemento, 6 - 3 = 3, seria
menor que 5._________________________________________________________________

MATLAB 7 - Fundamentos

Algumas omisses so permitidas:

o s [ ]' podem ser omitidos;

se o parmetro de incremento for omitido, assume-se incremento 1 .

v3 = l :5
v3 =
1

Vetores seqenciais tambm podem ser criados peia funo linspace.


A funo linspace recebe como dados de entrada os valores inicial e final da seqncia
e o nmero desejado de divises uniformemente espaadas.
Por exemplo (arquivo cap2_exemplo_07.m):

criar w1 com 5 divises uniformemente espaadas entre de 0 a 10. Equivale a


[0:2.5:10],

w l = l i n s p a c e {0,10,5)
wl =
0
2.5000

criar w2 com

7.5000

5.0000

10.0000

divises uniformemente espaadas entre 0 e 10. Equivale a [0:2:10].

w 2 = l i n s p a c e (0,10, 6)
w2 =
0
2
4
6

10

Se o nmero de elementos for omitido, a funo assume 100 elementos.


Exemplo: criar 100 elementos igualmente espaados entre 0 e pi.

w 3 = l i n s p a c e (0 , p i ) ;
whos w3
Bytes
Class
Name
Size
800
double array
w3
1x100
Grand total is 100 elements using 800 bytes

Examine o contedo da varivel w3 no [Array Editor] (duplo-clique no nome da varivel


na janela [Workspace]):
' f ji,
l

o
f

Name
0 3 w1

il A rra y

V alu e

j Class

[0 2 .5 5 7 , .. .

d o u b le

B w2

[024 68.,.

d o u b le

f fijw S

<1x100

d o u b le

d o ...

i1
2

3 ;1..........
:4

: 51
! 6j
1.7.]
8j
<
W o rk s p a c e

>
C urren t D irectory

Editor - w 3

:9 1
101

01

1
01

___ r

j
j
j

s ta c k .H , 1

0 .0 3 1 7 3 3 :

0 .0 6 3 4 6 7 !

j
j

EB Q ] 0
j

[1 ( ? X

'

0 .0 9 5 2 ! .......0.126931...... 0.15867;

...|........................... - j _______

____ I__

1
I

2.3.6. Funes Matriciais Elementares


Assim como a funo linspace, apresentada no tpico anterior, o MATLAB 7 possui
inmeros recursos para facilitar a criao e manipulao de matrizes elementares.
Criao de matrizes elementares:
Funo

Matriz

eye

Identidade

Composta por 0

zeros

Composta por 1

ones

Composta por
nmeros aleatrios
(distribuio uniforme)

rand

Composta por
nmeros aleatrios
(distribuio normal)

randn

Exemplo
e y e (2)
ans =
1
0
0
1
>> e y e (2,3)
ans =
1
0
0
1
z e r o s (3,2)
ans =
0
0
0
0
0
0
o n e s (3)
ans =
1
1
1
1
1
1
r a n d (3,4)
ans =
0.9501
0.2311
0.6068
r a n d n (3,4)
ans =
-0.4326
-1.6656
0.1253

0
0

1
1
1

0.4860
0.8913
0.7621

0.4565
0.0185
0.8214

0.4447
0.6154
0.7919

0.2877
-1.1465
1.1909

1.1892
-0.0376
0.3273

0.1746
-0.1867
0.7258

Observao: essas funes aceitam um ou dois parmetros. No caso do fornecimento de


apenas um parmetro n, a funo gera uma matriz quadrada n x n. No caso de dois
parmetros, n e m, a funo gera uma matriz retangular n x m._________________________
Manipulao de matrizes: considere a matriz a=[1 2;3 4]
Operao

Funo

Informa o nmero de linhas e


colunas da matriz

size

Informa o nmero de
elementos da matriz

numel

Exemplo
s i z e (a)
ans =
2
2
numel(a)
ans =
4

Hl

III

MA TLAEP 7 - Fundamentos

Operao
Calcula posto de matriz

Exemplo
rank

Calcula determinante de matriz det

Calcula inversa de matriz

inv

r a n k (a)
ans =
2
det(a)
ans =
-2
inv(a)
ans =
-2.0000
1.5000

1.0000
-0.5000

2.4. Outros Tipos de Objetos


Neste tpico, apresentamos os principais tipos de objetos utilizados nas funes do
MATLAB 7, alm de vetores e matrizes numricos.

2.4.1. Matriz Tridimensional


O MATLAB 7 permite criar matrizes tridimensionais a partir da composio de
matrizes bidimensionais concatenadas com o smbolo

mx nx p

Por exemplo: criar matriz A 3x3x2 , a partir de duas matrizes bidimensionais 3x3
(arquivo cap2_exemplo_08.m).

A( :

: ,2 )
1
0
0

=
0
1
0

0
0
1

2.4.2. Cadeia de Caracteres (String)


o tipo de dado char, ou seja, caractere ou texto ASCII, armazenado em 2 bytes de
memria.
No MATLAB 7, cadeias de caracteres so delimitadas p o r" e exibidas em cor prpura.
Exemplo: a varivel tx t recebe o texto 'Resultado', que armazenado no MATLAB
como classe char array de dimenso 1x9, ocupando 18 bytes na memria.
t x t = 'R e s u l t a d o '
txt =
Resultado

whos txt
Name
Size
Bytes
txt
1x9
18
Gra n d total is 9 elements using 18 bytes

Class
char array

Cadeias de caracteres podem ser manipuladas como matrizes, ou seja, aceitam opera
es de transposio e concatenao, desde que as dimenses sejam compatveis.
Exemplos (arquivo cap2_exemplo_09.m):
txtl'
ans =
R
e
s
u

% Transposicao

1
t
a
d
o
>>txt2 = [txtl 1 da Provai']
txt2 =
Resultado da Provai

% Concatenacao horizontal

>>txt3 = [ txtl
txt3 =
Resultado
da Provai

] % Concatenacao vertical

; da Provai

Observao: no caso de concatenao vertical, uma nova linha de caracteres adicionada.

MATLAB 7- Fundamentos

t x t 3 (1,:)
ans =
Resultado
t x t 3 (2,:)
ans =
da Proval

A concatenao vertical com sinal


s foi possvel porque as duas cadeias de
caracteres possuem o mesmo nmero de letras.
Cadeias de caracteres com nmeros diferentes de letras no podem ser concatenadas
com
txt4 = [ txtl ; 'da P r o v a ']
??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

Nesse caso, deve-se usar a funo strvcat, que executa a concatenao, ajustando os
tamanhos das cadeias de caracteres com a incluso d e 1
t x t 4 = s t r v c a t (t x t l ,'da P r o v a 1)
txt4 =
Resultado
da Prova

whos txt4
Bytes
Name
Size
txt4
2x9
36
Grand total is 18 elements using 36 bytes

Class
char array

2.4.3. Matriz de Clulas (CelIArray)


Matriz de clula (cell array) um tipo de dado que permite o armazenamento de
elementos de naturezas diferentes em uma nica estrutura, identificveis por um nico
nome.
Internamente, cell array uma tabela de apontadores que enderea as regies de
memrias nas quais os elementos esto efetivamente armazenados.
A funo cell cria uma matriz de clulas vazias (ou seja, uma tabela de apontadores
vazios), que podem ser preenchidas posteriormente por meio de atribuies de dados:
'{ }' so usadas para definir o contedo de clulas.
Exemplo (arquivo cap2_exemplo_10.m): criar uma matriz de clula celula 2x2 com
quatro elementos diferentes:

ceiula(1,1): matriz identidade 3x3

celula(1,2): texto 'matriz identidade 3x3'

Conceitos

celula( 2 ,1 ): constante pi

celula(2,2): vetor 0:5


c e l u l a = c e l l (2)
celula =

[]
[]

[]
[]

c e l u l a (1,1}= { e y e (3)}
celula =
[3x3 double]
[]

[]

[]

c e l u l a (1,2)={'matriz identidade 3x3'}


celula =
[3x3 double]
[1x21
char]

[]

[]

c e l u l a (2,1)={pi}
celula =
[3x3 double]
[1x21
char]
[
3.1416]
[]
c e l u l a (2,2)={1:5}
celula =
[3x3 double]
[1x21
char
[
3.1416]
[1x5 double]

Cell arrays so visualizveis no [Array Editor], Um duplo-clique no elemento da clula


exibe o seu contedo.

Cell arrays podem ser definidos apenas c o m '{ }':


cel={ o n e s (2)
cel =
[2x2 double]

'texto' pi }
'texto'

[3.1416]

O acesso indexado ao contedo da clula feito c o m '{ }':

2.4.4. Estrutura (Struct)


Estrutura (struct) um tipo de dado que permite o armazenamento de elementos de
naturezas diferentes em uma nica estrutura, identificveis individualmente por nomes
de campos (.fields).
Internamente, struct semelhante ao cell array, isto , tambm uma tabela de
apontadores. A diferena est na forma de acesso aos elementos internos. Enquanto
cell arrays trabalham com ndices, structs usam nomes (campos ou fields).
A funo struct cria estruturas. No exemplo seguinte, criamos uma estrutura com nome
s, com trs campos com os seguintes contedos:

nome: 'Dolar Comercial'

iden: 'DOL'

valor: 3.19
s = s t r u c t ( 'Nome', { 1Dolar C o m e r c i a l '}, 'I d e n ', { 'D O L '}, 'Valor ',{3.19})
Nome:
Iden:
Valor:

'Dolar Comercial'
'DOL'
3.1900

O contedo da estrutura identificado pelo nome da estrutura seguido por


finalizado pelo nome do campo:

s.Nome
ans =
Dolar Comercial
s.Iden
ans =
DOL
s.Valor
ans =
3.1900

possvel criar vetores de estruturas. A indexao feita c o m '( )':

s (2).Nome='Ouro 250g';

s (2).I d e n = 'O Z 1 ';


s (2) .Valor=39.65;
s (2)
ans =
Nome: 'Ouro 250g'
Iden: 'OZl'
Valor: 39.6500

Structs so visualizveis no [Array Editor], Um duplo-clique no elemento da estrutura


exibe seus campos.

I I Conceitos

A funo fieldnames lista o nome dos campos da estrutura em um cell array, cujo
contedo pode ser utilizado posteriormente.
campos=fieldnames(s)
campos =
1N o m e '
'I d e n '
'Valor'

whos campos
Name
Size
Bytes
Class
campos
3x1
206
cell array
Gr a n d total is 16 elements using 206 b y t e s whos campos
campos{l}
ans =
Nome

Observao: esses exemplos esto armazenados no arquivo cap2_exemplo_11.m.

2.5.

Outros Tipos de Dados Numricos

O MATLAB trabalha tradicionalmente com matemtica de ponto flutuante de preciso


dupla. A partir do MATLAB 7, nmeros podem ser armazenados e manipulados com
preciso simples e como nmeros inteiros.
A tabela seguinte mostra as propriedades dos tipos de dados numricos suportados:

Nome: identificao padro do tipo de dado numrico no MATLAB;

Bits: tamanho, em bits

Valor Mnimo: valor mnimo do tipo de dado numrico:

(8

bits = 1 byte), do dado na memria;

funo realmin para nmeros reais (preciso dupla e simples);

funo intmin para nmeros inteiros.

Valor Mximo: valor mximo do tipo de dado numrico:


-

funo realmax para nmeros reais (preciso dupla e simples);


funo intmax para nmeros inteiros.

MATLAB 7- Fundamentos

Tipo de Dado
Preciso
Dupla
Preciso
Simples
Inteiro 8 bits
com sinal
Inteiro 8 bits
sem sinal
Inteiro 16 bits
com sinal
Inteiro 16 bits
sem sinal
inteiro 32 bits
com sinal
Inteiro 32 bits
sem sinal
Inteiro 64 bits
com sinal
Inteiro 64 bits
sem sinal

Nome

Bits

double

64 bits

single

32 bits

int8

8 bits

uint8

8 bits

intl6

16 bits

uintl6

16 bits

int32

32 bits

uint32

32 bits

int64

64 bits

uint64

64 bits

Valor Mnimo

Valor Mximo

realmin

r e a l m i n (1s i n g l e ')

i n t m i n ('i n t 8 ')

i n t m i n (1u i n t 8 ')

i n t m i n f 'i n t l 6 ')

i n t m i n ('u i n t l 6 ')

i n t m i n ('i n t 3 2 ')

i n t m a x ('i n t 3 2 ')
2147483647

i n t m i n ('uint32')

i n t m a x ('uint32')
4294967295

i n t m a x ('uintl61)
65535

-2147483648

i n t m a x ('i n t l 6 1)
32767

i n t m a x (1u i n t 8 ')
255

-32768

i n t m a x (1int8 ')
127

-128

r e a l m a x (1s i n g l e ')
3. 4028e+038

1.1755e-038

realmax
1.7977e+308

2.2251e-308

i n t m i n (1i n t 6 4 1)

i n t m a x ('i n t 6 4 ')

-9223372036854775808

9223372036854775807

i n t m i n ('u i n t 64')

i n t m a x ('u i n t 6 4 ')

18446744073709551615

0 MATLAB 7 consegue tratar aritmeticamente as operaes combinando os tipos de


dados numricos: double (real com preciso dupla) e nondouble (real com preciso
simples e nmeros inteiros).
Esta capacidade essencial para a soluo de problemas em reas como otimizao e
tratamento de sinais.
Alm disso, a escolha do tipo de dado numrico mais adequado permite uma
substancial reduo do espao ocupado em memria.
Os tipos de dados so indicados pela utilizao das funes de converso (arquivo
cap2_exemplo_12.m):

Conceitos

Funo

Descrio

Exemplo

double

converte para doubie

a01=double(1 0 );

sin gle

converte para s in g l e

a 0 2 = s in g le (1 0 ) ;

in t8

converte para in t s

a 0 3 = in t8 (1 0 );

uint8

converte para u in ts

a04=uint8(10) ;

in tl6

converte para i n t i 6

a 0 5 = i n t l 6 (1 0 );

u in t l 6

converte p arau in ti

a 0 6 = u in t l6 (10) ;

int32

converte para int32

a 0 7 = in t3 2 (1 0 );

uint32

converte para u i n t 3 2

a08=uint32(1 0 );

int64

converte para int64

a 0 9 = in t6 4 (1 0 );

uint64

converte parauint64

a l0 = u in t 6 4 (1 0);

Na janela [Workspace], possvel verificar a classe das variveis criadas pelas funes
de converso.
1 i f g m w Ifc!m
iName * jValue
Biao! 10
Sa02

EBa03
S a04
R-la05
f^aOB
EBa07
ffia 0 8

H]a09
(]a10

10
10
10
10
10
.10
10
10
10

<

-nis'.'1
Class

double
single
int8
uint8
int16
uinl16
int32
uint32
in t6 4
u in t6 4

>

Current Directory W o rk s p a c e ;

Os tipos de dados numricos podem ser combinados da seguinte forma:

Tipo double pode ser combinado com qualquer outro tipo de dado nondouble. O
resultado sempre do tipo nondouble.

Exemplo:
10+int8(pi)
ans =
13

Os nondoubles (single, int8, uint8, intl6, uintl6, int32,


uint32) s aceitam operaes com dados do mesmo tipo ou com double.
i n t 8 (10)+single(pi)
??? Error using ==> plus
Integers can o nly be combined with integers of the same class,
scalar doubles.

or

i n t 8 (10)+int8(pi)
ans =
13

Veja este exemplo sobre preciso dupla e preciso simples:

a varivel p recebe a soma de trs nmeros de preciso dupla (0.3+0.3+0.4). Esse


resultado o nmero 1 armazenado com preciso dupla.

a varivel q recebe a soma de quatro nmeros de preciso dupla


(0.3+0.3+0.3+0.1). Esse resultado o nmero 1.000 armazenado com preciso
dupla.

p = 0 .3+0.3+0.4
P =
1

q = 0 .3+0.3+0.3+0.1

q =
1.0000

MATLAEP 7 - Fundamentos

Porm p diferente de q, pois o resultado da soma em q, em preciso dupla,


uma dzima binria. Podemos usar a funo format hex do MATLAB para
visualizar o valor de p e q em formato hexadecimal e confirmar esse fato.

format hex
P
P =
3ff0000000000000

q
q =
3fefffffffffffff

Vamos criar a varivel q1 com a soma de quatro nmeros:


-

trs com preciso dupla: 0.3+0.3+0.3


um com preciso simples: single( 0 .1 )

O resultado um nmero com preciso simples. Vamos observar o resultado numrico


e o resultado em formato hexadecimal.

format
q l = 0 .3+0.3+0.3 + s i n g l e (0.1)

qi =

format hex
q l = 0 .3+0.3+0.3 + s i n g l e (0.1)
ql =
3 f 800000

Com preciso simples, o resultado no uma dzima. Sendo assim, p diferente de q


com preciso dupla, e p igual a q1 com preciso simples.
p == q
ans =

p == q i

ans =

2.6. Grficos
Neste tpico, mostramos os recursos disponveis no MATLAB 7 de criao e manipu
lao de figuras para apresentao de resultados em formato grfico.
O conjunto destes recursos, denominado Handle Graphicsi, descrito com detalhes no
captulo 5.
A operao de gerao de grficos pode ser organizada nos seguintes passos:

Passo 0: Preparao dos dados


Fase que precede a gerao do grfico propriamente dita. Em geral, envolve
leitura de dados externos e clculos.
Passo 1; Chamada das funes de criao de grficos
O MATLAB 7 possui funes de criao de grficos 2D e 3D.
Os grficos so criados em janelas para figuras (figure window). Dentro
dessas janelas, o usurio define o eixo no qual seus dados so exibidos.
Passo 2: Configurao da aparncia dos grficos
No MATLAB7, possvel configurar a aparncia das curvas do grfico (cor,
tipo de linha e marcador), bem como a aparncia do prprio grfico (ttulo,
diviso dos eixos, grades, legendas, etc.).
Passo 3: Impresso e exportao do grfico
Grficos do MATLAB 7 podem ser facilmente impressos e exportados para
outros sistemas, agilizando a gerao de documentos e relatrios.
Vamos executar cada um desses passos no prximo exerccio, utilizando duas funes
bsicas de gerao de grficos no MATLAB7: plot (grfico bidimensional) e surf
(superfcie tridimensional).

2.6.1. Grfico Bidimensional


Neste tpico, utilizamos a funo plot para gerar o grfico da curva dada pela frmula
x * cos( 2 x), seguindo os passos listados anteriormente.
Exerccio 5___________________________________________________________________
Passo 0: Preparao dos dados.

Gerar o grfico da funo f(x) = x * cos (2 x) entre [~2n,2n].

Digite no MATLAB:

y = x

= - 2 * p i : O. 1 : 2 * p i ;

.* cos(2*x)

Passo 1: Chamada das funes de criao de grficos.


A funo plot cria um grfico na figura corrente. Caso no exista nenhuma figura, ela
cria uma nova.

MATLAEP 7 - Fundamentos

Essa funo espera como dados de entrada:

Dois vetores linhas (ou colunas) com dimenses iguais: neste caso, o 15 vetor
deve conter os valores do eixo X e o 22 vetor os do eixo Y;

plot(x,y)

Este deve ser o aspecto do grfico gerado pela funo plot.

Uma matriz: neste caso, considera que cada coluna da matriz contm o valor do
eixo Y de uma curva, e assume os valores 1:m (nmero 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

Vew

Insert

Tools DesViop W nd ow

Help

d 7 # | k iV A * DB

e1---- 1
---- ----- 1
---- 1---- ----- j---0
20
40
60
ao
100
120
140

Passo 2: Configurao da aparncia dos grficos.


A funo plot aceita um terceiro parmetro, que define as propriedades de exibio da
curva do grfico: cor, marcador, tipo de linha.
Digite a instruo seguinte para obter um grfico com curva marcador'+' de cor vermelha:

p l o t ( x , y , '+ r ')

Tipos aceitos pela funo plot, para exibio de curva:


Cor
y (amarela)
m (magenta)
c (azul-claro)
r (vermelha)
g (verde)
b (azul)
w (branca)
k (preta)

Marcador
. (ponto)
o (crculo)
x (x's)
+ (cruz)
* (estrela)
s (quadrado)
d (losango)
v (tringulo p/ baixo)
A (tringulo p/ cima)
< (tringulo p/ esquerda)
> (tringulo p/ direita)
p (pentagrama)
h (hexagrama)

Tipo de linha
: (pontilhada)
-. (ponto-trao)
-- (tracejada)
solid (slida)

Tambm possvel configurar ttulos e textos de anotaes. Para configurar ttulo do


grfico, rtulos dos eixos e legenda digite:
>>
>>

title(
xlabel
y labei
legend

Grfico f(x) = x * c o s ( 2 x ) 1)
('Eixo X ')
('Eixo Y ')
('x*cos(2x)')

Estes parmetros tambm podem ser configurados de modo interativo, por meio da
janela [Plot Tools], acionvel pelo cone de mesmo nome, na janela do grfico.

Conceitos

57

Janela [PIot Tools]: os recursos disponveis nesta janela esto descritos no item 5.1.1.

Fite

Edit

View : Insert

Q ^ y

i :

SEI

Tools

Desktop

Windc

'k

: y fc*
Gffico f(x) -

x co&{2>.)
3 Grfico f(x ) = x*cos(2x)
I ED
4 x 'c o s (2 x)

N ew Subplots
I...J 20 Axes

30 Axes

1x126
1x126

Annotations
\

Im e

'X . A -ro w
\

Double A rro w

Text A rro w

Tex18ox

I I Rectangle
O

Ellipse

Figure Name j

; [ v j S how Figure Number

: Cotormep

Export Setup .

"1

: Foure Color

Alm disso, possvel criar vrios eixos (grficos) em uma mesma janela de figura
utilizando-se a funo subplot, cuja sintaxe dada por:
s u b p l o t (m,n,p)

Parmetros de entrada:

m: nmeros de eixos (grficos) na vertical (nmero de linhas).

n: nmeros de eixos na horizontal (nmero de colunas).

p: ndice do eixo corrente (a contagem do ndice da esquerda para a direita e de


cima para baixo).

Por exemplo, a seqncia de comandos abaixo gera a figura exibida a seguir:

x = - 2 * p i :0.1:2 * p i ;
yl = x .* cos(2*x) ;
y2 = x .* exp (x) ;
s u b p l o t (1,2,1)
plot(x,yl)
t i t l e (1x * c o s ( 2 * x ) ')
s u b p l o t (1,2,2)
plot(x,y2)
t i t l e ('x * e x p ( x ) ')
subplot(m,n,p)

- 3

MATLAB 7- Fundamentos

Passo 3: Impresso e exportao do grfico.


O cone print da barra de ferramentas da janela do grfico abre a janela de impresso
da figura:

F ie

Edt

View

In se rt

Toots

Desktop

W indow

Help ;

f Print Figure | I

Properties...

Name:

j \\e in ste r;sjp

Status:

Paused; S docum ents w a *n g

T>e

HP LaserJet 5

W here

\-* n 5 t n 'ip

Comment:

I f ~ P n n tto S e

Pnnt range

fii
f P-scj-i .oin j

Copie*
Number of ccp<es:

[T

r..r.""| .r~i
L ijiH m J h

Alm desse recurso, a funo print permite que a figura seja armazenada em arquivo
em vrios formatos bitmap:
Parmetros da funo print:

Conceitos

identificador (handle) da janela da figura a ser armazenada. No exemplo, esta


informao fornecida pela funo gcf, que retorna o identificador (handle) da
janela de figura corrente;

formato de gravao. No exemplo, a figura gravada em formato 'jpeg' com


resoluo 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,'- d j p e g 9 0 1, 1exe r c i c i o 5 .j p g ');

Para visualizar o arquivo 'exercicio5.jpg' podemos:

usar a funo imread para 1er as informaes da imagem;

usar a funo image para visualizar a imagem.

a = i m r e a d (1e x e r c i c i o 5 .j p g 1);
i m a g e (a);

Observao: a soluo deste exerccio est armazenada no arquivo cap2_exercicio_05.m.

2.6.2. Grfico Tridimensional


Neste tpico, empregamos a funo surf para gerar o grfico da superfcie gerada pela
frmula x * cos(2y), com (x,y) entre [rc,7i:].

Exerccio 6__________________________________________________________
Passo 0: Preparao dos dados
Gerar o grfico da superfcie Z(X,Y) = X * cos (2Y) entre [-71,71].

Digite no MATLAB:

x = -pi:0.2:pi;
y = - p i :0.2:pi;

Utilizamos a funo meshgrid, que cria duas matrizes, resultantes do cruzamento dos
valores dos vetores x e y. As duas matrizes servem de entrada gerao das
coordenadas tridimensionais necessrias para a definio da superfcie.

Veja

x = -pi :0.2:pi ;
y = -pi :0 . 2 :pi;
[X,Y] = m e s h g r i d ( x , y ) ;

contedo das matrizes X e Y geradas a partir dos vetores x e y:

MATLAB 7 - Fundamentos

\%Ar ray Editor


fic A fy L

:.....

b J \ im \ StackU
2
3
!
t ~T
-3.41
-2.9416 ... ~~
-2'7416;....
s i
~g....
l -3.1416! -2"9416
' 3: .....-3.1416! .... -2.9416
-2 7416
-277416!....
u i .... -3714161 .... -2.9416
M -3^1416] -2.9416 -2.7416]
jj ......-3.146 .... -2.9416 .......-277416!....
-3.14161
-2.9416
-2.7416!
M
.... --3"l416j' .....-2.9416 ...... -27416:.....
.....
-3.1416]
.....-Z946
......-2.7
416.....
. li
10
-1416|
-2.9416
-2.74161
m .....--3.1416! .....-2.9416 ......277416!.....
m. -3.14161" -2,9416: -2.7416]
<

EB CD 0 & \ h ' . .... 1.... ..........j 6 I 7


-2 5416
-2 3416
-271416 ...... -1.9416".......--2:1416!
-2 5416
-2 3416
-19416
-2 5416
-2 3416
-2.1416!
-1 9416
-2746I
;
-j794i!:
7 7
'2.5416|7' '"'*2-346......
-2 5416
-2 3416> -2.1416;
-1.94167
-271416;.......-.946!....... 2:
-2 5416
-2 3416
-2 5416
-2 3416
-2.1416!
4.9416} ...7
-2 5416
-2 3416
-2 1416
-1.9416?
|
7794161.......|
-2.5416!.......-2.3416!...... -2714161
-2.1416]
-179416!
-2,5416! ' -2.3416]
:-2.54161....... -2.3416;....... -27 46: .......-79416:....... -1.9416!
-:i;
-2.5416! ' -2.3416j
-2.14161

Ar ray Editor - Y
ffl m b a i d ? x |
*03 | 1^1*
m'Stack;^
j .....S..........L
6
i
t
2
.... 3........777 4
7 !
!
.....-37l46]....
-3.14161
-3,1416!
73.14161
-3.1416= ....-3.14161.... ""-31416......
i r
7.2.;... -2.94161 ~ -2.9416] ' -2.9416!
-2.9416:
-2.9416]_ -2.9416
2.9416!
3 ; '''''-274167 -2 7416
"-2.7416! -2 7416 -2.746 ....-274167... "-277416;.....- |
7 1
g t ....-254167 .....-25416!:... ...-25416!..... ....-254161... .... 2754167 ....-25416j:.... -2.5416
; SJ... -2.3416!
-2.34161
-2.3416]
-2.34161
-2.3416
4 |
-2.3416!
-2.3416;
I.sj... ....-2714167'.....7214161....''-274l'6l.... "-271416... ...-2467 ....-21416!..... '-2 1 4 1 6 '...... - 1
-779416!
-1.9416]
-1.94161 "T79416
-1.9416?
-1.94167 -1.9416[
1: 1
ri.746l
3
-1:7416!
-1 7416
-1.7416]
^ ]:
-1 7416 ...-77416].... -1.7416]
: S t ...-1.5416! .....-1.54161.......-.5416].... 77S46|7 ...754167' ....-15416!.....
-1.34161
-1.34167
|
ho:... '-1.3416! .....-1.34167... ...-734161.... -1.3416?... ...-1 34161
1
:11j ....-1:1416? .....-17 416.... ...-7146!.... '-71416!... ... -7l4 1 6 [- ....-7 l4 6 j.... -7T416j
)12j -0.94159! -0.94159T"' -0.941591 -0:941591 -0.94159] -0.94159 -0.941591 -o7p|

'-7_ p ^

As coordenadas da superfcie so calculadas com os valores armazenados nas


matrizes X e Y:

Z = X

.*

COS

(2*Y) ;

Passo 1: Chamada da funo de criao de superfcie.


A funo surf cria uma superfcie. A matriz Z contm os valores da coordenada Z da
superfcie.

||II

surf(Z)

Passo 2: Configurao da aparncia dos grficos.


No caso de grficos tridimensionais, alm de configurar tipo de ttulos e textos de
anotao, possvel configurar mapas de cores, posicionamento de cmera
(visualizao tridimensional), transparncia e iluminao. Este assunto est detalhado
no tpico 5.1.8.

Observao: a soluo desse exerccio est armazenada no arquivo cap2_exercicio_06.m.

2.7. Leitura e Armazenamento de Dados


Neste tpico, apresentamos os recursos de leitura e armazenamento de dados, em
formato MAT, ASCII e MS-Excel, bem como o utilitrio de importao de dados. Os
outros recursos do MATLAB 7 de manipulao de arquivos de dados so apresentados
no captulo 4.

2.7.1. Arquivo MAT


O MATLAB possui um formato binrio prprio de armazenamento de dados, usual
mente chamado de formato MAT, pois os arquivos de dados neste formato possuem
extenso .MAT (mat-file).
MAT o formato de armazenamento de dados mais eficiente (rpido e compacto)
disponvel no MATLAB. A funes que manipulam dados .MAT so:

load: l arquivo .MAT

save: grava arquivo .MAT

Exemplos:

grava um arquivo com nome dadosl.m at contendo todas as variveis definidas no


[Workspace]:
I
62 )

MATLAB 7-Fundamentos

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 variveis fornecidas.


No caso, contendo apenas a varivel a:

save dados2 a

A funo save acionvel pelo menu contextual do [Workspace] para gravar o


contedo da varivel selecionada em arquivo.

S lp r"
.tl.Q .3 :X .C G ;7 .Q 9
nTj
Open Selection
Copy

Ctrl+C

Duplicate

Ctrl+D

Paces

Delete

Hfnax

[SSBI

Save as type:

jM A T -fiie s f

l um arquivo com nome dadosl.m at. As variveis contidas no arquivo aparecem


no [Workspace],
>> load dadosl

Arquivos de dados .MAT tambm podem ser lidos pelo utilitrio de importao de dados
que apresentado no tpico 4.2.

2.7.2. Arquivo ASCII


Neste tpico mostramos como utilizar as funes de leitura e gravao de arquivos
ASCII em formato delimitado (delimited file: dados separados por caractere delimitador):

dlmread: l arquivo ASCII delimitado;

dlmwrite: grava arquivo ASCII delimitado.

No exerccio proposto a seguir, vamos ler o arquivo 'cap2_dados1 ,txt', que contm duas
colunas de dados numricos.

S-

Exerccio 7
O arquivo 'cap2_dados1 .txt1contm dados sobre o crescimento da populao de guas-vivas em um viveiro a 19C.
As informaes esto organizadas em 2 colunas e 50 registros (linhas):

1- coluna: % tempo de observao (de 0 a 100%);

2- coluna: tamanho da populao de guas-vivas.


I.

Ler o arquivo 'cap2_dados1.txt' e criar o grfico tempo x tamanho da


populao.

II.

Obter valores da reta ax+b que melhor aproxime os pontos dados (mnimos
quadrados / regresso linear). E crie um grfico com os pontos dados e a reta
de aproximao.

III. Criar um arquivo 'cap2_saida.txt' com 3 colunas:


1 - coluna: % tempo de observao (de 0 a 100%);
-

2- coluna: tamanho da populao de guas-vivas;


3 coluna; os valores obtidos pela regresso linear.

Soluo do item I:
A funo dlmread recebe, como parmetro de entrada, o nome do arquivo a ser lido e
retorna uma matriz com os valores lidos.
m=dlmread(1cap2_dadosl.txt');

A varivel m recebe uma matriz 50 x 2 com os valores numricos armazenados no


arquivo:

1a

coluna: % tempo de observao (de 0 a 100%);

2-

coluna: tamanho da populao de guas-vivas.

A varivel x recebe a 1? coluna transposta (ou seja, um vetor linha) e a varivel y


recebe a 2- coluna transposta:

x = m( : , 1 ) ' ;

y=m(: , 2 )';

Use a funo plot, apresentada no item anterior, para gerar o grfico:


plot(x,Y, 1*') ;

- 3

MATLAEP 7 Fundamentos

> F igure 1
Ne

Edd

Vtew

In s e rt

Tools

t B S I fe i O.

D esktop

W indow

. ..

Help

B ! Q

120

10

20

40

50

60

70

80

80

100

Soluo do item II:


Para resolver o item II, usamos a funo polyfit, que calcula aproximao por
polinmio.
Dados de entrada:

dois vetores colunas, x e y, correspondentes a coordenadas de pontos;

um nmero n correspondente ao grau de um polinmio.

Dados de sada:

um vetor p de dimenso 1 x n+1, contendo os coeficientes do polinmio que melhor


aproxima os pontos dados:
Pol(t) = p(1)*tn + p(2)*tn_1 + ...+ p(n)*t + p(n+1)

No caso de regresso linear, usamos a funo polyfit para obter um polinmio de


grau 1.
p=polyfit(x,y,1)
P

1.2363

2.4225

A reta que melhor aproxima os pontos dados f(x) = 1,233*x + 2.4225.


Para calcular o valor de polinmio para todos os valores de x, usamos a funo
polyval.

Conceitos

Dados de entrada:

um vetor p de coeficientes do polinmio;

um vetor x com os valores para os quais o polinmio deve ser calculado.

Dados de sada:

um vetor yp com os valores do polinmio calculados em x deve ser calculado.

um vetor p de dimenso 1 x n+1, contendo os coeficientes do polinmio que melhor


aproxima os pontos dados:
yp=polyval(p,x);

Para criar um grfico com as duas curvas, digite:


plot(x,y,'*',x,yp)

Soluo do item III:


Para resolver o item, vamos criar mais uma coluna na matriz m contendo os elementos
do vetor yp (concatenar horizontalmente m com a transposta do vetor yp) e gravar a
varivel m no arquivo 'cap2_saida.txt1usando a funo dlmwrite.
Para compor m, digite:
m= [m yp ];

Para gravar o arquivo, digite:


dlmwrite('cap2_saidal.txt1,m);

Observao: a soluo desse exerccio est armazenada no arquivo cap2_exercicio_07.m.

MATLAB7-Fundamentos

2.7.3. Arquivo MS-Excel


Considere o exerccio 7 apresentado no tpico anterior, porm os arquivos de entrada e
sada no exerccio seguinte constituem arquivos no formato MS-Excel.
Exerccio 8___________________________________________________________________
Como os dados esto armazenados em arquivo do MS-Excel (*.xls), basta substituir as
funes de leitura e gravao de arquivos dlmread e dlmwrite por:

xlsread: l arquivo *.xls;

xlswrite: grava arquivo *.xls.

A funo xlsread recebe, como parmetro de entrada, o nome do arquivo *.xls a ser
lido e retorna uma matriz com os valores lidos.
>> m = x l s r e a d ( 'cap2_dadosl.xls');

Essa funo aceita dois parmetros de entrada opcionais:

m=xlsread ( 'cap2_dadosl .xis 1, 'PlanX , 1Al :B50 1)

2- parmetro: nome da pasta que contm os dados a serem lidos;

32 parmetro: intervalo que contm os dados desejados.

Alm disso, xlsread pode retornar os dados separados em at 3 categorias:

[Num, Txt,

Ra w ] = x l s r e a d ( 'cap2_dadosl.xis 1);

Num: matriz numrica contendo o conjunto de dados numricos da planilha;

Txt: cell array contendo o conjunto de dados alfanumricos;

Raw: cell array contendo todos os dados, sem formatao especfica.

A funo xlswrite recebe, como parmetro de entrada, o nome do arquivo *.xls no qual
o dado dever ser gravado e a varivel a ser armazenada.
Para gravar o arquivo, digite:

x l s w r i t e (1c a p 2_saidal.xis',m);

Esta funo aceita dois parmetros de entrada opcionais:

x l s w r i t e ('cap2_saidal.xis 1, m , 'P l a n l ',1A l : C 5 0 ')

2 parmetro: nome da pasta na qual os dados devem ser gravados;


39 parm etro: intervalo que vai conter os dados.

Conceitos

ES

Microsoft Excel - cap2saida1

I ,f P ) A rq u iv o
l b

JEditar

&

i i

111 M

f : A ria
' 2

E xjb ir

t ,

In s e rir

10

F o r m a ta f

V ,

- : H

! Q.

3
l

^
s

F e rra m e n ta s

- < *

; m

fia d o s
'

8P

CK

'-;r

% ; (i

.......... H11...........
A
B
s
C
\
A.
1
0
11.0703! 12,42253:
2 ] 2 ,0 4 0 8
11,3917! 14.94553!
~3 ! 4 ,0 3 1 6
12,31381 1 7,4 6 8 5 2
4 > 6 ,1 2 2 4 S 26.4991 19.99151!
5": ...... 8.1 63 3
2 6 ,1 0 2 2 2,51 4 63 '
FS '1 ...... 10,204:" 3.3166; 25,0375!
7
12,24 5 1 2 7 .0 9 8 2 7.56074:
...... 14V 236 ....3 9 3 1 5 ^ 3Q,8 3 9 8 1

2:
&

Observao: a soluo desse exerccio est armazenada no arquivo cap2_exercicioJ)8.m.

2.7.4. Utilitrio de Importao de Dados


O comando im portdata do MATLAB 7 um utilitrio de importao de dados, que
verifica o formato do arquivo selecionado e executa seu carregamento utilizando a
funo de leitura mais conveniente disponvel no MATLAB7.
Este comando pode ser acionado pelo [Command Window] ou pela opo [Import
Data...] no menu pop-up [File],

a n EH
iFrog_R ed
i E dit

1
1
1
I

View

Graphics

D e b u g : D<

New

C trl+ N

Save

C trl+ 5

O pe n...

C trl+ O

Close W orkspace

C trl+ W

% Recent
Doctments.

-Q g ra fO S

figrafS
Qgrafll
license
Lotus l. w k l
fjL o tu s Z w k l

S ave W orkspace A s ...

C trlfS

Set P a th ...
P re fe re nc es ...
Page S e tu p ...
P rin t...

^matisbl
re d e y e d fro g
BxdYd
ffixy

C trl+ P

l c ; \ . .\cap02_Exercicio6.m
2 ...rk \ca p 0 2 _ E x e rc jc io 7 l.m
3 c : \ . . .7\w o rk \c irc u ito0 2 .m
4 c: \ . . .7\w o rk\circu ito 01 ,m
E xit MATLAB

C trl+ Q

Recognized Data Be$

Exemplo: leitura de arquivos 'cap2_dados1 .xis1.

Identifica o tipo de arquivo;

Abre a planilha;

Identifica a pasta;

Exibe os dados.

MATLAB 7 - Fundamentos

*.)

Impor W izard

0 8 0 8 0

Select variables to import using checkboxes........

--------------------------------------------------- --------

@ Create variables matching preview.:


f

tp^viji - r

Cr p & j n c!c-i s ---XA esc h fow

f, f . r v M *
nairsji.

Variables r i C:Vnat(ab7Wvorkfcap2_saida1 xls


| Name *

Import

El

i W

f .Size
5 0x3

j B y te s ........ j Class I


.......M r_

2
|
3
11.0703112.42253160...:
11.3917:14.94552505..4
4 0316
12.3138117.46851849...!
3
4j
61224
26.499:19.99151194...!
5:
81633
26.102122.51462901...!
3.3166:25.03749883...
B i....... 10 204
7:
12 245
27.09827.56073953...!
8I
14.285!
3 9.315^.08398023.. J
16 327
34.798I32.60722093..J
9j
18.367138.51300000...3S.12922535..J
10]
1.1]_____ 20.403 36 36799999 37.65246605...

1200 double! i f ___

i
>|

<
|

2.8.

Help

24 4 9 "
26.531
28.571 i

<

:
iffii

36.27 42 69894746 .
51.093 4522218816..
54 066 47.74419258..

..............................................................................
|

Back

>>;

[ Fimsh

( Cancel

ii
|

Programao no MATLAB 7

Desenvolver solues e efetuar manutenes em programas no MATLAB , sem


dvida, mais eficiente e rpido do que em qualquer outra linguagem de programao
convencional como C/C++, Fortran ou Visual Basic.
Isto se apresenta em dois grandes aspectos:
i

Ncleo do MATLAB 7:
Composto por um conjunto de bibliotecas matemticas eficientes e confiveis,
desenvolvidas por especialistas e validadas por professores, cientistas e
engenheiros no mundo todo.
O MATLAB 7 utiliza a tecnologia 'JIT accelerator1 (Just-In-Time Accelerator),
que aumenta a velocidade de execuo, tanto das funes do ncleo do
MATLAB 7, quanto das aplicaes desenvolvidas pelo usurio.

Plataforma de desenvolvimento composta por:


Linguagem de programao de alto nvel, flexvel, de codificao simples e,
portanto, fcil de ser aprendida.
Edit: editor de programas, composto por ferramentas de apoio a desenvolvi
mento (por exemplo, ce ll m ode: clula de cdigo) e depurao de cdigo
(debug mode).
M -Lint: analisador de sintaxe de programas para auxiliar o processo de
depurao, manuteno e melhoria de cdigo.

Por estarem baseados em um ncleo extremamente eficiente, programas executados


no MATLAB so mais lentos do que cdigos gerados manualmente em linguagem
C/C++ ou Fortran.
Neste tpico, apresentamos os conceitos bsicos de programao na plataforma de
desenvolvimento.
I
Conceitos

2.8.1. Editor de Programas: Edit


Arquivos de programa do MATLAB tm extenso '.m' e, por este motivo, so
usualmente chamados de m-files.
Existem dois tipos de m-files:

Script: uma sequncia de comandos do MATLAB e serve, basicamente, para


automatizar algum processo repetitivo. No tem parmetros de entrada, nem de
sada, e utiliza as variveis do Workspace. semelhante a um arquivo '.bat' do
DOS. Os exemplos deste captulo, at este ponto, foram codificados como scriptfile.

Function/Program :tam bm uma seqncia de comandos do MATLAB, mas


aceita parmetros de entrada e retorna parmetros de sada. Funes utilizam seu
prprio espao de memria para armazenar variveis locais.

Os elementos do editor de programas so detalhados, posteriormente, no captulo 3


deste livro. Neste tpico apresentamos os aspectos de aplicao mais imediata dos
recursos de edio e depurao de m-files.
O MATLAB possui um ambiente para edio de programas que pode ser acionado de
duas formas:

digitando edit na linha de comando;

acionando cones da barra de ferramenta do MATLAB

Pi Z

edit cap2_exercicio_07

f- l t t o r - c : V na t l a b / \ w o r k ^ 4 p Z .e x r c ic io ^ O 1. m

f jf e jlX )

Ed* Text Cel Tods Debug DesWop Window Help


d

a?

* * >

&

f.

: -a

a r

sm a

- pcho on
% Arquives: :c&p2_j>:ercic'i _G7
3
% C&PITLO Z - luao do Exerccio 7
4
* leitura e gravacao d* aequive .ASCII

1
2

? 6
1 7
1 8
9 ||

10

%
%
%.

m=dlairead ( *cap.jSadosa. t x t 1) ;
% Ssparacao dos dados

12 r

x = m ( : , 1) ;

13 -

y -m ( : , 2 ) ;

W.

A. !

Solueac- cU? itan? X


Leitura do arquivo 1cap2_dadosl;. txt* ccic
a. funeso dlmread.

li

!^
15

Exifcicao dos pontes

seriei

;Ln 1

Col 1

II

o editor abre uma pasta para cada arquivo;

na margem esquerda da tela, exibida a numerao das linhas do programa em


edio;

'%' indica texto 'comentrio';

indica que a linha de comando continua na prxima linha;

MATLAB 7 - Fundamentos

os textos so exibidos em cores diferentes conforme sua classe sinttica:


palavras reservadas (ex.: for, end, if): azul

textos de comentrio (indicados p o r'%'): verde

cadeia de caracteres em edio: prpura

funes e variveis: preto

'%%' indica delimitao de clula cdigo (cell mod), ou seja, trecho de cdigo que
executado em bloco durante a operao de depurao (debug mod) do programa.

Principais recursos de apoio codificao de programas:

cor de texto: identificao de texto com cores diferentes por classe sinttica;

balanceamento de expresses: o editor verifica se os elementos de expresses ( ),


[
} esto balanceados. Basta posicionar o cursor em um dos elementos
para que o editor identifique seu par, sublinhando ambos. Caso o par no seja
encontrado, o editor exibe um trao.

Exemplo de par balanceado:


% Leitura do arquivo 'cap2_dadosl.txt'
m=dlmreadj_'c a p 2 _ d a d o s l .t x t 1) |;

com

Exemplo de par no-balanceado:

'indentao1automtica: o editor organiza automaticamente os recuos de texto de


acordo com as estruturas de programao definidas no cdigo selecionado. Basta
selecionar o trecho do programa e digitar [CTRL+I],

Exemplo (arquivo triangulo_pascal.m):


H

E d it o r - e : \ m a t la b 7 \ w o r k \ t r ia n g u I o _ p a s c a L ia *

1 Fe
l

Edt
G?

s i U
1

T e xt. Cell Tools

& %

Desktop

:*

P U S

[L.

W ndow

Heip

.f f,

? X

a = e y e (n );

3 4 -

a ( :, l) = l;
f o r i= 3 :n :

5 -

fo r

I n ic ia

a c o rs id e n t i d a d e

la e ia

p r iif K iic a

end
end

D 3?
c r

*'
(d

c c l u u a cosei;

% C o ic p c e o s d e m % is

j=2: i

CTRL+I

c s

Tools
s

Debug
-

- f i o ...... +

f u n c tio n

2 -i

a **e y e ( n ) ;

3
4 -

a ( : , 1) * 1;
fo r

Desktop

W indow

Help

f k

a = t n a n g u lo

fo r

6 -

*o

X I

! x
pascal

v l

*
(n )

% I n ic ia

'-i I n i d s

p n n ie ir a

coa> i d e n t - i d a d *

id ff;|

o - o lu r , cc-tn

: i
a li,] ]= a ( i- l, ] - l) + a |i- l,] ) ;

end
S

5
:triangulo_pascal

Lr. 13

Col 5

Antes da 'indentao1

Conceitos

\^

end

T e x t -Cell

5-

a [ i,j) = a ( i- l, j- 1 ) + a ( i- l, j) ;

7 8

File; Edit

* _ v [

f
- r 1.1
: K :
c i i B
s ;ll .
f u n c t io n , a = c r ia n g u lo _ p a s c a l (n )

2 -

6 -

Debug

> 1
I

<

>
tnangufo_pascel

; ln

Col 1

Depois

( 71

..

2.8.2. Depurao de Programas: Debug Mode


Principais recursos de apoio depurao de programas:

B reakp oint (tecla F12): configura um ponto de parada na execuo do programa.


Basta indicar o trao direita do nmero da linha, o qual passa a ser indicado por
um ponto vermelho.

Em debug mode, possvel monitorar o contedo das variveis do programa em


execuo, tanto na janela [Workspace], quanto no editor. Basta aproximar o cursor
da varivel a ser observada.

-f]

N am e

File

<50x2 double>
<1 x50 double>

Edit

View

Graphics

Value

#
1

1J
2!
3!
4i
5j
6!

T
l.
2.0408'
4.08161
6.1224]
8.1633]
10.204}

Debu

II
.2
11.07
11.392
12.314
26.499
26.102
3.3166

E d ito r - c :\r o d tId b 7 \w o rk \c a p 2 _ e x e rc ic o _ 7 ,m

I File

E dit

Text

1
8

CeS Tools D ebug D esktop W indow

1K

L e it - u r a
% a

o \ >

do

fu c e a o

a r q u iv o

jr .I

?* ? X

' ! ' : [IP iI l h [c a p ... : y - |

; v-

Help

1c a p 2 _ d a d o s l . t x t '

cc

ttfi

d Im re a d .

9
10 -

tn d l m r e a d ( ' c a p 2 _ d a d o a l . t x r , ! ) ;

11

=1 S e p a r a e a o

12 -

X- ( :/ !) ';
|y =
ro : 5 0 x 2

13 O
14

**

15
16 -

Pi

17
18
i -

dos

dados

:
!

d o u b le . =
0

1 1 .0 7 0 0

2 .0 4 0 8

1 1 .3 9 2 0

4 .0 8 1 6

1 2 .3 1 4 0

6 .1 2 2 4

2 6 .4 9 9 0 (

__a.....
U c r ip t

! ln

13

Col

lo v iS .

A execuo do m-file, aps a configurao do breakpoint, efetuada em modo de


depurao (debug mod), que aparece identificado com o prompt

72

MATLAEP 7 - Fundamentos !

0 promtp

(k )

Funo
dbstop n
dbclear n
dbcont
dbstack
dbstatus"
dbstep
dbtype
dbup
dbquit

habilita as funes debug:


Informao
configura breakpoint na linha n
desconfigura breakpoint na linha n
avana execuo at o final (tecla F5)
exibe pilha de chamadas de funo (quem chamou quem)
exibe lista dos breakpoints configurados
avana um passo de execuo (tecla F10)
lista o arquivo que est sendo depurado
muda o contexto da janela [Workspace]
encerra modo debug

Exemplo:
%%
m = d l m r e a d ('c a p 2 _ d a d o s l .t x t ');
% Separacao dos dados
x = m (:,1)1;
y = m {:,2)
K dbstop 22
% Configura breakpoint na linha
K dbstatus
% Exibe breakpoints
Breakpoints for cap2_exercicio_07 are on lines 13, 22.
K dbstack
% Funcao chamada
> In cap2_exercicio_07 at 13
K dbstep
% Executa proximo passo

22

%%
% Exibicao dos pontos
plot(x,y, 1*')
16 plot(x,y, '*')
K dbclear 22
% Desconfigura breakpoint na linha 22
K dbstatus
% Exibe breakpoints
Breakpoint for cap2_exercicio_07 is on line 13.
K dbquit
% Encerra modo debug

>>

(t
Conceitos

Tecla de funo [F10]: em debug mode, a tecla de funo [F10] aciona a


execuo linha a linha do cdigo. A ltima linha executada indicada por uma seta
verde.

Editor - c;\matiob/\work\cp2_exerciGo_0/,m
Fite

Edit

T ext

D 3 S

Cell

Tools. Debug

Desktop

&

* fe

j*.jWjfWj

W in d o w . Kelp

M f.iC fi

B Q

? X

5 "v

:c.p;:x f

eiC'MC'a do. arquivo


funcao diisread.
9
10 11
12 -

13 O
14
H Exbic&o dos pontos
- >$ plot (x, y, * )

Scicsc :1o ate


..Cu.!.:u.(;

...q u e .e iy r o x .

;SCrit____

r-~-

<!> Tecla de funo [F5]: executa o arquivo at o final.

Ce/l: o s in a l'%%' delimita blocos de cdigo, ou clulas de cdigo (cell), que podem
ser isoladamente,
Este modo de execuo habilitado na opo [Evaluate Current Cell] do menu
pop-up [Cell] do editor. Quando o cell mode est habilitado, as clulas de cdigo
ficam destacadas com fundo laranja-claro.
it

T ext

Q
"~7~--- \

Cell

Tools

Debug

Desk

* A X

- - # M f.
Le 1 1 u ra do arqu'ivo *cap2 _

% a funeao diitiread.

cap2- dados! ixt-1};


; %:?-Separaco dds dados
x-(:,l)';

7=m(:/2j1;

5i>
% -Exifeioao das .porit-as
plot(x,y,1?<)
In s e rt T e x t Mar

Previous C ? !

O rf-K ip

2.8.3. Analisador de Sintaxe de Programas: M-Lint


Alm do modo debug, a plataforma de desenvolvimento do MATLAB 7 fornece a
ferramenta de apoio M-Lint, um analisador de sintaxe de programas que verifica se
cdigos de programas m-files esto sintaticamente corretos e sugere melhorias na
codificao. Gera um relatrio de ocorrncia de falhas e possibilidades de melhoria
detectadas.
0 M-Lint pode ser acionado dentro do editor de programas edit, pela opo [Check
Code with M-Lint], no menu [Tools],
H Editor e:\matIabAworkttrianguio_pascal.i
File

Edit

Text

Cell

D & B

t %
"S sl
-

Show Dependency Report


Open Profiler

MATLAEP 7- Fundamentos ;

Vamos executar a verificao no arquivo ,triangulo_pascal.m':


** M i i n t C o d e C h e c k R e p o r t
F ie

E d it

View

Go

D ebug

D e s k to p / W indow

Help

G I# 1
M -Lint Code C hecker Report
Report for file c:\matlab7\work.\triancrulo pascal
c:\aatlab7\work\ triangulo_pascal.m

0 M-Lint gera o relatrio no Web Browser do MATLAB 7. As informaes podem ser


exportadas para .HTML.
No caso de arquivos com erros de sintaxe, o M-Lint emite o relatrio com a indicao
da linha e a descrio do erro detectado. Vamos executar a verificao no arquivo
'triangulo_pascaI_erro.m':
V M-Lint Code Check Report
Fie t d t
D

is
S

Text

C el

Toots

i % T o

Q
t i% a

10

, +

Debug
-

Desktop
a

* t.H _ j

Window

Help

f. i ' : * '

File

Edft

View

Go

Debug Desktop

Window

Help'

-B

-- ' r i a n g u i o _ p s 3 c a l _ e r r o f a )

function a = triangulo_pascal_erro (n)


a*eye(n);
^ Inicia a core ider-.ticlad M-Lint Code Checker Report
i;(diagonal corcpcsi-& p:
. a(:,l)=l;
% Inicia prirasira coiuna Report for file c: \aatlab7WorkN tringulo pascal erro
for i=*3:n
% Ccaspoe
os dexaais c :\matlab7\work.\ tr iangulo_pascal_err o.m

for j=2:i-1
a(i,3*ai-l, j-l)+a(i-.l, j);
end
end

3 messages 8l Parse
18: Parse
;8: Parse

errorat 1= 1 appears to be invalid HATLAB syntax


errorat 151 appears to be invalid MATLAB syntax
errorat ')1 appears to be invalid MATLAB syntax

2.8.4. Elementos de Programao do MATLABw7


Neste tpico, apresentaremos os elementos de programao de funes no MATLAB.
Essas funes aceitam mltiplos parmetros de entrada e retornam mltiplos
parmetros de sada (esta uma caracterstica muito peculiar e extremamente prtica
do MATLAB).
A sintaxe bsica de definio de funo segue o formato abaixo, no editor edit:
function
<Exprl>
<ExprR>

Psl,

.. ., PsN ] = nome_funcao

Pel,

. . PeM )

function: palavra reservada ( grafada em azul no editor), que indica incio de


definio de funo;

Ps1,..., PsN: parmetros de sada;

nome_funcao: nome da funo ( case-sensitive);

Pe1,..., PeM: parmetros de entrada;

<Expr1> ... <ExprR>: expresses que definem as aes a serem executadas pela
funo.

A sintaxe bsica de chamada de funo segue o formato abaixo, na linha de comando


no [Command Window]:

[Psl,...,PsN]

= nome_funcao

(Pel,...,P e M ) ;

Para ilustrar a construo de uma funo, criamos o arquivo 'cap2_exemplo_13.m'


com as seguintes caractersticas:

funo principal: 'cap2_exemplo_13';

implementa a mesma operao do script-file 'cap2_exercicio_07.m';

parmetros de entradas: nomes do arquivos de entrada e de sada;

parmetros de sada:
matriz m (completa com as trs colunas);
vetor coef (com os coeficientes da reta a*x + b).
Edit:

cap2_exemplo_13.m________________________________________________________

% CAPITULO 2 - Exemplo de funcao


% [m, coef] = cap2_exemplo_13 (Arq_Entrada, Arg_Saida)
% 1. Le arquivo Arq_Entrada com dlmread
% 2. Executa as mesmas instrues em 'cap2_Exercicio_071
% 3. Gera arquivo Arq_Saida com dlmwrite
% 4. Retorna a matriz m e o vetor coef
function [m, coef] = cap2_exemplo_13 ( Arq_Entrada, Arq_Saida )
% Leitura do arquivo Arq_Entrada com a funcao dlmread.
m=dlmread(Arq_Entrada);
% Separacao dos dados
x = m {.,!) ';
y= m ( : , 2 ) 1;
% Exibicao dos pontos
p l o t (x,y, 1* 1)
% Calculo do a*x + b que aproxima os pontos
coef=polyfit(x,y,1);
% Calculo do valor do polinomio
yp=polyval(coef,x);
% Exibicao dos pontos e da reta de aproximacao
p l o t ( x , y , '*',x,yp)
% Montagem da matriz m: m concatenada com
% o vetor yp transposto
m = [ m y p '] ;
% gravacao do arquivo de saida contendo a matriz m
dlmwrite(Arq_Saida,m);

MATLAB 7-Fundamentos

Com relao a esse exemplo, note que:

a.

A execuo da funo 'cap2_exemplo_13' permite indicar os arquivos de entrada e


sada e as variveis de retorno:

[resultado, coeficientes]=cap2_exemplo_13('c a p 2 _ d a d o s l .t x t ',1x . d a t ');

b.

c.

O texto de comentrio no incio do arquivo, alm de documentar o programa,


exibido pelo comando help:
help cap2_exemplo_13
CAPITULO 2 - Exemplo de funcao
m = cap2_exemplo_13 (Arq_Entrada, Arq_Saida)
1. Le arquivo Arq_Entrada com dlmread
2. Executa as mesmas instrues em 'cap2_exercicio_7'
3. Gera arquivo Arq_Saida com dlmwrite
4. Retorna a matriz m e o vetor coef

0 arquivo m-file e a funo principal devem ter o mesmo nome.


W Editor - c:\m atab7\workkap2_exempto_J3.m
1 Fite Ed* Text Cel Tods Debug Desktop Window Help

mmm
*

^2 1 1

Ia

7
8
y 10
11
12 13
14 -

: - h . . j + i * L i,!

. x

l.T i. z ......

function [ m, coe] = cap2 exemplo_l3 ( Arq Entrada, Arq Saida )


funcao diasread.
m=dlinread(Arq_Entrada) ;
% Sepsaaciao cios .3ac3o3
x~w(:,1 )';
7=m(:,2)' ;
t Kxihicao do ponto
paot(x, 7 ,
.< .
cap2_exemplo_13

d.

Stack

Ln 24

.';
V
>

Cot 32

A partir do MATLAB 7, nomes de funo so case-sensitive, isto , letras


minsculas e maisculas so consideradas diferentes. O MATLAB 7 exibir uma
mensagem de aviso caso alguma diferena desse tipo seja detectada.

[resultado,coeficientes]=Cap2_exemplo_13(1cap2_ d a d o s l .t x t 1, 1x . d a t ');
Warning: Function call Cap2_exemplo_13 invokes inexact match
c :\matlab7\work\cap2_exemplo_13.m.

Com relao aos parm etros de sada, se a chamada da funo for feita:

com menos parmetros que o declarado, a funo retorna apenas os parmetros


fornecidos:

resultado=ca p 2 _exemplo_13('cap2_dadosl.txt', 'x.dat');

com mais parmetros que o declarado, o MATLAB acusa erro Too many output
arguments' (parmetros de sada em excesso):

Conceitos

&


[resultado,coeficientes,m]=cap2_exemplo_13(1cap2_ d a d o s l .t x t ' 'x.dat1)
??? Error using ==> cap2_exemplo_13
Too m a n y output a r g u m e n t s .

se nenhum parmetro for indicado, a funo retorna apenas o valor do primeiro


parmetro.

Com relao a escopo de variveis:

Como j sabemos, o MATLAB armazena suas variveis em uma rea de memria


denominada workspace;

Parmetros de entrada e sada so a forma (interface) mais adequada para trocar


dados entre o workspace do MATLAB e ambientes internos de funes.

Varivel Local

Funes trabalham com variveis locais, isto , variveis que ficam armazenadas
em reas de memria prprias, independentemente do workspace do MATLAB;

Os escopos das variveis do w orkspace e das variveis locais de funes so


distintos:
-

variveis do workspace no so reconhecidas dentro das funes;

- variveis locais no so reconhecidas fora do escopo das funes nas quais


foram definidas.

Variveis locais podem ser do tipo 'varivel persistente1 (persistent}. Variveis


persistentes so variveis locais que mantm seu contedo de uma execuo para
outra, dentro de uma mesma sesso de execuo do MATLAB.

Devem ser definidas explicitamente dentro da funo como persistent:


e d i t : cap2_varpersistent_exeir.plo .m___________________________________________

% Arquivo: cap2_varpersistent_exemplo
% Retorna Var_Persistent * (matriz identidade nxn)
function m=cap2_varpersistent_exemplo (n)
persistent Var_Persistent
if isempty(Var_Persistent)
% se vazia, recebe 1
Var_Persistent = 1;
else
Var_Persistent = Var_Persistent+n; % soma n
end
m=Var_Per s i s t e n t * e y e (n);
Pi

No exemplo precedente, a funo inicializa o contedo da varivel persistente com


valor 1 (verifica se seu contedo vazio). Posteriormente, a varivel recebe seu
contedo mais o valor de n (parmetro de entrada).

- 3

MATLAB 7 - Fundamentos

Chamada da funo cap2_varpersistent_exempIo:

cap2_va
ans =
1
0

cap2_va
ans =

r p e r s is te n t_ e x e m p lo (2 )
0
% P rim e ira ex ec u cao
1
r p e r s i s te n t_ e x e m p lo (2 )

: V a r_ P e rs is te n t

= 1

0
% Segunda ex ecu cao : V a r_ P e rs is te n t = 1 + 2
0
3

c a p 2 _ v a r p e r s i s te n t_ e x e m p lo (2 )
ans =
5
0
% T e rc e ira ex ecu cao : V a r_ P e rs is te n t = 1 + 2 + 2
0
5

Varivel Global

Variveis globais so variveis que podem ser reconhecidas no workspace e


dentro de funes. Devem ser definidas no workspace como variveis globais e ser
explicitamente declaradas no cdigo das funes.

Por exemplo, Var_Global deve ser definida como global no workspace e declarada
dentro da funo 'cap2_varglobal_exemplo'. Quando executada, a funo
reconhece a varivel Var_Global do workspace:

e d it:

c a p 2 _ _ v a r g l o b a l _ e x e m p l o ,m _______________________

% A rq u iv o : c a p 2 _ v a rg lo b a l_ e x e m p lo
% R e to r n a V a r_ G lo b a l * (m a tr iz i d e n t i d a d e
f u n c t i o n m = c a p 2 _ v a r g lo b a l_ e x e m p lo (n )
g l o b a l V a r_ G lo b a l
m = e y e (n )* V a r_ G lo b a l;

nxn)

Chamada da funo cap2_varglobal_exemplo:

g l o b a l V a r_ G lo b a l

V a r_ G lo b a l= 5 ;
>> c a p 2 _ v a r g l o b a l _ e x e m p l o ( 3 )
ans =
5
0
0
0
5
0
_________0
0
5________________________________________________________________________________

Dicas para utilizao de variveis persistentes e globais:

evite usar variveis persistentes e globais;

se precisar usar de qualquer jeito:


-

evite conflito de nomes (no use nomes como 'x', 'm1, 'i');
utilize whos, clear, isglobal, ispersistent para gerenciar variveis globais e
persistentes.

ui Conceitos

Com relao a escopo de funes:

Quanto a escopo, o MATLAB 7 possui quatro classes de funes: primrias,


auxiliares (subfunctions), 'aninhadas'(nesfec/ functions) e particulares (private
functions).

Funes primrias: contm o cdigo da rotina principal e devem ter o mesmo


nome do arquivo m-file.

Funes auxiliares (subfunctions): um m-file pode conter vrias funes desde


que apenas uma seja a principal e as demais sejam auxiliares:
o escopo das funes auxiliares o prprio m-file, ou seja, subfunes s
podem ser chamadas por outras funes definidas no mesmo m-file no qual
esto contidas;
-

cada funo auxiliar possui seu prprio workspace. As variveis utilizadas em


uma subfunction s existem dentro deste escopo.

Funes 'aninhadas' (nested functions): uma funo pode conter vrias funes
aninhadas. As palavras reservadas function e end indicam, respectivamente, incio
e final de definio de nested function.
edit: cap2__exemplo_.14.nl____________________________________________

% Arquivo: cap2_exemplo_14.m
% Exemplo: item 2.5.8 - nested-function
function m = c a p 2 _ e x e m p l o _ 1 4 ( n )
m = [n ni v e l l ( n - 1 ) ];
function ml = nivell ( nl )
% Funcao aninhada 1
ml = [nl n i v e l2(n-2)];
function m2 = nivel2 ( n2 )
% Funcao aninhada 2
m2 = [n2 n i v e l3(n-3)];
function m3 = nivel3 ( n3 )
% Funcao aninhada 3
m3 = [n3 n 3 - l ] ;
end
end
end
end

Chamada da funo cap2_exemplo_14:


m = cap2_exem.plo_l4 ( 5
m =
5
4
3
2

Funes particulares (private functions): so funes auxiliares codificadas em


m-files diferentes mas que s podem ser acessadas por sua rotina principal. Caso
voc queira que um determinado conjunto de arquivos s seja acessvel por um
arquivo, basta armazenar esses arquivos em um subdiretrio denominado 'private1.

MATLAB 7 - Fundamentos

Com relao a estruturas de programao:

Expresses booleanas: o MATLAB possui caractersticas de linguagem de


programao estruturada e emprega expresses booleanas na implementao dos
testes utilizados pelas estruturas de seleo e repetio para implantar o fluxo de
programao. No MATLAB, resultados de testes lgicos so armazenados em
logical arrays, vetor de bits, que podem assumir valor 0 ou 1:
0 (zero) ou rtil (nulo, vazio) indica condio falsa (F - false)',
1 (um) ou diferente de 0 (zero) indica condio verdadeira (T - true).

Smbolos de testes e operadores booleanos:


Smbolo

(eq)
~= (ne)

< (lt)

> (gt)
<= (le)
>= (ge)
Smbolo
~ (not)
& (and)
1 (or)

Teste
Igual
Diferente
Menor que
Maior que
Menor ou igual
Maior ou igual

Exemplo
1== J (1 igual a J)
1~= J (1 diferente de J)
l<J (1 menor que J)
1> J (1 maior que J)
1<= J (1 menor ou iguala J)
1>= J (1 maior ou igual a J)

Operador
Negao
E
OU

Exemplo de composio
~l ( negao de 1)
1& J (1 e J verdadeiros)
11J (1 ou J verdadeiro)

Alm dos operadores booleanos, o MATLAB possui funes booleanas para vrios tipos
de classes de dados. Por exemplo:
Funes booleanas matriciais:
Funo
isempty
isequal
isnumeric
ischar
issparse

n
j Conceitos

Teste retorna verdadeiro se


matriz M vazia
matriz M1 igual a matriz M2
matriz M numrica
matriz M alfanumrica
matriz M esparsa

Exemplo
isempty(M)
isequal(M1,M2)
isnumeric(M)
ischr(M)
issparse(M)

Funes booleanas de teste de tipo de dado:


Funo
iscell
iscellstr
isfield
isstruct

Teste retorna verdadeiro se


A clula
A clula de cadeia de caracteres
F campo da estrutura S
S estrutura

Exemplo
iscell(A)
iscellstr(A)
istield(S.F)
isstruct(S)

Funes booleanas de tipo numrico:


Funo
isfinite
isint
isnan
isreal

Teste retorna verdadeiro se


N finito
N infinito
N no nmero
N nmero real

Exemplo
isfinite(N)
isinf(N)
isnan(N)
isreal(N)

Estruturas de seleo: utilizam as expresses booleanas como critrio de seleo


do trecho de cdigo a ser executado.

if, elseif, else


if < E x p r .B o o l .1>
<Expressaol>
elseif < E x p r e . B o o l .2>
<Expressao2>
else
<Expressao3>
end

switch
switch <Valor_Teste>
case <Expr_casel>
<Expressaol>
case <Expr_case2>
<Expressao2>
case <Expr_caseI>
<Expressaol>
otherwise
<ExpressaoN>
end

Estruturas de repetio: utilizam as expresses booleanas como critrio de


repetio de execuo de trecho de cdigo.

while
while <Expr.Bool.>
<Express3ol>
<ExpressoN>
end

for
for < V a l o r > = < I n i c >:< I n c r > :<Fim>
<Expressol>
<ExpressoN>
end

Exemplo: funo triangulo_pascal - dado um nmero inteiro n, retorna uma matriz


triangular inferior contendo o desenvolvimento do Tringulo de Pascal at n - 1 .
1

1 1

3"r

n!
r! ( n - r ) i

1
v r J

1 3
3 1
1 4
6 4 1
1 5 10 10 5 1
1 6

15

20 15 6

edit: triangulo_pascal.m
% a = triangulo_pascal(n)
function a = triangulo_pascal (n)
a=eye(n);
% Inicia a com identidade (diagonal composta por 1 1s )
a(:,l)=l;
% Inicia primeira coluna com
l's
for i=3:n
% Cornpoe os demais elementos
for j = 2:i -1
a ( i , j )= a ( i - 1 ,j-1)+a(i-1,j);
end
end

Ao invs de usar a frmula, a funo gera os nmeros do Tringulo de Pascal da


seguinte maneira:
inicia a com matriz identidade n x n (a diagonal composta por 1s);
inicia a 1- primeira coluna de a com 1's;
gera os demais elementos a partir da frmula: a;,,- = ai-i,H + a w j

Conceitos____.
_______________________________________________^83^

Execuo:
a5= tria n g u l o _ p a s c al(5)
a5 =
1
0
0
0
1
1
0
0
1
2
1
0
1
3
3
1
1
4
4
6

0
0
o
0
1

x
\
\

2.8.5. Estatstica de Execuo de Programa


O comando profile do MATLAB 7 permite extrair relatrios com informaes estats
ticas detalhadas de execuo de programa, que podem fazer parte da documentao
de sistemas.
Para utilizar este recurso, digite:

profile on

A partir deste momento, o MATLAB 7 passa a registrar a execuo de todas as


operaes e chamadas de funes executadas na linha de comando. Por exemplo:

m = t r i a n g u l o _ p a s c a l (5000);
cap2_exercicio_08;

Para desativar o comando, digite:

profile off

Para visualizar o relatrio:

profile viewer

4 Profiler
File Edit

Debug

O f f t|
Desktop Window

Help

+ c
Prelims Rur>tHsccrfe; j

1
^ P r o f ile tine: 0 sec

Profile Summary

Generated08-Jun-200418:32:31
Qsli
COM excel application fOoaaue-function)

Total Time i Self Time Total Time Plot


!0.070 s

0.070 s

.9tos do Microsoft Excel 5 0 Intetvalo (Opaque-function)

0 010 s

0 010 s

...soft Excel 10.0 Object Librarv.Sheets fOpaque-functionl

0.010 s

0.010 s

t Excel 10 0 Object Library Workbooks fOpaaus-functionl 2

0.140 s

0.140 s

Os

0 000 s

. Excel 10 0 Obiect l ibrary Worksheet fOpaque-functionl 2

Os

0.000 s

t Excel 10 0 Obiecl Librarv Workbook (Ooaaue-functionl

a c tx s e tY e r........

3 ....

! 0.080 s

MATLAB7-Fundamentos

0 relatrio detalhado por funo. Localize o nome da funo 'triangulo_pascar para


visualizar e examine o relatrio detalhado da funo.
r fo p ]

*}. P r o f i l e r
[ rs e

E dit

D ebug

D eskto p

S ta rt P rotiling

W indow

Help

R i^ i th is code:

iV f i 9

P ro file tim e: 0 s e c

triangulo_pascal (1 call, 9.614 sec)

Generated 08-Jun-200418:35:53
M-function in file c:\matlab7\work\trianaulo pascal.m
[Copy to new window for comparing multiple runs)

H Show parent files

0 Show busy lines

0 Show child files

E l Show M-Lint results 0 Show file coverage 0 Show file listing


Parents (calling functions)
No parent
L ines w h e re th e m ost tim e w a s spent
Line Number

Code

Calls

Total Time % Time

lim e Plot

a(i(])=a(i-l,i-l)+a(i-l,i);

12492501

6 275 s

65.3%

a=eye(r.);

0.431 s

4.5%

end

12492501

0 163 s

1.7%

for j=2:i-l

4998

0.015 s

0.2%

H Inicia

a coa

i . ..

Os relatrios podem ser armazenados em formato HTML. Digite:


>> profsave

'J* Profile S u m f m r y - Microsoft Internet Explorer


Pe

E dit

View

F a v orites

Tods

Media
fcress
-

-1

L -J

L ' >*

f i* - -

C :T>tib7iW orkp r o f:e _ re s iits \ffe 0 .h tm ;


rrA ;-1' PSRSONNAiiTE

Help

X tre n e t

s ?
*

j Goo ale ,%} Yahoo! M a i T he b e s t fre e v*eb-besed e r r '

>y

] Eric W eastern's T reasure Trov es o fS d e n i X


H

This is a static copy of a profile report

i Home
Profile Summary
| G enerated OS-Jun-2004 18:28:31

Fancdoa name

CaBs Total Time Self Time* ! Total Time Plot


(dark band - self time)

COM.excel application (Opaque-tunction)

0.070 s

0.070 s

0.010 s

0.010 s

0.010 s

0.010 S

...t Excel 10.0 Object Librarv.Workbooks (Opaque-function) ; ->

0.140 s

0.140 s

0s

0.000 s

...etos do X'licrosoft ExceI5>0.intervaio(Opaque-function')


...soft Excel 10.0 Object Librarv.Sheets (Opaque-fiinction)

...t

Excel 10.0 Obiect Library. Workbook(Opaque-function) 3

Done

v
-J, M y Com puter

2.9.

Criao de Interface Grfica com Usurio

Neste tpico, apresentamos os conceitos bsicos sobre como desenvolver programas


com interface grfica com usurio.
As explicaes so dadas por meio do desenvolvimento de vrias verses do programa
criado no exerccio 7 do tpico 2.7.2:

Dados de entrada:
-

vetores x e y: coordenadas de pontos;


nmero n: grau de polinmio.

Sada: grfico dos pontos e do polinmio de grau n que melhor aproxima os pontos
dados.

A partir da verso original, criamos trs variaes para ilustrar trs formas diferentes de
desenvolvimento de interface com usurio:
I.

interao por linha de comando (interface no-grfica);

II.

interao por caixa de dilogo;

III.

interao por GUIDE.

0. Verso original: utilizar parmetros de entrada.


edit: cap2_exercicio_07_0.m
% CAPITULO 2 - Geracao de interface grafica
% cap2_exercicio_07_0 (x,y,n): verso original
function c a p 2 _ e x e r c i cio_07_0(x,y,n)
% Calculo dos coeficientes do polinomio
coef=polyfi t (x,y,n);
% Calculo do valor do polinomio
y p = p o l y v a l ( c o e f ,x ) ;
% Exibicao dos pontos e ca reta de aproximacao
p l o t (x,y,'*',x,yp)
t i t l e (['Aproximacao por polinomio de grau ' n u m 2 str(n)])

Execuo com os dados contidos no arquivo 'cap2_dados1 .txt' e grau 3:

m = d l m r e a d ('c a p 2 _ d a d o s l .t x t ');
x = m (:,1)';
y = m (:,2)';
cap2__exercicio_07_0 (x,y,3);

' figure 1
Fiie

Edit

View

In se rt

To d s

D esktop

W indow

Help

o s a a . VQ .<3 if ? < D b

Aproxim3C30 por poiincmio de grau 3

I. Verso 1: utilizao da funo input.


0 modo de interao mais simples o disponibilizado na prpria linha de comando do
MATLAB. A entrada de dados na linha de comando implementada pela funo input,
cuja sintaxe dada por:
dado = i n p u t (1Texto de p r o m p t : ')
Texto de prompt: 10
dado =

10

edit:

cap2_exercicio_07__l .m

% CAPITULO 2 - 2.9. Geracao de interface grafica


% c a p 2 _ e x e r c i c i o_07_l(x,y): verso 1
function cap2_exercicio_07_l (x,y)
% Solicita grau do polinomio:
n = input('Grau do Polinomio: ');
% Calculo dos coeficientes do polinomio
c o e f = polyfit(x,y,n);
% Calculo do v a l or do polinomio
yp=polyva]>tcoef,x) ;
% Exibicao dos^pontos e da reta de aproximacao
p l o t (x,y,,*',x,yp)
t i t l e (['Aproximacao p o r polinomio de grau ' num2str(n)])

Execuo com os dados contidos no arquivo 'cap2_dados1 M e grau 2:


m = d l m r e a d (1c a p2_ d a d o s l .t x t ');
x = m ( : ,1)1;
>> y = m ( :,2)';
cap2_exercicio_07_l (x,y)
Grau do Polinomio: 2

II. Verso 2: funo in putdlg (caixa de dilogo predefinida).


O MATLAB fornece funes muito prticas e de fcil implementao, que exibem
caixas de dilogo e possibilitam a construo de programas com interface com usurio
mais amigvel.
Nesta verso, usamos a funo inputdlg, cuja sintaxe dada por:
dado = i n p u t d l g ('Texto de p r o m p t ' 'Titulo da Caixa')
dado =
'10'
num=dado{l}
n u m =10
Titula da Gwxt*

Observao: a funo inputdlg retorna a informao digitada como uma cadeia de


caracteres (string) armazenada em um cell array. Portanto necessrio converter a
informao para nmero._______________________________________________________
edit:

cap2_exercicio_07_2.m

% CAPITULO 2 - Geracao de interface grafica


% c a p 2 _ exercicio_07_2(x,y): verso 2
function c a p 2 _ exercicio_07_2(x,y)
% Solicita grau do polinomio:
dado = i n p u t d l g (1Grau do Polinomio:
Exemplo Item 2.9');
n=str2num(dado{l>); % Extrai o dado do cell array e converte
% Calculo dos coeficientes do polinomio

MATLAEP 7 - Fundamentos

coef=polyf i t ( x , y ,n);
% Calculo do va l o r do polinomio
yp=p o l y v a l ( c o e f , x);
% Exibicao dos pontos e da reta de aproximacao
plot(X/y, '* 1,X/yp)
t i t l e (['Aproximacao por polinomio de grau ' num2str(n)])

Execuo com os dados contidos no arquivo 'cap2_dados1 .txt' e grau 4:

>>

>>

m = d l m r e a d ( 1c a p2_ d a d o s l .t x t 1);
x = m (:,1)';
y = m (:,2)';
c a p 2 _ e x e r c i c i o_07_2{x,y)

G ra u fio Polinomio:
4

1 <*

| C ancel J

III. Verso 3: interface desenvolvida por GUIDE (Graphic User Interface Design
Environment).
Nesta verso, com o utilitrio GUIDE - Graphic User interface Design Environment,
criamos uma interface grfica com a seguinte interao:

IConceitos

89

0 utilitrio GUIDE auxilia a criao de janelas grficas, compostas por objetos de


interao.
As janelas grficas so armazenadas como arquivos de figura (*.fig), tal qual na figura
anterior, e so utilizadas como 'painis de entrada de dados' para funes callback,
como mostramos a seguir.
Passo 1: Criar o m-file 'cap2_exercicio_07_3.m' que implementada a funo callback
que executa a ao.
edit: cap2_exercicio_07_3,m_________________________________
% CAPITULO 2 - Geracao de interface grafica
% cap2_ e x e r c i c i o _ 0 7 _ 3 : verso 3
function cap2_exercicio_07_3 ()
a r q u i v o = 1c a p 2 _ d a d o s l .t x t 1;
n = 1;
m=dlmread(arquivo);
% Separacao dos dados
x = m (:,1) ';
y = m (:,2)
% Exibicao dos pontos
p l o t ( x , y , '* 1)
% Calculo do a*x + b que aproxima os pontos
co e f = polyfit(x,y,n);
% Calculo do valor do polinomio
yp=p o l y v a l ( c o e f , x ) ;
% Exibicao dos pontos e da reta de aproximacao
plot(x,y, 1* ' ,x,yp)
t i t l e (['Aproximacao por polinomio de grau ' n u m 2 str(n)])

Passo 2: Criar a interface grfica com GUIDE.


A ferramenta GUIDE permite criar objetos de controle de interface com usurio, em
janelas grficas, para implementar caixas de dilogo no estilo 'Visual Basic'.
Para conceber uma nova interface grfica GUIDE, digite:

guide

Create New GUI I Open Existing GUI


GUIDE templates
GUI with Uicontrols
4$. GUI with Axes and Menu
Modal Question Dialog

Q Save on startup as:

BLANK

rio
OK;

I)

Cancel

|[

Help

MATLAEP 7 - Fundamentos

E selecione a opo [Blank GUI (Default)] na pasta [Create New GUI]:

Re

E d it

Vtev*

d :^ i

Laycut

Tods

Help

* m

\ i

Insira dois objetos:

Push Button: cone de acionamento da funo 'cap2_exercicio_07_3';

Axes: eixo no qual o grfico ser exibido.

Conceitos

D um duplo-clique no objeto [Push Button], para abrir o menu de propriedades e


configurar dois itens:

Callback: cap2_exercicio_07_3 (nome da funo);


E i P ro p e rty Inspector
1SO

f l T jf jjX j

uicoM tol (p u sh b u ito fil "O K )

t.- BackeroundCclor
BeingDeleted
\ BusyAction
ButtonDownFcn

(O il

:A

Q queue

CDa!3

s
cap2_exercicio_07_3
Clipping
Son
___ ______________________________________________

String: OK (texto exibido no cone).


E P roperty Inspector

B @ g

S3 uioonirol (pushbuttonl "OK1)


i-'s iid e rs te p

style

[0,01 0,1]
E |OK
E [pushbutton

pushbuttonl
-Tag
j~ TooliipString
!.... UlContextMenu
g |<Nne>
Units
[characters
: UserData

.. Value
[h 1[ 0-01
...Visible
:[ 1on
U............................... ......................... ........... ..................... ...1

Finalize a criao da interface e salve-a por meio da opo [Save As] do menu [File],
Fornea o nome 'Exem plol'.
O MATLAB gera e armazena automaticamente as informaes necessrias para a
composio da interface grfica em dois arquivos:

Exemplol .fig: imagem do painel da interface grfica;

Exemplol .m: cdigo que implementa a interface grfica. O MATLAB abre o


arquivo no editor de texto.
>aUab7vwofk\Exemplo1. m

[*

JfOjfX |

1 File Edit Text CeH Tools Debug Destop Window Hefci

12
3
4
5
6
7

I?

M
l < i % ? 4 Q l stack c ;
fflCDBSp
[function varargout Exemplol (varargin)
fc ZXSHPLOl H-fi le for Exeiuplol.fig
"i
EXEKPL1,
i t s e l f , creates a x-.ew EXEHPL1
raise the existing
singleton*.
M

%
**

!c
%

9
:
10 4
11
%
12
%
13 : *
14
%

*1 C * .

hy

or

H = EXSKPLGi returns the handle to a new EXESPLOl cr the handle to


the existing singleton*.
EXEHPLG1(1CALLBACK1,hOfojet,eventData,handles,...} calls the local
function named CALLBACK in EXEHPLOi.I with the given input argumenta.
EXEPLOl (1Property1, 1Value
creates a new EXEHPLOi or raises the
existing singleton*. Starting trois the left, property value pairs ace
applied to the GUI before Exeajpiol Opening'unction gets called. An

.......v

>
Exem plol

- 3

In

Col 1

MATLAEP 7- Fundamentos

Passo 3: execute o programa com a interface grfica criada pelo GUIDE.


Feche o editor de texto, chame a funo Exemplol e clique em [OK]:

Exemplol

A
%

80
60
40

20
20

40:

60:

100:

OK

IV. Verso 4: vamos incrementar a interface grfica com a incluso de entrada de


parmetros.
Nesta verso, criamos uma interface grfica na qual podemos configurar o grau do
polinmio e o arquivo de entrada. Para isto, alm dos objetos Axes e Push Button,
utilizamos os objetos:

Static Text: texto esttico;

Edit Text: caixa de edio de texto, na qual indicamos o grau do polinmio;

Pop-up Menu: lista de opes, na qual designamos os nomes dos arquivos de


entrada.

Passo 1: Antes de criar a interface grfica, devemos preparar a funo callback para
que ela possa utilizar os parmetros de entradas fornecidos na caixa de dilogo.
A nova funo callback, 'cap2_exercicio_07_4.m', utilizamos:

Dois itens de propriedade de objetos importantes na entrada de parmetros:


-

Tag: identificador do objeto;


Sring: contedo do objeto.

Trs funes:
gcf; retorna identificador da figura corrente;
-

II
1 Conceitos

findobj: retorna o identificador do objeto, dado o contedo de um dos itens de


propriedade. No caso, utilizamos Tag;

get: retorna o contedo do item fornecido;


str2num: converte cadeia de caracteres em nmero.
edit: cap2_exercicio_07_4,m_________________________________
% CAPITULO 2 - Geracao de interface grafica
% cap2_exercicio_07_4: verso 4
function cap2_exercicio_7_4 ()
% Obtem identificador da figura corrente
h=gcf;
% Identifica objeto com Tag = grau
ob j = i ndobj(h,'Tag', 'grau');
% Obtem o contedo do campo 'String'
s t r = g e t (o b j 1,S t r i n g ') ;
% Converte cadeia de caracteres em numero
n=str2num(str )s
% Identifica objeto com Tag = arquivo
obj= f i n d o b j ( h , 'Tag', 'arquivo');
% Obtem o contedo do campo 'o p c o e s '
o p c o e s = g e t ( o b j String'); % Lista de opcoes
indice=get(obj, 'Value');% ndice da opcao selecionada
arquivo=opcoes{indice};

Passo 2: preparar a figura com o GUIDE, tendo como referncia a funo callback
'cap2_exercicio_07_4.m'.
Abra o GUIDE com a figura anterior:

guide Exemplol

Reorganize os objetos Axes e Push Button ao abrir espao para acomodar os novos
elementos.

94 )

MATLAP 7 - Fundamentos

Insira o objeto Static Text duas vezes e altere o campo [String] de cada um deles para:

texto da esquerda: 'Grau do Polinomio1;

texto da direita: 'Nome do Arquivo'.

Introduza o objeto Edit Text no qual vamos digitar o grau do polinmio. Esse objeto
deve ter as seguintes propriedades:

[Tag]: grau;

[String]: 1 (valor inicial).

Insira o objeto Pop-up Menu no qual vamos escolher o arquivo a ser lido.
Esse objeto deve ter as seguintes propriedades:

[Tag]: arquivo;

[String]: {'cap2_dados1.txt' 'cap02_dados2.txt'} (cell array com os nomes - as


opes so digitadas neste campo).

icap2_dados1

Observao: na funo callback, a lista de opes obtida consultando-se o campo String e


o ndice da opo selecionada consultando-se o campo Value._________________________

Modifique o nome da funo callback do objeto Push Button: 'cap2_exercicio_07_4'.


, yUftrtUWhl-rt
CData

i I :
! i
OK

cao2 exerccio 07 4
y on

Clipping

Passo 3: salve a nova configurao de interface por meio da opo [Save As] do menu
[File] com nome 'Exemplo2'.
Modifique os parmetros de entrada: grau do polinmio 2, arquivo 'cap2_dados1.txt'.

Exemplo2

Aproximacao por polinomio de grau 2


1800
1600

yi
/

1400

1200

|1000

/+

800
600
400

200

00

20

G rsu do PolIrtotrtuD f

40

60

80

100

Nome do A rq u w o j cap2_dados2 . -

Todos os arquivos que compem as quatro verses apresentadas neste tpico esto
disponveis no site da Editora rica.

- 3

MATLAfP 7 - Fundamentos

C a p tu lo

Programao

Neste captulo, apresentamos os principais comandos e as principais funes da


linguagem de programao MATLAB 7, com suas sintaxes mais tpicas.
O captulo pode ser utilizado como um manual de referncia para os principais recursos
e funes do programa.
As informaes esto organizadas, basicamente, em trs formatos:
1.

Descrio de Recursos de Utilitrios

Por exemplo, janelas do MATLAB 7 Desktop ou edit esto identificadas por meio de
lista de itens e tabelas nas quais descrevemos os recursos disposio nos menus.
Exemplo:

Descrio das opes do menu pop-up [Windows],


Opes

Contedo

Help
Close All Docum ents
0 Com mand W indow

C trl+ 0

1 Com mand H istory

C trl+ 1

2 C urren t D irectory

C trl+ 2

3 W orkspace

C trl+ 3

4 Help

Gerencia janelas.

C trl+ 4

Editor

C trl+ S h ift+ Q

A c a p2_exem plo_l 1. m

Descrio das opes da barra de ferramentas.


Nome
New m-file
Open file

Programao

leone
D

Ao
Cria arquivos m-file.
Abre arquivos do MATLAB.

0
-

II. Descrio de Grupos de Funes de Mesma Classe


Por exemplo, funes de testes lgicos com cadeia de caracteres esto apresentadas
em forma de tabela.
Funo

Testa se

iscellstr

cell array de strings

ischar

cadeia de caracteres

Exemplo
i s c e l l s t r ('abc 1)
ans =
0
i s c h a r ('a b c ')
ans =

III. Descrio Detalhada de Funes


Por exemplo, funes de lgebra matricial esto pormenorizadas com sintaxe tpica,
descrio dos parmetros e exemplo de utilizao:
^

det

Retorna determinante da matriz.


Sintaxe tpica:

d = det (m)

Parmetros:
Entrada
m: matriz

Sada
d: determinante da matriz

Exemplo (arquivo cap3_det_exemplo.m)


% determinante e' diferente de zero
d e t ([-1 2 3;4 -5 6;7 8 -9])
ans =
360
% determinante zero
d e t ([1 2 3;4 5 6;7 8 9])
ans =

_____ 0________________________________________________________________

3.1. Ambiente MATLAB 7


Este tpico mostra os comandos e recursos relacionados aos aspectos de interface com
usurio (user usability) do ambiente MATLAB 7.

MATLAEP1 - Fundamentos

3.1.1. MATLAB Desktop


MATLAB Desktop nada mais que uma tela de apresentao composta por vrias
janelas de gerenciamento de informaes, 'acomodadas' dentro da janela principal do
ambiente MATLAB 7:

[Command Window]: janela de entrada de comandos;

[Current Directory]: janela de gerenciamento de arquivos;

[Workspace]: janela de gerenciamento de variveis;

[Command History]: janela de gerenciamento de instrues.

Esta a configurao padro da tela do MATLAB 7: Desktop layout default.

Esse arranjo pode ser modificado de acordo com suas necessidades de redimen
sionamento, incluso ou remoo de qualquer uma das janelas.
Principais elementos:
I.

Start Button

cone localizado no canto inferior esquerdo da janela do programa,


semelhante ao menu [Start] do ambiente Windows, abre um menu que
d acesso aos utilitrios e aplicativos instalados no ambiente MATLAB.

[MATLAB]:
exibe utilitrios como Import Wizard e Plot Tools;
caso estejam instalados, aplicativos como Excel Link,
MATLAB Builder for COM.

Programao

Toolboxes
L^j Shortcuts

it

Desktop Tools
Web
Preferences...
($4 Find Files...
^ Help
Q- Demos
0

[Toolboxes]: lista dos Toolboxes instalados;

[Shortcuts]: atalhos (veja o item II);

[Desktop Tools]: gerenciamento de janelas;

[Web]: lista de URLs relacionados com MATLAB;

[Preferences]: aciona o comando preferences (veja o tpico 3.1.2);

[Find Files...]: abre a janela de busca de arquivos (veja o tpico 3.1.2);

[Help]: bre Help Browser (veja o tpico 3.1.2);

[Demos]: abre pasta [Demo] do Help Browser.

II. Shorcuts
Shortcut ('atalho') uma forma prtica de executar um grupo de comandos. De forma
simplificada, podemos definir shortcut como um script-file, cuja chamada pode ser
colocada no menu de opes do [Start Button],
Por exemplo: considere o arquivo 'cap2_exemplo_11.m' apresentado no item anterior,
que cria um elemento struct.
edit: cap2_e:xemplo_ll,m________________________________________________
echo on
% Arquivo: cap2_exemplo_ll.m
% Exemplos do item 2.4.4: Struct
% Cria struct com 1 elemento
s = s t r u c t (1N o m e ', { 1Dolar C o m e r c i a l 1}, 'I d e n ',{'D O L '}, 1V a l o r ',{3.19})
% Cria vetor de struct
s (2).N o m e = 'Ouro 250g';
s (2).I d e n = 'O Z 1 ';
s (2) .Valor=3 9.65;
s(2)
% nome dos campos
campos=fieldnames(s)

Selecione a subopo [New Shortcut], na opo [Shortcut] do [Start Button]:

Labei:
Callback:

cap 2 _e X ernp1 o_ 1 1

Help Browser F avo rite s


Toolbar S hortcuts
W h a t a re Shortcuts?

Category:

leoa-

I S S tandard ic on

S a v e s s h o rtc u t to S tart butto n . S electing "Toolbar S ho rtc u ts "


c a te g o ry also s a v e s to S h o rtc u ts toolbar.

MATLAB7-Fundamentos

E configure as opes do [Shortcut]:

[Labei]: nome (Exemplo);

[Callback]: m-file a ser executado (cap2_exemplo_11 .m).

E clique em [Save] para criar a opo [Exemplo], que pode ser executada.
% Exemplos do item 2.4.4: Struct
% Cria struct co m 1 elemento
s = s t r u c t ('Nome',{'Dolar C o m e r c i a l '},'I d e n ',

1 4 MATLAB
Toolboxes

b _ 2 3

ifgf^ Help Browser Favorites

Desktop Tools 1^ Toolbar Shortcuts


1 0 Web
> $ What are Shortcuts?
\%j Preferences... o
| ^ ] New Shortcut...
Find Files...
Qp Organize Shortcuts...
\0 Heip

s =
Nome: 'Dolar Comercial'
Iden: 'DOL'
Valor: 3.1900

I-.* Demos
| ( 4 S ta rt]

A opo [Organize Shortcuts] abre a janela de gerenciamento de shortcuts.


*) :Shortcuts

Organize

| New Category...

ij 8 .3 Shortcuts

im

j New Shortcut... ;

Help Browser Favorites


| | j Toolbar Shortcuts

J Edit Shortcut...

W hat are Shortcuts?

| Move to Category... J

\E

| Delete Shortcut

| Close j j Help |

III. Web Browser


As telas de interao do MATLAB 7 seguem os padres de Web Browsers, e muitos
recursos de apresentao e publicao de informao fazem uso deste tipo de padro
de interatividade:

Opo [Web] do [Start Button]: lista de URLs relacionadas.


|n
te

j
Desktop Tools > [
V Web
^
^
^ Preferences...

a ta u u a i. .
,ui) !
;
The MathWorks Web Site

if j

Products

(14 Find Files...

0
%

Help

Membership
Technical Support Knowledge Base

Demos

Check for Updates

S tart j

@ MATLAB Central
jjp l MATLAB File Exchange
MATLAB Newsgroup Access

Programao

MATLAB Newsletters

[Help Browser]: utilitrio de help.

File

Edit

D ebug

IJi'O? j :

D esktop

W indow

* ff

Help

''

S Cf

Current D irectory:; c :V natlab7\w ork

S h o rtc u ts

Help
File

la

Edit

View

Go

F avorites

D esktop

W indow

.+

Name

Search I
Release Notes

Contents I index |

camf | IB i f *
& 0
H 3s

fr;

!M

Dem os :
a

In s t a lla tio n

.:

MATLAET

Q Getting Started

a?
Si

-X

Hefci

Examples
l l j Desktop Tools and Development Environme
{ Startup and Shutdown
& Desktop
Overview of the Desktop
$ Arranging the Desktop-Overview

Functions:
By..Categojy

Handle
Graphics:

;:1

In A lp h a be tical O rder o b je c t
"P ro p e rtie s

[P rofiler]: gerador de relatrios de estatstica de execuo (veja tpico 2.8.4).


Profile Summary - Microsoft Internet Explorer
File

E dit

V iew

F a v o rite s

Tools

Help

U 9
, , , f e e : Vnatiab7\!A ork)ro f)le _ re s ts >iie0.htm l
& 3 ^ I A P B * S O W M L I T

$ |] | X tra n e t

G oogle .

| | ] 1 Go
Yahoo! Mai! - T h e b e s t fre e v*eb-based en w r

Eric W eisstein's T re a s u re T ro v e s o f Science

y>

Tfeis is a static copy o f a profile report

Home
P rofile Sum m aiy

Generated 0S-Jun-2004 18:38:31


Function name

Calls Total Time Self Time* Total Time Plot


(dark band = self dine)

COM excel application (Opaque-function)

0.070 s

0.070 s

...etos do Microsoft Excel 5.0.Interval (Opaque-function)

0.010 s

0.010 s

...soft Excel 10.0 Obiect Librarv.Sheets (Opaque-function)

0.010 s

0.010 s

...t Excel 10.0 Obiect Librar/. W orkbooks (Opaque-function)

0.140 s

0.140 s

...t Excel 10.0 Obiect Librar.-. W orkbook (Opaque-function) 3

0s

0.000 s

1
I M y C om puter

[P ublish to HTML]: utilitrio disponvel no edit que publica o cdigo do m-file, bem
como os resultados de sua execuo, em formato HTML.

102

MATLAB 7 - Fundamentos

tit

View

Go

Debug

Desktop

W in dow

Help

Location: ] C:rtnatlab7/work/htmlA:ap2_exemplQ_11 .html


V A r q u iv o ;

I Edit

T ext

...
Open...

Cell

Tools

Debug

........

D esktop

W indow

\ /. a i
Qrl+O

f,

e a p 2 _ e x e w p lo _ X .l.

% E x a ia p lo d o I c e 2 , 4 . 4 : .S e e u c t
% C r i a s t r u c t c o a l i e le m e n t o '
s=struct ( l'K o n e , < 1 P o X a r.- C o m e E C la I 1 > , 1
s ( 2 ) .N o m e = 'O tt tr o 250g;

s(2). I d e n - ' O

Z t 'i

3(2).Valor=39.65;
s(2)

Home: 'Dclsz V&cl


Ztaa; 'SOW.
Valor: 3:1900

IV. Menus Pop-up


Os principais menus pop-up do MATLAB 7 so:
..._____
File

Menu

Edit ; Debug

Desktop

Opes

Window

Help

Contedo
Acesso a arquivos e dados:

I j I I I I Edit
^ :I

D ebug

Desktop

W indow

O p e n ...

C trl+ O

M-File

Open: abertura de arquivos.

Figure
Variable

Close Com mand W indow

Import Data: importao de dados.

Model

Im p o rt D a ta ...
Save W orkspace A s ...

File

New: criao de arquivos.

Selp

:........................................ .....................

C trl+ S

GUI

Save Workspace As: salva


variveis.

S et P a th ,..
P re fe re n c e s ..
Page S etu p..

Set Path: configurao de path.

P rin t...

Preferences: preferncias.

1 c :\...k \c a n ? exem olo l l . m


C trl+ Q

Page Setup, Print: configurao de


impresso.
Edio 'padro Windows':

I | M D ebug

D esktop

W indow

Undo

Undo, Redo.

C trl+ Z

R edo

Edit

Cut, Copy, Paste, Paste Special.

C opy

A lt+ W

Paste

C trl+ Y

Select All, Delete.

C trl+ D

Find: busca palavra na janela


corrente.

Paste Special...
Select All
D elete
Fin d ...
Find F iles...
Clear C om rrand W indow
Clear Com m and History
Clear W orkspace

Programao

Find Files: chama utilitrio de


busca de arquivo.

Instrues de limpeza do contedo de


janela.

Menu

Opes

Contedo
D esktop

w in d o w

Help

< O pe n M-Files w hen Debugging

Debug

Step

F10

S tep In

F ll

S tep O ut

S h ift + F ll

Continue

F5

Clear B reakpoints in All Files


S to p if E rrors /W a rn in g s ...

Instrues de depurao de programa


quando este modo est ativo.
Semelhante ao menu [Debug]
disponvel no edit.

E xit D ebug M ode

W indow

Help

Organizao do layout das janelas:


D efault
Com mand W indow Only

Default: restaura configurao


padro.

Save Layout: armazena


configurao.

Organize Layouts: gerencia layout.

H istory and Com mand W indow


AH Tabbed

</ Com mand W indow

Desktop

v* Com mand H istory


y< C u rre n t D irectory
W orkspace
w Help
Profiler

As outras opes ativam/desativam


exibio de janela.

v* Toolbar
S h ortcu ts Toolbar

>/Titles

Help
Close All Docum ents

Window

0 Command W indow

C trl+ 0

1 Command History

C trl+1

2 C u rren t D irectory

C trl+ 2

3 W orkspace

C trl+ 3

4 Help

C trl+ 4

E ditor

Gerencia janelas.

C trl+S hift+O

A c a p2 _exem plo_l 1 .m

..
Full P ro d u c t Fam ily Help

Opes de acesso a textos de ajuda e


consultas a documentao eletrnica
(manuais) do MATLAB 7 Help
Browser.

MATLAB Help
Using th e Desktop
Using th e Com m and W indow

Help

W eb Resources
C heck fo r U pdates
Dem os
A b o u t MATLA3

V. Barra de Ferramentas
D l" i ^ % S
Nome

^ ; ^

Current Directory: j c:Vrcatlab7\work

V ; ... [t]

Ao

cone

New m-file

Cria arquivos m-file.

Open file

fe 7

Abre arquivos do MATLAB.

Cut, Copy, Paste

Cut, Copy, Paste do Windows.

MATLAB 7 - Fundamentos

Nome

Ao

cone

Undo, Redo

Undo, Redo do Windows.

n*

Simulink

Chama o Simulink.

GUIDE

Chama o comando GUIDE.

Help

Chama Help Browse.r

Current Directory

] c:Vnatlab7\work

Define diretrio de trabalho.

VI. Menus Contextuais


Menu aberto pelo boto direito do mouse. um
menu flutuante cujas opes variam de acordo
com o contexto no quai o menu foi aberto.

Current Directory - c:\matlab7\work

? x

o fiS @0
A IIFifca
[ I B

Por exemplo: indicao, com boto direito do


mouse, do arquivo circuito.m na janela [Current
Directory], abre o menu contextual com opes
de operaes vlidas para o arquivo.

F ile T ,p e

Open

l l c ir c u it;

Run

^ c ir c u it;

View Help

c ir c u it;

[ / $ C irc u it

$ L a s t M o d ifie d

^002 a i
72002

Q002

72002
72004

Open as T e x t
O pen O utside MATLAB

c irc u it;

im p o rt D ata

(2002

c lo c k .;

New

>2001

; ------ 1
C urren t Dt

11

Rename
De)ete

C trl+X
Copy

C trl+ C

File Filter
Add to Path
Refresh

VII. Editor de Programas: Edit


O editor de programas pode ser aberto digitando-se 'edit1 na linha de comando, ou com
qualquer cone dos tipos: LrrJ ou
Editor - c:\mtiab7\work\cap2__exfircic30_7_4,m
File

Edit

Text

n^u
to

&

1
2
3
4
5 6
7 9 10
11

<.
in

Cell

Tools

tu a
-

D ebug

D esktop

W indow

Help

"o. m a /.. -7)fi

[1o ~T*

t l

}; CAPITULO 2 - Geracao ci* interlace yraljica


% cap2__exercicio_07_-{: versa 4
function cap2_exercicio_07_4 ()
H Cbr.era identificador da figuracorrente
h=gcf;
k Iciencxfica cbjeto com Tar = ran
obj=findobj(h,'Tag','gr&u');
% Cktern o conteuuc <:io capc 'String'
str=get(obj ' , 'String*);
% Convex: te cade j.a <le car.ast-eresem nunwirc
n = 3 1 r 2 n u rn (a t r ) ;
c a p 2 _ e x e rc ic io _ 0 7 _ 4

Programao

a B 1) p

iLn

Menus pop-up do edit:

Menu

Opes
I 2 I I I E dit

Contedo

T ext

Cell

Tool?

D ebug

N ew

Acesso a arquivos e dados:


New, Open, Close, Save, Save As.
Publicao de Script-file:
Publish To HTML: exporta o cdigo e o
resultado da execuo em HTML.

Publish To

So u rce C o ntro l

Publish To: outros formatos.


Abertura de arquivos:
Import Data, Save Workspace As.

O p e n ...

C trl+ O

S efeciibn

C H 40

Close E ditor
.Close cap 2_ e xercicio_07_4 .m C trl+W .
S svr
S ave A s ...
S s v * 8
Publish T o HTML

File

Im p o rt D a ta ...
S ave W orksp ace A s ...
S e t P a th ...
P re fe re n c e s ...
P age S e tu p ...
P rin t...

C trl+ P

P ont S s b c f e v E x it MATLAB

Set Path, Preferences: preferncias.

Page Setup, Print: configurao de impresso.

C trl+ Q

U S ' T e x t. Cell h ls o ls . D ebug

De;

U n do
Piidi"}

C rl-V

Cut

C trl+ X

C o py

C trl+ C
. C td t-V

P a s te Spe cia l...


S ele ct All

Edit

C trl+ A

D e le te

D elete

F in d a n d R e p la c e ...

C trl+ F

F in d f t e i

r'4

F in d P rp y h v ?
F in d Selection

C trl+ F 3

F in d File s...
Go To Line

C trl+ G

S e t/C le a r B ookm ark

C trl+ F 2 .

t b f t Bookmark-

nt

Edio 'padro Windows':


Undo, Redo, Cut, Copy, Paste, Paste Special,
Select All, Delete, Find.

Find Files: chama utilitrio de busca de


arquivo.

Go To Line: localiza linha.


Instrues de limpeza do contedo de janela.

PttvSookiiiftrk.
C le ar Com m and W indow
C le ar Com m and H is to ry
C le ar W orkspa ce

rata texto de cdigo:


Evaluate Selection: executa cdigo.
F9

Wrap Select Comment: coloca os textos de


comentrio selecionados em uma s linha.

Com m ent

C trl+ R

Comment: transforma em comentrio.

Uncom m ent

C trl+ T

11111 Cell

Tools /D e b u g

E va lu a te Selection

Desktop

W ra p Selected Com m ents

Text
|

D ecrease In d e n t

C trl+ [

Incre a s e In d e n t

C trl+ ]

Sm art In d e n t

C trl+ I

Uncomment: desfaz Comment.


Decrease Indent: tira um nvel de pargrafo.
Increase Indent: avana um nvel de pargrafo.
Smart Indent: organiza nveis de pargrafo no
cdigo selecionado.

106

MATLAB 7 - Fundamentos ;

Contedo

Menu

ata clula de programao.


Disable/Enable: desabilita/habilita
modo cell.
Evaluate Current Cell: executa clula

atual.
Evaluate Current Cell and Advance:

Disable CeS Mode

Cell

Evaluate Current Cell

Ctrl+Enter

Evaluate Current Cell and Advance

C trl+S hift+E nter j

executa clula atual e avana.

Evaluate Entire File

Evaluate Entire File: executa o arquivo

In se rt Cell Divider

todo.
In se rt Text Markup

N ext Cell

Ctrl+Down

Previous Cell

Ctrl+Up

Insert Cell Divider: insere


Insert Text Markup: insere textos de

comentrio.
Next Cell: vai para a prxima clula.
Previous Cell: retorna para clula

anterior.
erramentas:
Check Code with M-Lint: chama M-Lint.
D ebug

D esktop

Windc

Show Dependency Report: gera


relatrio de dependncias ('quem
chama quem').

C heck C ode w ith M -Lint

Tools

S how D epende ncy R e p o rt


O pe n P rofiler

Open Profiler: gera relatrio de


estatstica de execuo.
D esktop

w in d o w

Help

O pen M T iIe s w hen Debugging

Debug

Step

F10

S tep In

F ll

S tep O u t

S h ift + F ll

C ontinue

F5

G o U ntil C ursor
S et/C le ar Breakpoint

Instrues do modo debug:


i

Step, Step In, Step Out: passo a passo.

Continue, Go Until Cursor: execuo.

Set/Clear Breakpoint: ponto de parada.

Exit Debug Mode: sai do modo debug.

F12

S et/M o d ify Conditional B reakpoint..


E nable/D isable Breakpoint
C lear Breakpoints in All Files
S top if E rro rs /W a rn in g s ...
E xit D ebug Mode

I W indow

Help

V Undock cap2_exerdcio_07_4.m

Desktop

Dock Editor
Editor Toolbar
Cell Toolbar
Docum ent Bar

Programao

Exibe opes anlogas ao menu pop-up


[Desktop] do MATLAB7.

Menu

Opes

Contedo
Help

E B Tile
f T l L e ft/R ig h t Split
H

T o p /B o tto m Split

[ 5 F lo at

Exibe opes semelhantes ao menu pop-up


[Windows] do MATLAB7.
As opes de layout do edit so
apresentadas a seguir.

M axim ize

C ascade Docum ents

Window

Minim ize D ocum ents


Close D ocum ents
0 Com m and W indow

C trl+Q

1 Com m and H istory

C trl+ 1

2 C u rre n t D ire c to ry

C trl+ 2

3 W orksp ace

C trl+ 3

E ditor

C trl+ S h ift+ O

A c a p2 _e xercicio_07_4 .m

MATLAB Help
Using th e M -file Editor

Help

Exibe opes similares ao menu pop-up


[Help] do MATLAB7.

W eb Resources
C h eck'for Updates

Opes da Barra de Ferramentas


U U
O

*! t S |R

'

Nome

10

t
; + ! : 1.1

! X

a d HP 1 0 0

1cep2_exercicio_07_4

v]

ffl D] B S _

___________________________________________________________________________________________

(cone

Ao

New m-file

Cria arquivos m-file.

Open file

&

Abre arquivos do MATLAB.

Save

Armazena arquivo.

% (1

Cut, Copy, Paste do Windows.

Cut, Copy, Paste

Undo, Redo
Print

Undo, Redo do Windows.


a

Procura texto.

Find
Show functions

- 3

Imprime.

f,

Exibe nome das funes.

MATLAEP 7 - Fundamentos

Nome

cone

Ao

Set/Clear breakpoint

Contigura/desconfigura breakpoint.

Clear breakpoint

Desconfigura todos os breakpoints.

Debug

m -M M

Instrues em modo debug.

Tiling

ffl m

Arranjo de layout para vrios arquivos


em edio.

Barra de Ferramenta com Cell mode habilitado:


Nome

leone

Ao

Publish to HTML

Gera relatrio em HTML.

-mo pr i s
m te is

Cell

- ;JTo

Operators

Instrues em modo cell.

i + l "v \ 1.1 ] k Operaes com contedo de variveis.

Cell divisor

Insere/remove delimitadores de clulas.

Opes de layout para vrios arquivos em edio. Por exemplo:

File

Edit ; T e x t

fb l |

Cell

Tools

% ''l-> I H O

Debug

D esktop

W indow

#4

| Q

'*

1 -

fs c h o

*i A r q u i v o : c a p 2 e x e m p l o 0 4 .

,!
y ? X

4 1 K') f i~ - O t i

Stack-

ffl t u B

i<>:

&\n

o il

% C o n c a te n c a o

4 -i

a= [ 1 2 ; 3 4]

5-

b = [1 0

6 -

c = [a

1
................... ....... .........

Help

20

3 0 ;4 0

por
50

I ir t h a
60]

to]

C c n c a te n c a o

8 -

d = [l 2 3]

9 -

e = [d ;b ]

p o r - c o lu n a

10

> cap2_exem plo_01

m * :c*p'2_exemplo _ 0 2 m 'X cap2_exem plo_03.m *


s c rip t

Programao

cep2_exem plo 04 m

x\
Ln

Col

E d ito r

I File

Edit

Or U

Text

i l

Cell

Tools

Debug

Desktop

< I

W indow

Help

fifi

'% 1

* - 1

(sc h o o n

! 2
I 3

X A r q u i v o : c a p 3 ^ c ^ f e V p r c j_ - 4 , in
h C o n c a te n c & o p o r l i n h a

i|

: 4 -

a=[ 1 2 ; 3

4]

; s 6 -

b * [1 0

3 0 ;4 0

1 7 -,

% C a r .c a te n c a o

> 8 -

d = [1

e = [d ;b ]

,i -

c = [a

9 -

20

5 0 .6 0 ]

por

3]

s -

3 e -S

6 -

2 -S i
P i

i|
II

8
9 -

r e a lm in

1 .............. a l r a l s

File

Edit

Text

Ceii

Tools

Debug

D eskicp

W indow

c 2? a \ %,
il S H E i1'!

X
A

n t a o t- r .C O

J l

eps
r e a lm a x
cap2_exem plo_04.m 'x f

T j Z T .................... .... .........................


SI n
........................................................................ .................................... - ...... - .................................

on

11 0

-1 .5

i{

* cap2_exempJo_03 .m

' 10
I ;< cap2_exem plo J31 .m * : ; : cap2_exem plo_02 j n

echo

c o lu n a

! 3* P

% A r e / u i v o : e a p 2 e x i r t p l o _G 1 . ir
% E x e m p lo

1 3 "
!j 4 -

b]

! '1 l

( 'n i
-----------

H , i i il in i

Help

oj e

% a i

5:5 n

11
12
3
4 5 : 6 c a p 2 _ e x e m p io _ 0 l m

echo
Arquivo: cap^cxeispio Oi.m
% Concafcencaopor iinha
a=[l 2:3 1]
b=[10 20 30;40 SO 60}
c = [a

b]

x ; c a p 2 _ e x e m p io _ 0 2 .m

c a p 2 _ e x e m p c _ 0 3 m

Click and drag to m o v e e a p 2 _ e x e m p lo _ 0 m ...

* ; cap2_exem plo_04 rn

sc-k<___________________

VIII. Janela [Current Directory]


Exibe a lista de arquivos contidos no diretrio corrente, com informaes organizadas
em quatro colunas (peias quais os arquivos podem ser ordenados):
[A li Files]: nome do arquivo;
[File Type]: tipo do arquivo;
[Last M odified]: data da ltima modificao;
[D escription]: descrio.
EB

C r r e o i & r c t o f v - : V r w it la b ? \w o r k

a tf j
A li Files -*

cap2_exemplo_01. m
cap2_exemplo_02.m
efr cap2_exemplo_03.m
:[|i cap2_exemplo 04.m
n c ap2_e x emp Io_05. m
Hi cap2_exemplo_06.m
[^c a p 2 exemplo 07.m
i cao2 'exemplo ,08.m

File Type!-

xtSTfre"
M-fiIe
M-file
M-fle
M-file
M-fi Ie
M-file
M-file
,.M-file

La s t M odified

[ D e s c n p ti.. I

10/06/2004 09:55:50 Arquivo...


10/06/2004 09:56:35 Arquivo...
10/06/2004 09:57:27 Arquivo...
10/06/2004 10:02:18 Arquivo...
10/06/2004 10:05:48 Arquivo...
10/06/2004 10:09:44. Arquivo...
10/06/2004 10:11:03 Arquivo...
10/06/2004 10:12:22 ...Arquivo.,.,....

i W o rk s p a c e j C urren t D ire c to ry ] " "

MATLAB 7- Fundamentos.

Opes da barra de ferramenta


cone

Nome

Ao

Go up one level

Vai para o diretrio 'pai1.

New folder

&

Cria um novo subdiretrio.


Chama o utilitrio de busca de arquivo.

Find Files
Show Visual Directory

Muda o modo de visualizao do diretrio (*).

&
:

M
l i a M j ,iivKf ^ '- f - k '^ - ^ e p o r t
TO DO / PI XM r "

Help R eport

Directory Reports

C ontents R eport
?;g D ependency R eport
File Com parison Report

Configura o tipo de relatrio a ser gerado para


o conjunto de arquivos contidos no diretrio.
0 padro chamar a execuo do M-Lint para
verificar a sintaxe dos m-files.

(^3 C overage R eport

Menu contextual
[Current Directory]

(*) Modo 'Visual'

File;; Edit

View

Debug

Deski oc

W indow

help

;i c:Vnatlab7\work

v]

:
. ta

S o rt b y C o n te n ts m

f D S h o w a c t io n s

S h o w file s iz e s

L J S h o w f u n c tio n /s c rip t

us>>3G

S h o w t h u m b n a ils

SCf &&>
I File Type

A:

[ run. c o n te n ts r p t 1 n e w file ]

___ i

|H - ile

f o r E x e m p lo l.f ig

E x e m p lo 2

jM - f ile

f o r E x e m p lo 2 .fig

G r A r u iv o

! r u n e a o G r A r q u i v o ( A R Q U IV O , V E TO R )

c a p 2 e x e a p ln 01

A r q u iv o :

ca j> 2 e x e m p lo 0 2

A r q u iv o :

c a p 2 _ e x e a ip l.o _ 0 1 .B L

cat>2 e x e a p l o 0 3

A r q u iv o :

c a p 2 _ e x e a p lo _ Q 3 .i&

c a p 2 e x e m p lo 0 4

A r q u iv o :

c a p 2 _ e x e a p lo _ D 4 .m

/2002

Run

c irc u it

view Help

c irc u it

Open as Text

b0O2!h
k2002 j
;/2002i;

Open Outside MAUAB

&004

[ ^ c ir c u it

In port Data

jk -l d o c k !

New

/202

------- Renam
e
Cyn-ertW De!ete
I Source Coibol
}................
Ctrl+X
j Cut

c a p 2 _ e x e a p lo _ 0 1 . a

'

c irc u it

Cire Uit

E x e m p lo i

I Last Modified

Open

Copy

>/200i^

Ctrl+C

j__ ___________________

F ie Filter

Add to Path

IX. Janela [Workspace]


Exibe a lista de variveis definidas na janela [Command Window] durante a sesso
corrente. As informaes esto dispostas em trs colunas: Name (nome da varivel),
Value (contedo) e Class (classe). As variveis podem ser ordenadas pelas colunas
Name ou Class.
Depois da execuo dessas instrues, a janela [Workspace] deve conter:

>> clear
>> [m, coef]

= c a p 2 _ e xemplo_13('cap2_ d a d o s l .t x t ','c a p 2 _ s aida.txt);


W orkspace

Name
S c e f

Ml

......... ...

X]

"H. * llE lP llf^ ......I


j Value
I Class
[1.2363 12,423] double
<50x3 double> double

Opes da barra de ferramenta


Nome

Ao

cone

Cria uma nova varivel.

New variable
Open selection

gf

Abre o Array Editor com as variveis selecionadas.

Load data file

Chama o import Data.

ffl ~A

Save

Armazena variveis em arquivo.

Print

Imprime variveis selecionadas.

Delete

Elimina variveis selecionadas.

Plot selection

Escolhe operao para gerao de grfico a partir


das variveis selecionadas.

[ 3 ^ contour (m, coef)


More Plots...

Menu contextual da janela [Workspace]:


4 F ig u re

Name .a

Fie

- 1 1112

E ci

view

u 3

Insert

Teots Desktop window

k c c o

| V alu e

[1 .2 3 6 3 1 2 .4 2 3 ]
3 3 c o i f
I...............iCSily . ..d m ih l Q.>.....
O pe n Selection

33

120\
100

Save A s ...
C opy

C trl+ C

Duplicate

C trl+ D

D e le te

D elete

n L f

i !'AA\ >
60

E dit Value

C u rre r

Hi

b a r (m )

60

Renam e

<___

Help

*: o m

(/'I

'

40

im agesc (m )
c o n to u r (m )
s u rf (m )
m esh (m )

25

0)
I

10

15

20

- 25

30

35

40

45

S3

M ore P lo ts ...

112)

MATLAEP 7 -Fundamentos

X. Array Editor
0 Array Editor exibe o contedo das variveis na janela [Workspace],
ro

s A r r a y E d it o r
nie

E ilt

'

Graphics Defcpjg DesKIop W indow

View#

* ' f i s
t

- \
3
4
2
f
1 2 .4 2 3
1 1 .0 7 1 '"
1 1 .3 9 2
1 4 .9 4 6 '
12 31 4,
i/.4 b y
?r
19997
2 6 .1 0 2 ;
22 515
3.3 1 6 6 !
2 5 .0 3 8
........2 7 0 9 0 ...... .....2 7 .5 6 1 -........
J 084
3 9 .3 1 6 !
34 7 9 8
3 2 607;
38513
35 .1 2 9
36' x a '
37 .6 5 2
4 0 17 6'
4 2 .0 0 6 '
3 6 27
4 2 .6 9 5 ;
ii m Y
I T > 7

.....

2
2 .0 4 0 0 :
3
4. 816;
4
Fi 1 2 24
5;
0 1633
6
1 0 .2 0 4 ]
7 ............12 2 4 5
8 ............. 14 .2 3 6
9
1R y ? 7
10,
18 357:
11 ;
2 0 408!
12
22 443
13
2 4 .4 3 '
il
C " :

? X

H eb

'3. ,.Stck-

4991

>

Os menus pop-up do Array Editor so:


Menu

Opes
l & j t i E dit. View

Contedo
Graphics

D ebug

Des t o p

W indow

M-File
O p e n ...

C trl+ O

Figure

Save

C trl+S

Variable
Model

Close A rra y Editor


Close m

C trl+W

GUI

Acesso a arquivos e dados. Exibe opes


semelhantes ao menu pop-up [File] do
MATLAB 7.

Im p o rt D a ta ...

File

Help

C trl+N

5 a v e W orkspace A s ...

C trl+S

S et P a th ...
P refe re n c e s ...
Page S e tu p ...
P rin t...

C trl+ P

P rint S election...
E xit MATLAB

H !1 1 View :; Graphics

C trl+ Q

Debug

D esktop

Undo

Oxil-Z

Cut

C trl+ X

Copy

C trl+ C

W ind

O r!*y

Pas? ir.xv.nioafca

CfelrfV
xmi w v r t

Paste S pecial...
Select All

Edit

D e le te ,..
Clear C ontents

C re a te Variable fro m Selection


r in d ...
Find Files...

Insert: insere dados.

Delete: elimina dados.

Clear Contents: limpa contedo.

CreateVarlable from Selection: cria


nova varivel a partir da seleo de
valores.

C trl+ A

In s e rt...

'OpftnSi&eiian

Edio 'padro Windows':

D elete

Instrues de limpeza do contedo de


janela.

Clear Com mand W indow


Clear Com mand H istory
Clear W orkspace

Programao

( 113

Menu

Contedo

Opes

s h o r tE
< s h o rtG

Configura formato de exibio de dados


numricos.

. lo n g

View

lo n g E
lo n g G
' hex
bank

Opes de gerao de grficos a partir


dos dados selecionados no Array Editor.

Graphics

1 D e s k to p

W in d o w

H e lp .

y O p e n M -F H es w h e n D e b u g g in g

&P

10
r ii

S tep n

Debug

Stg O -

sh ift

C o ntiftus

R3

Exibe opes semelhantes ao menu


pop-up [Debug] do MATLAB 7.

C le a r B r e a k p o in ts in A ll F ile s
S to p i f E r ro r s /W a r n in g s ...

E x it D eb u g M a te

I W in d o w

H e lp

Mostra opes similares ao menu


pop-up [Desktop] do MATLAB 7.

? U ndock m

Desktop

D o c k A r r a y E d ito r
V A r r a y E d ito r T o o lb a r
D o cu m e n t B ar

Help :

fflT te

H I L e ft/R ig h t Split
R

T o p /B o tto m S p lit

[ 5 F lo a t
</ Q

Exibe opes semelhantes ao menu


pop-up [Windows] do MATLAB 7.
As opes de layout do Array Editor so
apresentadas a seguir.

M a x im iz e

C a s c a d e D o c u m e n ts

Windows

M in im iz e D o c u m e n ts
C lo s e D o c u m e n ts
0 C o m m a n d W in d o w

C t r l+ 0

1 C o m m a n d H is to r y

C trl+ 1

2 C u r r e n t D ir e c to r y

C t r l+ 2

3 W o rk s p a c e

C t r l+ 3

A r r a y E d ito r

C t r l+ S h ift + 3

A F ig u re 1
Bm

MATLAB 7Fundamentos

Menu

Opes

Contedo
ESI
M A T L A B H e lp

FI

U s in g th e A r r a y E d ito r

Help

W e b R e s o u rc e s

Exibe opes similares ao menu pop-up


[Help] do MATLAB7.

C h e c k f o r U p d a te s
Dem os
A b o u t M A T IA B

Opes da barra de ferramenta


I ffl
I

u
*

rrv_
N I

\
im i m

Nome

* | tg g

I sta ck

cone

Ao
a *

Save

Cut, Copy, Paste

EB CD B

Armazena varivel em arquivo.


Cut, Copy, Paste do Windows.

Print

Imprime seleo.

9 ] 0 1 % I Stack:| -
Plot selection]**

ITll br'(m (l:50,2:3))

Plot selection

f
.0.

Escolhe operao para gerao de grfico a


partir dos valores selecionados.

imagesc (m(l:50,2:3))
contour (m( 1:50,2 :3))
surf (m (l:50,2:3)j
mesh (m(l :50,2:3))
More Plots...

Up

No caso de variveis compostas (struct, cell


array), sobe um nvel.

Tiling

ffl m

Fife Edit View Graphics Debug Desktop:Wndow Beis : :


*sj i M M
i
1 f~
2:
2.0408;
4.0816]
4 j .....R1224
8.1633!
6 | " .....10 204!
"iX
12.245!
sJ
141286;
16 3271
.9
! 0 f ......18.367?
.11.]...
20.4081
.....22.449!

&

- X

Slack , \
.........m m B s - p
m *
2~
!.... 3
.
4
" 5
,
6
j ::*i
..........11 07!
12 423
........ 3 9 2 ]...... 14 945:'......................
1 2 3 1 4 ! ..... 17.469:
........26.499!..... 19.9921......................f
26.102!
22 515!
;
...... 3.31 66 !...... ' 25 02 3:...................... !
27.098!
27.561]
]"
......39.315:...... 30.084?......................I '
34.7981
32.607!
: 38.513:
35129
' 36.258: "37.6 52 !
1
........42.006:..... '"43 .1 76 !....................... f "
J _______

Programao

B e E t*

viw ; &aphcs DebugDesktop Window : Help.1!:

& R .

>
.....

Opes de organizao do layout para exibio


de mais de uma varivel.

CZ jS I

Slack. ' >

% :

;|..v

2423'

mz

jim je

11.07]
2.0408;
11 392
4 0816
12 314
6 12241
26 499
8 1 6 3 3 '"
26.102;
10:204?
3 3166"
12.245;
27 098
4.286:
16.327]
34.798!
18.367V ' 38 513{ '
20.408:
36.368=

"39m"

&

19.9:

""225
25$
27.5
30"0:
32.6

S A r ra y F rfito r
fils

Ed* View &sphics Debug Desktop . Window Help


i.

> .($

Stack -

ffl [D B ilf ?

f
3

1.23 63 ...... 12.423:

SCj

6
'?*.

................ : ....................... !....................... [ ................

<.

i
:2
!3
4


2
11.07!
1 i 332:
12.314!
26 499

;
cr2.0408!
4.0816:
6 1224

~TM
3
12.423!
14.946!
17.469!
19 992

6
A

>

i....................

.........................

XI. Janela [Command History]


Janela na qual ficam armazenadas todas as instrues executadas na janela de
trabalho [Command Window],
As instrues ficam armazenadas permanentemente (no so eliminadas aps o
encerramento do MATLAB).
As informaes da janela [Command History] s so eliminadas se o usurio acionar a
opo [Clear Command History] do menu pop-up [Edit] ou a opo [Clear Entire
History] do menu contextual. No caso de dvida, o sistema pede confirmao, pois as
instrues so totalmente perdidas:
C o iw n a a a H is to r y
cap2

Cut

Ctrl+X

Copy

Ctrl+C

X
M

Evaluate Selection
Create M-Fle
Create Shortcut
c ic
c le a r

Profile Code
Delete Selection

Delete to Selection
1 (
Clear Entire History
Cm, c o i e f ] = c a p 2 _ e x e m p lo _ i ; 3 (
:y .
p l o c (m , ' t i s p l a f N o r o e 1 , ' n i 1 ,
>'

Cm, c
% i.-.. j o / 0
|

r f \

A re y o u s u e y o u w a n t to d e a r y o u r com m and h is to ry ?

Q Q

Opes do menu flutuante da janela [Command History]


Opo
Cut, Copy
Evaluate Selection
Create M-file
Create Shortcut
Profile Code
Delete Selection
Delete to Selection
Clear Entire History

116

Ao
Corta/Cola as instrues selecionadas.
Executa o conjunto de instrues selecionadas.
Cria um m-file com as instrues selecionadas.
Cria um atalho com as instrues selecionadas.
Chama o utilitrio profile.
Elimina o conjunto de instrues selecionadas.
Elimina todas as instrues executadas at a instruo selecionada.
Apaga todas as informaes da janela.

MATLAB 7-Fundamentos I

XII. Teclas de Atalho


A maioria das teclas de atalho esto indicadas nas opes dos menus pop-ups.

Programao

Tec la

Ao

Alt+S

abre menu [Start].

Ctrl+0

configura [Command Window] como janela corrente.

Ctrl+1

configura [Command History] como janela corrente.

Ctrl+2

configura [Current Directory] como janela corrente.

Ctrl+3

configura [Workspace] como janela corrente.

Ctrl+4

configura [Help] como janela corrente (se estiver aberta).

Ctrl+A (select all)

seleciona tudo.

Ctrl+C (copy)

copia.

Ctrl+D (duplicate)

duplica.

Ctrl+F (find)

procura.

Ctrl+I (smart indent)

organiza pargrafos de m-files (editor de texto).

Ctrl+N (new)

cria novo arquivo.

Ctrl+O (open)

abri arquivo.

Ctrl+P (print)

imprime.

Ctrl+Q (quit)

fechar sesso e sai do MATLAB 7.

Ctrl+S (save)

salva a rq u ivo .

Ctrl+Shift+O

configura [Edit] como janela corrente (se estiver aberto),

Ctrl+V (paste)

cola.

Ctrl+W

fecha janela [Command History],

Ctrl+X (cut)

corta.

Ctrl+Y (redo)

refaz.

Ctrl+Z (undo)

desfaz.

ESC (escape)

cancela comando em execuo.

F10 (next step)

executa prxima instruo (debug mode).

F11 (step in)

entra na execuo da prxima funo ( debug mode).

F11+Shift (step out)

sai da execuo da funo corrente (debug mode).

F5 (run)

executa a funo at o final (debug mode).

Tab

avana para o prximo campo.

Tab+Ctrl

avana para a prxima janela.

0
-

3.1.2. Utilitrios e Arquivos Especiais


0 MATLAB 7 possui utilitrios e arquivos especiais para facilitar a configurao e o
gerenciamento de arquivos neste ambiente.
I. Utilitrio Preferences
Pode ser executado pela opo [Preferences] do menu pop-up [File] ou pelo comando
Preferences.
Por meio de sua caixa de dilogo, possvel ajustar os parmetros de preferncia do
sistema:

fonte e cor de texto por janela;

cor de fundo por janela;

padres de exibio de informaes.

MAT-Files
Source Control
; Ss Forts
Custom
Colors
s Command W indow
Keyboard & hdenting
Command History
B Editor/Debugger
Display
Keyboard & Indenting
Language
Publishing
Publishing Images
Autosave
Help
Web
Current Directory
Workspace
Array Editor
GUIDE
53 Figure Copy Template
Copy Options
Instrument Control

General Preferences
Toolbox path caching............
P I Enable toolbox path cache
Enable toolbox path cache diagnostics
I Update Toofciox Path Cache

Specify how colored Snes and text w e sent to the prrter


Use printer defaults
O Always send as black and white

O Always send as color


Default behavior o f the delete function
O

Move !ies to the Recycle &n

< 5 Delete lie s permanently

1 OK

1 1 Cancel

| | Apply

Help

II. Utilitrio Pathtool


Pode ser acionado pela opo [Set Path] do menu pop-up [File] ou pelo comando
pathtool.
Por intermdio de sua caixa de dilogo, possvel configurar os diretrios reconhecidos
pelo MATLAB 7:

adicionar novos diretrios;

mover diretrios (mudar prioridade de busca);

eliminar diretrios.

li
1

MATLAB7 - Fundamentos J

A3 ;narjfis Uwe eltect rnneJtatsff

Aod FoCf

WATLABiesr-.hpalh

| Act! w*n Subtoides .

Move Down

Move tc Rottom J

| Remove |
o v j

j I C.lfisB I

I
.. .
.
.....................................
_ J C.Vnatlab7\oolbox\mailab\ops
C:\ni3tlabAtiolbnx\m allab\Jang
C \matlab7\ioolbox\m 3il3b\elm at
C \mallab7\loolbox\m allab\elfun
1 ) C.\rnallab/\lc.>lbux\natld'a\specfun
CJ C .\natIabAioolbox\m allab\m alfun
C:\m atlab7\toolbox\mailab\datafun
C.\m atlab7Mcolbox\fn3il3b\po!yfun
C.\rnatlab7McDlbox\mafIab\iinfun
:2 C:\m allabAloolbox\m ailah\sparfun
'_ j C \ro.itlah7\luulbox\iny|!ab\scribe
C.VnollabAloolbox\nal.ab\graph2d
J C:Vna{lab7Mooibox\mal!3b\graph'J(i
_ J C;VnatlabAtoo'b3x\mat!3b\specgraph
;2 C Ynatlab7\i30ib0x\m ailab\grapfiics
_ J C:Vnatlab7\t50box\m atl3b\uilools
] C \matlah7Mooibo*\matlab\strlur.
C \m atIab7\toolbox\m ailab\imagpsei

L3 C:\m allab7\loolbox\ma1l3b\iofun
; iJ C.\ni3llab7\loolbox'mallob\au<Jiuvi(Ju
;ClJ C:\m al Iab7\leolbox\mat!ab\!imefun
I Dtttmri D

J
i

"-- n

III. Utilitrio Find Files


Pode ser executado pela opo [Find Files] do menu [Start],
Por meio de sua caixa de dilogo, possvel procurar arquivos.
Sua interao semelhante ao comando Search do Windows.
A particularidade do [Find Files] a existncia da opo de busca nos diretrios
definidos no pathtool do MATLAB 7.
nA F in d f ile s j
F ind files n am ed: r

Find files co n tain in g t e x t

Look h:
C u rren t d irec to ry

C lo se j

Help

IV. Utilitrio MATLAB Help Browser


Acionvel pelo cone 1311, este utilitrio abre uma caixa de dilogo semelhante s
janelas de help de aplicativos Windows em geral.
Porm como particularidades do MATLAB Help Browser podemos citar:

Programao

(119

pasta [Contents]: toda a documentao do MATLAB est acessvel em formato


eletrnico nesta pasta;

pasta [Demo]: contm exemplos de utilizao do MATLAB 7.


F8e Edit

View- Go Favorites Desktop Window

Help :

0 | # :(4
Contents [ Index -Search | Demos?

@ Begin Here

m. ^R elease Notes
!B-0 Installation

i [Title: I MATLAB

IMATLAB'

'ti.0 Excel Link


B: 0 MATLAB Builder for COM
H0 MATLAB Builder for-Excel
S ^ MATLAB Compiler
r'0 MATLAB Webserver
S. 0 Bioinformatics Toolbox
s 0 Communications Toolbox
s 0 Control System Toolbox
s 0 Cujve Fitting Toolbox
5; 0 Data Acquisition Toolbox
s 0 Database Toolbox
s '0 Datafeed Toolbox
0 Filter Design Toolbox
Financial Toolbox
i 0 Financial Derivatives Toolbox
$ Financial Time Series Toolbox

Functions:
BiL.Cateao.iy.
8 In

Handle
Graphics:

Alphabetical Order object


Properties

Documentation Set

Getting Started
Introduces MATLAB and gets you
started using it

User Guides

Provides tutorials and comprehensive


information about MATLAB
v List o f User Guides

iOf Fiypri In rn rn p TonlK oy

V. Arquivos Especiais
Os arquivos especiais do MATLAB 7 so m-files, cujos nomes so reservados e
possuem as seguintes propriedades:
Nome do Arquivo

Definio
- E o arquivo de 'inicializao' do MATLAB 7.

matlabrc.m

startup.m

pathdef.m
restoredefaultpath.m

- Contm a configurao padro do MALTAB 7.


- Este arquivo executado quando o MATLAB aberto.
- No recomendvel alterar este arquivo.
- Este arquivo pode ser criado e alterado pelo usurio.
- Se o MATLAB 7 detectar a existncia do startup.m, este arquivo
executado imediatamente aps o matlabrc.m.
- Equivale ao antigo arquivo 'autoexec.bat' do DOS.
Contm a configurao de path padro.
- Este arquivo alterado pelo utilitrio pathtool.
- Restaura o path padro.

MATLAB 7-Fundamentos

3.2. Operaes Matemticas no MATLAB 7


Neste tpico, listamos as principais funes de operaes matemticas disponveis no
programa, organizadas por disciplina.

3.2.1. Funes Matemticas Elementares


Funes Trigonomtricas Elementares
Nome

Retorna

ac o s ,

acosd,

acosh

arco-coseno: radianos, graus e hiperblico

ac o t ,

acotd,

acoth

arco-cotangente: radianos, graus e hiperblico

ac s c ,

acscd,

acsch

arco-cosecante: radianos, graus e hiperblico

as e c ,

asecd,

asech

arco-secante: radianos, graus e hiperblico

as i n ,

asind,

asinh

arco-seno: radianos, graus e hiperblico

at a n ,

atand,

atanh

arco-tangente: radianos, graus e hiperblico


arco-tangente (quatro quadrantes)

atan2(x,y)
cos,

cosd,

cosh

co-seno: radianos, graus e hiperblico

cot,

cotd,

codh

co-tangente: radianos, graus e hiperblico

csc,

cscd,

csch

co-secante: radianos, graus e hiperblico

sec,

seed,

sech

secante: radianos, graus e hiperblico

sin,

sind,

sinh

seno: radianos, graus e hiperblico

tan,

tand,

tanh

tangente: radianos, graus e hiperblico

Funes Exponenciais Elementares


Nome

Retorna

exp(x)

exponencial (ex)

expml(x)

exponencial de x menos (ex - 1 )

l o g (x)

logaritmo natural (In) - base e

loglp(x)

logaritmo natural de x+1 (ln(x+1))

log2(x)

logaritmo na base 2

loglO(x)

logaritmo na base 10

nextpow2(x)

prxima potncia de 2, tal que x < 2n

pow2(x)

potncia de 2

reallog(x)

logaritmo natural real

realpow(x,y)

potncia real x*

sqrt(x)

raiz quadrada

Funes de Nmeros Complexos


Nome

Retorna

a b s (z )

valor absoluto

a n g l e (z )

ngulo em radiano do nmero complexo

c o m p l e x (a,b)

nmero complexo a + bi

conj(z)

conjugado de z

cplxpair(m)

ordena nmeros complexos conjugados

i m a g (z )

parte imaginria de z

isreal(z)

verdadeiro (tru), se o nmero real

real(z)

parte real de z

s i g n (z)

sinal de z

Funes de Arredondamento e Resto


Nome

Retorna

fix( X )

trunca o valor de x (arredonda para zero)

floor(x)

trunca o valor de x para o inteiro mais prximo menor

ceil(x)

trunca o valor de x para o inteiro mais prximo maior

round(x)

trunca o valor de x para o inteiro mais prximo

mod(x,y)

mdulo da diviso x/y

rem (x, y)

resto da diviso de x/y

Exemplos:
Funo

x=1.6

x=-1.6

fix (x)

-1

floor (x)

-2

ceil (x)

-1

round (x)

-2

Nmeros Primos e Fatorao (Matemtica Discreta - Nmeros Inteiros)


Nome

Retorna

factor(n)

decomposio em fatores primos

factorial(n)

fatorial de n

gcd(nl,n2)

mximo divisor comum de n1 e n2

isprime(n)

verdadeiro (tru), se o nmero primo

lcm(nl,n2)

mnimo mltiplo comum entre n1 e n2

nchoosek(n,k)

coeficiente binomial nl / (kl * (n - k)l)

MATLAEP 7 - Fundamentos

Retorna
possveis permutaes dos valores em n
lista de nmeros primos menores que n
frao aproximada de n

Nome
p e r m s (n)
primes(n)
r a t ( n ) , r a t s (n)

Exemplos das funes mod e rem:

Exemplo da funo factor:


>> f = factor(210)
f =
2
3
5

% 210 = 2*3*5*7

Exemplo da funo perms:


>> p e r m s ([1 5 10])
ans =
1
5
10
1
5
10
10
1
5
5
1
10
10
1
5
1
10
5

seis possiveis permutaes

Exemplo das funes rat e rats:

3.2.2. Vetores e Matrizes


Funes de Teste Lgico
Retornam informao de classe lgica: 0 {false) /1 {tru).

Programao_________________________________________________

Nome
isempty(m)
isegual(ml,m2)
isfloat(m)
isinteger(m)
islogical(m)
isnumeric(m)
isscalar(m)
issparse(m)
isvector(m)

Retorna true se:


a varivel vazia
uma varivel igual outra
a varivel numrica de ponto flutuante
a varivel numrica inteira
a varivel lgica (bit 0 /1 )
a varivel numrica
a varivel escalar
a varivel uma matriz esparsa
a varivel um vetor

Informaes bsicas sobre matrizes


Nome
length(m)
ndims(m)
numel(m)
size(m)

Retorna
nmero mximo de elementos por dimenso
nmero de dimenses da varivel
nmero total de elementos
nmero de elementos por dimenso

Operaes e Manipulaes
s

cumprod

Produto acumulado.
Sintaxe tpica:
>> P = cumprod(m)

Parmetros:
Entrada
m: vetor
m: matriz

Sada
P: vetor com produtos acumulados
P: vetor com produtos acumulados por coluna

Exemplo:
>> c u m p r o d ([1 2 3 4 5 )
ans =
1
2
6
24

c u m p r o d ([1 2 ;3 4;5 6] )
ans =
1
2
3
8
15
48

120

MATLAB 7 Fundamentos

cumsum

Soma acumulada.
Sintaxe tpica:

S = cumsum(m)

Parmetros:
Sada
S: vetor com somas acumuladas
S: vetor com somas acumuladas por coluna

Entrada
m: vetor
m: matriz
Exemplo:

15

V
V
o

cumsum ( [1 2 3 4 5] )
ans =
6
10
1
3
[1 2; 3 4; 5 6] )
ans =
2
1
4
6
12
9

diag

Diagonal de matriz.
Sintaxe tpica:

D = diag(m)

Parmetros:
Entrada
m: vetor
m: matriz
Exemplo:

Programao

Sada
D: retorna matriz com os elementos de m na diagonal
D: retorna os elementos da diagonal de m

find

Localiza elementos dentro de uma matriz.


Sintaxe tpica:

ndice = f i n d (Critrio)

Parmetros:
Entrada
Critrio: critrio de localizao

Sada
Indice: vetor com os ndices dos elementos
que satisfazem o critrio

Exemplo:
m=[-l 0 3 0 -5 6; 7 8 0];
find(m) % indice dos elementos diferentes de zero
find(m)
ans =
1
3
5
6
7
8

find(m == 0) % indice dos elementos iguais a zero


ans =
2
4
9
>> find(m<0) % indice de elementos < 0
ans =
1
5

fliplr/flipup

Move elementos da matriz da esquerda para a direita / de cima para baixo.


f;
Sintaxe tpica:
>> ml = fliplr(m)

/ flipup(m)

Parmetros:
Entrada
m: matriz

Sada
m1: matriz com elementos deslocados

Ii
MATLAB 7- Fundamentos j :

Exemplo:

kron

Produto de Kron.
Sintaxe tpica:
>> k = kron(ml,m2)

Parmetros:
Sada
k = matriz com produto de Kron de m1 e m2

Entrada
m1, m2: matrizes
Exemplo:
ml= [1 2 3,-4 5 6]
ml =
1
2
3
4
56
m2= [2
3;4 5]

m2
:
4
kron(ml,m2)
ans =

2
4
8
16

3
5
12
20

3
5

4
8
10
20

6
10
15
25

6
12
12

9
15
18

m ax/m in

Valor mximo /m nim o.


Sintaxe tpica:

v = max(m)

/ min(m)

Parmetros:
Entrada
m: vetor
m: matriz

Sada
v: valor mximo / mnimo do vetor
v: vetor com valores mximos / mnimos por
coluna

Exemplo:
m a x ([1 2; 3 4; 5 6 ] )
ans =
5
6
mi n ( [1 2 ;3 4 ;5 6 ] )
ans =
1
2

prod

Produto dos elementos.


Sintaxe tpica:

P = prod(m)

Parmetros:
Entrada
m: vetor
m: matriz

Sada
P: produto dos elementos
P: vetor com produtos por coluna

Exemplo:
prod( [ 1 2 3 4 5])
ans =
120
prod( 1 2 ;3 4 ;5 6 ] )
ans =
15
48

MATLAB 7-Fundamentos

repm at

Replica matriz.
Sintaxe tpica:

R = repmat(m,

lin, col)

Parmetros:
Entrada
m: varivel
lin, col: nmeros de linhas e colunas

Sada
R: matriz com elementos replicados

Exemplo:
m=[l 2; 3 4]
m =
1
2
3
4
R = r epmat(m,2 , 3 )
R =
1
2
1
3
4
3
1
2
1
3
4
3

% replicar m em 2 linhas e 3 colunas


2
4
2
4

1
3
1
3

2
4
2
4

reshape

Redimensiona matriz.
Sintaxe tpica:

reshape(m,

lin,

col)

Parmetros:
Entrada
m: varivel
lin, col: nmeros de linhas e colunas

Sada
R: matriz redimensionada

Exemplo:
m= [1 2 3 4 5 6; 7 8 9 10 11 12]
m =
1
2
3
4
5
6
7
8
9
10
11
12
reshape(m,3,4)
% dimenses devem ser compatveis
ans =
1
8
4
11
7
3
10
6
2
9
5
12

rot90

'Roda' matriz em 90.


Sintaxe tpica:
>> R = rot90(m)

Parmetros:
Entrada
m: matriz

Sada
R: matriz 'rodada'

Exemplo:
m= [1 2 3 4 5; 6 7 8 9 10]
m =
4
5
1
2
3
9
10
6
7
8
>> rot90(m)
ans 5
10
4
9
3
8
7
2
1
6
m'
% rot90 e' diferente de transposta
ans =
1
6
2
7
3
8
4
9
5
10

sort

Ordena elementos.
Sintaxes tpicas:
>> S = sort(m)
>> S = sort(m, metodo)

Parmetros:

_________
Entrada
m: vetor ou matriz
metodo: 'ascend', 'descend'

______________________________________________
Sada
S: vetor ordenado
S: matriz com colunas ordenadas

Exemplo:

s o r t ([1 3 4 5 2])
ans =
4
5
1
2
3

s o r t ([1 3 4 5 2], 'd e s c e n d 1)


ans =
5
4
3
2
1
m=[5 1 3; 2 4 6]
m =
5
1
3
2
4
6
sort(m)
% Os elementos estao em ordem por coluna
ans =
2
1
3
5
4
6

sortrows

Ordena elementos de matrizes tendo uma coluna como chave de ordenao.


Sintaxe tpica:

S = sortrows(m,

col)

Parmetros:
Entrada
m: matriz
col: ndice da coluna
Exemplo:

sum

Soma dos elementos.


Sintaxe tpica:

S = sum(m)

Sada
S: matriz ordenada

Parmetros:
Sada
S: soma dos elementos
S: vetor com somas por coluna

Entrada
m: vetor
m: matriz
Exemplo:
s u m ( [1 2 3 4 5])
ans =
15
s u m ([1 2;3 4;5 6])
ans =
9
12

S tril/triu
Matriz triangular inferior/superior.
Sintaxe tpica:

R = tril(m)

/ triu(m)

Parmetros:
Entrada
m: matriz
Exemplo:

Sada
R: matriz triangular

Construes Matriciais Elementares

blkdiag

Dadas n matrizes, cria uma matriz com a diagonal formada pelas matrizes fornecidas.
Sintaxe tpica:

R = bkldiag

(ml, m2,

..., mn)

Parmetros:
Entrada
matrizes

Sada
R: matriz 'diagonal'

Exemplo:

eye

Cria matriz identidade.


Sintaxe tpica:

M = eye(n)

/ eye(n,m)

Parmetros:
Entrada
n, m: dimenses

Sada
M: matriz identidade

e a s t

Exemplo:

Programao

S-

linspace

Cria vetor com espaamento linear.


Sintaxe tpica:

V = linspace(Inicio,Final,N)

Parmetros:
Sada
V: vetor com N elementos (se N for omitido, a
funo gera 100 divises)

Entrada
Inicio, Final: intervalo
N: nmero de divises
Exemplo:

V = l i n s p a c e (0,1,5)
0

0.2500

0.5000

0. 7500

1 . 0 0 0 0 eye (2)

logspace

Cria vetor com espaamento logartmico.


Sintaxe tpica:

V = logspace(In,Fi,N)

Parmetros:
Entrada
ln,Fi: intervalo (10ln, 10Fi)
N: nmero de divises

Sada
V: vetor com N elementos (se N for omitido, a
funo gera 50 divises)

Exemplo:
>> V = l o g s p a c e (1,2,5) % 5 divises entre 10^1 a 10^2
V =
10.0000
17.7828
31.6228
56.2341
1 0 0 . 0 0 0 0 V = l i n s p a c e (0,1,5)

m eshgrid

Cria duas matrizes resultantes do cruzamento dos valores dos vetores x e y.


Sintaxe tpica:
I

[mx,my]

= meshgrid(x,y)

MATLAEP 7 - Fundamentos

Parmetros:
Entrada
x, y: vetores

Sada
mx,my: matrizes com vaiores cruzados

Exemplo:
>> x = l : 4 ;
>> y = l :3;
>> [mx,my]=meshgrid(x,y)
mx =
1
2
3
4
1
2
3
4
1
2
4
3
my =
1
1
1
1
2
2
2
2
3
3
3
3
s u r f (mx.*my)

ones

Cria matriz de 1's.


Sintaxe tpica:

M = ones(n)

/ ones(n,m)

Parmetros:
Entrada
n,m: dimenses

Sada
M: matriz de 1's

Exemplo:
o n e s (2,3)
ans =
1
1
1
1

1
1

rand

Cria matriz de nmeros pseudo-aleatrios uniformemente distribudos entre 0 e 1.


Sintaxe tpica:

M = rand(n)

rogramao

/ rand(n,m)

Parmetros:
Sada
M: matriz de nmeros aleatrios

Entrada
n,m: dimenses
Exemplo:
r a n d (2)
ans =
0.9501
0.2311
r a n d (2,3)
ans =
0.8913
0.7621

0.6068
0.4860

0.4565
0.0185

0.8214
0.4447

Observao: a instruo seguinte configura 'semente' para iniciar a gerao de nmeros


aleatrios.

r a n d ( 1S t a t e s u m ( 1 0 0 * c l o c k ) )

/ randn
Cria matriz de nmeros pseudo-aleatrios com distribuio normal entre -1 e 1.
Sintaxe tpica:

M = randn(n)

/ randn(n,m)

Parmetros:
Sada
M: matriz de nmeros aleatrios

Entrada
n,m: dimenses
Exemplo:
r a n d n (2)
ans =
-0.4326
-1.6656

0.1253
0.2877

zeros

Cria matriz de 0's.


Sintaxe tpica:

M = zeros(n)

/ zeros(n,m)

Parmetros:
Entrada
n,m: dimenses

Sada
M: matriz de 0's

Exemplo:

z e r o s (2)

O o

1o

n
3

C onstru es M atriciais Especiais


S

compan

Cria matriz companheira do polinmio dado.


Sintaxe tpica:

M = compan(p)

Parmetros:
Entrada
p: vetor polinmio

Sada
M: matriz cujos autovalores so razes do
polinmio

Exemplo:

P=poly( [ 1

3] )

% coeficiente do polinomio de raizes

P =
1

-6

11

m=compan(p)
m =
6

-11

eig(m)
ans =
3 .0000
2.0000

1.0000

Programao

-6

1,

pascal

Cria matriz de Pascal de ordem n.


Sintaxe tpica:

P = p a s c a l (n)

Parmetros:
Sada
P: matriz de Pascal

Entrada
n: ordem da matriz
Exemplo:

p a s c a l (4)
1
1
1
1

2
3
4

1
3
6
10

4
10
20

3.2.3. lgebra Linear


A n lis e M a tric ia l
s

cond

Retorna condio de inverso da matriz.


Sintaxe tpica:

c = cond(m)

Parmetros:
Entrada
m: matriz

Sada
c: condio de inverso

Exemplo:
m l = [-1 2 3; 4 -5 6; 7 8 -9] ;
cond(ml)
%valor 'pequeno1, ml tem boas condicoes de ser inversivel
ans =
4.3211
m 2 = [1 2 3; 4 5 6, 7 8 9 ] ;
g r a n d e 1, m2 nao tem boas condicoes de ser
cond(m2) %valor
invers1v e 1
ans =
3 . 8131e+016

MATLAB 7-Fundamentos

det

Retorna determinante de matriz.


Sintaxe tpica:

d = det(m)

Parmetros:
Entrada
m: matriz

Sada
d: determinante da matriz

Exemplo (arquivo cap3_det_exemplo.m)

norm

Retorna norma do vetor ou da matriz.


Sintaxe tpica:

n = norm

(m)

Parmetros:
Entrada
m: vetor
m: matriz

Sada
n: comprimento do vetor
n: maior valor singular da matriz

Exemplo (arquivo cap3_norm_exemplo.m)


% normal de vetor
norm([0 1 2 ] ) % s q r t (5)= sqrt(2A2 + 1 ) , comprimento de
ans =
2.2361
%normal de matriz
n o r m ( [-1 2 3;4 -5 6;7 8 -9])
ans 15.0079

i Programao

[0 1 2]

S-

null

Retoma subespao nulo de uma matriz com determinante 0.


Sintaxe tpica:

k = null

(m)

Parmetros:
Sada
k: matriz do subespao nulo

Entrada
m: matriz com determinante 0
Exemplo:
m= [1 2 3; 4 5 6; 7 8 9];
det(m) % determinante e' zero
ans =
0
null(m)
ans =
-0.4082
0.8165
-0.4082

orth

Retorna matriz ortogonal.


Sintaxe tpica:

q = orth

(m)

Parmetros:
Sada
q: matriz ortogonal

Entrada
m: matriz
Exemplo:

m=[-l 2 3; 4 -5 6; 7 8 -9] ;
q=orth(m)

q =
-0.0852
0.1046
-0.4072
-0.9113
0.9094
-0.3982
q' *q % Identidade
ans =
1.0000
-0.0000
-0.0000
1.0000
-0.0000
0.0000

0.9909
0.0611
0.1202

-0.0000
0.0000
1.0000

rank

Retorna posto de matriz (nmero de linhas ou colunas linearmente independentes).


Sintaxe tpica:

p = rank

(m)

Parmetros:
Entrada

Sada

m: matriz

p: posto da matriz

Exemplo (arquivo cap3_rank_exemplo.m)


% posto=dimensao da matriz, entao o determinante e 1 diferente de zero
r a n k ([-1 2 3;4 -5 6;7 8 -9])
ans =
3
% posto me n o r que dimenso da matriz, entao o determinante zero
r a n k ([1 2 3;4 5 6,-7 8 9])
ans =
2

subspace

Retorna ngulo entre os subespaos definidos pelas duas matrizes de entrada.


Sintaxe tpica:

a = subspace

(ml,m2)

Parmetros:
Entrada

Sada

m1, m2: matrizes

a: ngulo em radianos

Exemplo:

m l = [1 1; 1 1];

m 2 = [-1 -1;1

-1];

subspace(ml,m2)
ans =
1.5708 % pi/2 = 90 graus

(planos perpendiculares)

trace

Retorna soma dos elementos da diagonal da matriz.


Sintaxe tpica:

d = trace(m)

Parmetros:
Sada
d: soma dos elementos da diagonal

Entrada
m: matriz
Exemplo:

t r a c e ([-1 2 3;4 -5 6;7 8 -9])


ans =
-15

E q u a o L in e a r
s

inv

Retorna matriz inversa.


Sintaxe tpica:

q = inv (m)

Parmetros:
Entrada
m: matriz

Sada
q: matriz inversa

Exemplo:

m = [-1 2 3; 4 -5 6; 7 8 -9];
q=inv(m)

q =
-0.0083
0.1167
0.2167
-0.0333
0.0611
0.1861
m*q
% Identidade
ans =
0
1.0000
1.0000
0.0000
0
-0.0000
q*m
% Identidade
ans =
1.0000
0.0000
1.0000
0
0
-0.0000

0.0750
0.0500
-0.0083

-0.0000
0.0000
1.0000

0
-0.0000
1.0000

MATLAEP 7 - Fundamentos

linsolve

Resolve sistema de equaes lineares, A*x = B.


Sintaxe tpica:
|

X = linsolve(a,b)

Parmetros:
Entrada
a: matriz
b: vetor, tal que a * x = b

Sada
x: resultado do sistema

Exemplo:

lu

Decomposio LU (triangular inferior e superior).


Sintaxe tpica:
>>

[L,U] = lu(m)

Parmetros:
Entrada
m: matriz

Sada
L: matriz triangular inferior
U: matriz triangular superior

Exemplo:

Programao

m=[-l 2 3; 4 -5 6; 7 8 -9];

[L,U]=lu(m)
L =
-0.1429
-0.3284
1.0000
0.5714
1.0000
0
1.0000
0
0
U =
7.0000
8.0000
-9.0000
0
-9.5714
11.1429
5.3731

pinv

Retorna matriz pseudo-inversa para matriz com determinante igual a zero.


Sintaxe tpica:

q = pinv(m)

_____________________________________________

Parmetros:
Sada
q: matriz pseudo-inversa

Entrada
m: matriz
Exemplo:

m=[l 2 3; 4 5 6; 7 8 9];
q=pinv(m)

% det(m)

= 0

-0.1667
0.3056
-0.6389
0.0556
-0.0556
0.0000
-0.1944
0.1667
0.5278
>> m*q*m'
% m = m*q*m' - propriedade da pseudo-inversa
ans =
7.0000
1.0000
4.0000
8.0000
5.0000
2.0000
6.0000
9.0000
3.0000

qr

Decomposio ortogonal-triangular.
Sintaxe tpica:

[Q,R]

= qr(m)

Parmetros:
Entrada
m: matriz

Sada
Q: matriz ortogonal
R: matriz triangular

Exemplo:
>> m = [-1 2 3; 4 -5 6; 7 8 -9] ;

[Q,R]=qr(m)

[Q,R] =qr (m)


Q =
% Ortogonal (det(Q) = 1)
0.2895
0.9492
-0.1231
0.8127
0.3117
0.4924
0.0425
0.8616
0 .5057
R =
8.1240
4.1851
-5.1698
8.6882
-8.5592
0
5.1004
0
0

MATLAB 7 - Fundamentos

Autovalor, Autovetor

eig

Retorna autovalores e autovetores (usados para o clculo de potncia de matriz).


Sintaxe tpica:

[V,D]

= eig(m)

Parmetros:
Sada
V: matriz de autovetores
D: matriz diagonal de autovalores

Entrada
m: matriz

CO

Exemplo:
-J

m=[-l 2 3 ; 4 -5 6;

[V, D] =eig (m)


% m * V = V * D
V =
-0.6019
-0.1182
-0.5250
-0.5918
0.7045
-0.4929
0.8620
-0.6116
0.3760
D =
% as diagonais sao autovalores de m
4.7494
0
0
-5.2152
0
0
0
0 -14.5343

poly

Dada uma matriz m, retorna os coeficientes do polinmio caracterstico de m:


det(Hambda-m) = 0.
Sintaxe tpica:

P = poly(m)

Parmetros:
Entrada
m: matriz

Sada
P: vetor com os coeficientes do polinmio
caracterstico de m

Observao: o primeiro elemento do vetor contm o coeficiente de maior grau:


P(t) = P (1)*t3 + P (2)*t2 + P (3)*t + P(4).__________________________________________

polyeig

Retorna as razes do polinmio caracterstico de m: det(Hambda-m) = 0.


Sintaxe tpica:

R = polyeig(m)

Parmetros:
Sada
R: vetor contendo as razes do polinmio
caracterstico de m

Entrada
m: matriz

Exemplo:
m=[-l 2 3; 4 -5 6; 7 8 -9];
D=polyeig(m)
% Auto-valores de m
D =
4.7494
-5.2152
-14.5343

mm
l|

svd

Retorna decomposio em valores singulares (U,S,V) tal que m = U*S*V'.


Sintaxe tpica:
I

[U,S,V]

= svd(m)

Parmetros:
Entrada
m: matriz

Sada
U: matriz unitria, det(U)=1
S: matriz diagonal com os valores singulares
V: matriz unitria, det(V)=1

Exemplo:
m= [-1 2 3; 4 -5 6; 7 8 -9];

[U,S,V]=svd(m)
U =% U matriz unitaria, det(U)=l
-0.0852
0.1046
0.9909
-0.4072
-0.9113
0.0611
0.9094
-0.3982
0.1202
S =
% S matriz diagonal

MATLAB 7-Fundamentos

15.0079
0
0
6.9064
0
0
0
0
3.4732
V =
% V matriz unitaria, det(V)=1
0.3213
-0.9466
0.0274
0.6090
0.2287
0.7594
-0.7251
-0.2273
0.6500

3.2.4. Anlise de Dados e Transformada de Fourier


O peraes Bsicas
y

cumtrapz

Soma acumulada 'trapezoidal' (integral por rea de trapzio).


Sintaxe tpica:

S = cumtrapz(m)

Parmetros:
Entrada
m: vetor
m: matriz

Sada
S: vetor com somas acumuladas
S: vetor com somas acumuladas por coluna

Exemplo:
cumtrapz( [ 1 2 3 4 5
ans =
0
1.5000

)
4.0000

7.5000

c u m t r a p z ([1 2 ;3 4 ;5 6] )
ans =
0
0
2
3
6
8

mean/median/std/var

Mdia, mediana, desvio padro e varincia.


Sintaxe tpica:

12.0000

Parmetros:
Entrada

Sada

m: vetor

v: mdia/mediana/desvio padro/varincia dos valores no vetor

m: matriz

v: mdia/mediana/desvio padro/varincia por colunas

Exemplo:
m e a n ( [1 2 3 4 5])
ans =
3
m e a n ( [1 2 ;3 4 ;5 6 ] )
ans =
4
3
m e d i a n ([1 2;3 4;5 6])
ans =
4
3
s t d ( [1 2 ;3 4 ;5 6 ] )
ans =
2
2
v a r ([1 2 ;3 4 ;5 6] )
ans =
4
4

trapz

Integrao discreta (trapezoidal).


Sintaxe tpica:
>> R = trapz(m)

Parmetros:
Entrada

Sada

m: vetor

R: integral discreta do vetor

m: matriz

R: integral discreta por coluna

Exemplo:
a r e a ( [ 1 2 1 3 1])
R=trapz([l 2 1 3 1])
R =
7

MATLAB 7 Fundamentos

Diferenas Finitas
^

diff

Diferenas finitas.
Sintaxe tpica:

D = diff(m)

Parmetros:
Entrada
m: vetor
m: matriz
Exemplo:

Programao

Sada
D: vetor de diferenas finitas: m(i)-m(i-1), i=2 a n
D: vetor de diferenas finitas por coluna

gradient

Diferenas finitas parciais.


Sintaxe tpica:

G = g r a d i e n t (m)

Parmetros:
Sada
G: matriz de diferenas finitas parciais

Entrada
m: matriz

Exemplo (arquivo cap3_gradient_exemplo.m):


% Gerar superficie
[X,Y]=meshgrid(- p i :0.2:pi,-pi:0.2:pi) ;
Z = c o s ( X ) .*Y;
% Calculo do gradiente
% Derivadas parciais da curva
[PX,PY]=gradient(Z,0.2, 0.2) ;
% Visualizacao dos resultados
s u b p l o t (2,1,1)
s u r f (Z)
t i t l e ('Su p e r f i c i e )
s u b p l o t (2,1,2)
c o n t o u r (Z)
hold
Current p lot held
quiver(PX,PY)
t i t l e (1G r a d i e n t e s ')

Gradientes

Superfcie

I30
25

20

10
5

Correlao

corrcoef

Retorna matriz de coeficiente de correlao.

MATLAB 7 - Fundamentos

Sintaxe tpica:

C = corrcoef(m)

Parmetros:
Entrada
m: matriz

Sada
C: matriz de coeficiente de correlao

Exemplo:
m=[-l 2 3; 4 -5 6; 7 8 -9] ;
corrcoef(m)
ans =
-0.6547
1.0000
0.3296
-0.9295
0.3296
1.0000
1.0000
-0.6547
-0.9295

COV

Retorna matriz de covarincia.


Sintaxe tpica:

C = cov(in)

Parmetros:
Entrada
m: matriz
Exemplo:
>> m = [-1 2 3; 4 -5 6; 7 8 -9];
cov(m)
ans =
8.6667
16.3333
-21.0000
8.6667
42.3333
-48.0000
-21.0000
-48.0000
63.0000

C onvoluo e Filtros
/ conv
Retorna multiplicao de polinmios.
Sintaxe tpica:
>> C = conv(p,q)

Sada
C: matriz de covarincia

Parmetros:
Entrada
p, q: coeficientes de polinmios

Sada
C: coeficientes do polinmio resultante da
multiplicao

Exemplo:
p=[l 2 3]; % (x"'2 + 2*x + 3)
q=[l 1] ;
% (x + 1)
C=conv(p,q)
C =
1
3
5
3 %
(x~3 + 3*x~2 + 5*x + 3)

deconv

Retorna diviso de polinmios.


Sintaxe tpica:

D = deconv(p,q)

Parmetros:
Entrada
p, q: coeficientes de polinmios

Sada
D: coeficientes da diviso
R: coeficientes do resto

Exemplo:
p=[i 2 3]; % (xA2 + 2 *x + 3)
q= [1 1] ; % (x + 1)
% p = D*q + R

[D,R] =deconv(p,q)
D =
1
1 % (x + 1)
R =
0
2 % 2
0

filter

Aplica filtro nos valores fornecidos.


Sintaxe tpica:

Y = filter(b,a,X)

MATLAB 7 - Fundamentos

Parmetros:
Entrada
b, a: coeficientes dos polinmios b/a
X: valor a ser filtrado

Sada
Y: valores depois da aplicao do filtro

Exemplo (arquivo cap3_filter_exemplo.m):


% Gerar sinal c om frequencias 15 e 50 Mhz
t=0:0.01:pi;
s=sin(15*t)+sin(50*t);
[b,a]=ellip(4,10,20,0.5);
fs=filter(b,a,s);
p l o t (t ,s ,t ,fs)

Transformada de Fourier
v'

fft

Retorna transformada discreta de Fourier.


Sintaxe tpica:

Y = fft (X)

Parmetros:
Entrada
X: vetor de valores do sinal

Programao

Sada
Y: valores da transformada

[ 153

Exemplo (arquivo cap3Jft_exemplo.m - retirado do Tutorial do MATLAB 7)


% cap3_fft_exemplo ()
echo on
% Gerar sinal co m frequencias 50 e 120 Mhz
t = 0:0.001:0.6;
x = s i n ( 2 * pi*50*t)+sin(2*pi*120*t);
ys = x + 2 * r a ndn(size(t));
s u b p l o t (1,2,1)
pl o t ( 1 0 0 0 * t ( l : 5 0 ) ,y s (1:50))
t i t l e (1Sinal co m ruido')
% Transformada de st
Y = fft( y s ,512);
% Conjugado de Yst
Pyy = Y-* conj(Y)' / 512;
s u b p l o t (1,2,2)
f = 1000*(0:256)/512;
p l o t (f ,P y y (1:257))
t i t l e (1F r e q u e n c i a 1)

ifft

Retorna inversa da transformada discreta de Fourier.


Sintaxe tpica:

X = ifft(Y)

Parmetros:
Entrada

Sac,' ,

Y: valores da transformada

X: valores do sinal

Exemplo:
% Apos executar cap3_ fft_exemplo:
% ys, contem o sinal
% Y, contem a transformada
ysi = ifft(Y);
% Sinal obtido pela inversa
p l o t ([1:length ( y s ) ],y s ,[1:length(ysi)],y s i )

MATLAB 7-Fundamentos

3.2.5. Polinmios
S

poly

Dado um vetor R, retorna os coeficientes do polinmio cujas razes so os elementos


de R,
Sintaxe tpica:

P = poly(R)

Parmetros:
Entrada
R: vetor

Sada
P: coeficientes do polinmio cujas razes esto em R

Exemplo:
p l = p o l y ( [-1 1 2])
pl = % x~3 - 2*x~2 - x + 2, tem raizes -1,1,2

1 - 2 - 1

Observao: se a funo poly recebe uma matriz, o retorno o polinmio caracterstico da


matriz, conforme apresentado no item anterior.

Dmgramao

polyder

Dado um vetor P com coeficientes de um polinmio, retorna os coeficientes da derivada


do polinmio.
Sintaxe tpica:

PI = polyder(P)

Parmetros:
Entrada
P: coeficientes do polinmio

Sada
P1: coeficientes da derivada

Exemplo:

P=[l -2 -1 2] ;
Pl=polyder(P) % derivada de x~3 - 2*x"2 - x + 2 = 3*x~2 - 4*x -1
PI =
3
-4
-1

/ polyfit
Aproximao por polinmio. Dados dois vetores X e Y, e um escalar g, retorna o
polinmio de grau g que melhor aproxima os pontos dados por (X,Y).
Sintaxe tpica:

P = polyfit(X,Y,g)

Parmetros:
Entrada
X: vetor de coordenadas X dos pontos
X: vetor de coordenadas Y dos pontos
g: grau do polinmio

Sada
P: coeficientes do polinmio de aproximao

?!

Exemplo (arquivo cap3_polyfit_exemplo.m)


% Pontos (X,Y)
x = l :10;
y= [2 3 3.5 3.5 3 3 2.5 2.5 3 4 ] ;
% Polinomio de grau 3
p3=polyfit(x,y,3)
p3 =
0.0291
-0.4808
2.2780

0.1667

MATLAEP 7 - Fundamentos ;

polyint

Dado um vetor P contendo coeficientes de um poiinmio, retorna os coeficientes da


integrai do polinmio.
Sintaxe tpica:

PI = polyint(P)

Parmetros:
Entrada
P: coeficientes do polinmio

Sada
P1: coeficientes da integral

Exemplo:

P = [3 -4 -1];
Pl=polint(P) % x^3 - 2*x/'2 - x

1
S

- 2 - 1

polyval

Avalia polinmio. Dado um vetor P, que contm coeficientes de um polinmio, e um


vetor X de valores, avalia polinmio para cada valor fornecido.
Sintaxe tpica:

Y = polyval(P,X)

Parmetros:
Entrada
P: coeficientes do polinmio
X: vetor de coordenadas X

Sada
Y: valores do polinmio calculados em cada
valor em X

Exemplo (arquivo cap3_polyval_exemplo.m)


% Pontos

(X,Y)

X = 1 :10;

y = [2 3 3.5 3.5 3 3 2.5 2.5 3 4 ] ;


% Polinomio de grau 3
p3=polyfit(x,y,3);
% Valores p ara avaliacao do polinomio
x n = l i n s p a c e (1,10,20);
% Avaliacao do polinomio
y n = p o l y v a l ( p 3 ,x n ) ;
% Visualizacao dos resultados
p l o t ( x , y , 1 : 1,x n , y n , 1r 1)
l e g e n d (1Pontos 1, 1Polinomio *)

|Programao

(157

Dado um vetor P com coeficientes de um polinmio, retorna as razes.


Sintaxe tpica:

R = r o o t s (P)

Parmetros:
Entrada
P: vetor de coeficientes do polinmio

Sada
R: razes do polinmio

Exemplo:

roots([l -2 -1 2])

-1.0000
2.0000

1.0000

3.2.6. Interpolao
S

griddata

Interpolao de superfcie por 'gradeamento' (ajuste de pontos no espao). Dadas as


matrizes (X, Y, Z) de pontos no espao e (XI, Yl) pontos de interpolao, e um mtodo
de interpolao, retorna uma matriz Z1 com valores que formam a superfcie (XI, Yl, Zl)

..............

MATLAEP 7 - Fundamentos

que melhor aproxima os pontos no espao dados por (X, Y, Z), de acordo com o mtodo
solicitado.
Sintaxe tpica:

ZI = g r i d d a t a (X,Y,Z,X I ,YI , m e t o d o ) ;

Parmetros:
Entrada
X, Y, Z: matrizes tipo meshgrid
XI, YI: matrizes tipo meshgrid
metodo: 'linear', 'cubic', 'nearest', 'v4'

Sada
ZI: coordenada Z para todos os pontos
definidos por (XI,YI)

Exemplo (arquivo cap3_griddata_exemplo.m)


% Pontos no espaco
[X,Y]=meshgrid([1:5],[1:5]) ;
Z = r a n d n (5);
% Pontos de interpolacao
[XI,YI]=meshgrid([1:0.2:5],[1:0.2:5]);
% Superficie de interpolacao
Z I = g r iddata(X,Y,Z,XI,YI,'cubic');
% Visualizacao dos resultados
s u b p l o t (1,2,1)
s u r f (X,Y,Z)
t i t l e (1Pontos do espaco')
s u b p l o t (1,2,2)
s u r f (XI,YI,ZI)
t i t l e ('Superfice i n t erpoladora')

Pont os do sspaco

Superlice interpoladora

interpl

Interpolao de pontos (ajuste de pontos no plano). Dados os vetores (X, Y) de pontos


no espao e XI valores de interpolao, e um mtodo de interpolao, retorna um vetor
Y1 com valores que formam a curva (XI, YI) que melhor aproxima os pontos no plano
dados por (X, Y), de acordo com o mtodo solicitado.

Programao

Sintaxe tpica:

Y = interpl(X,Y,XI,metodo) ;

Parmetros:
Entrada
X, Y: vetores de coordenadas
XI: vetor com valores de interpolao
metodo: linear1, 'cubic', 'nearest1, 'spline',
'pchip', 'vcubic'

Sada
YI: valores interpolados para todos os
elementos de XI

Exemplo (arquivo cap3Jnterp1_exemplo.m)


% % Pontos no plano
x = l :10;
y = r a n d ( l ,10);
% Pontos de interpolacao
x i = l i n s p a c e (1,10,50);
% Curva de interpolacao
yi = i n t e r p l ( x , y , x i ,'c u b i c ');
% Visualizacao dos resultados
p l o t ( x , y , 1:',x i ,y i ,'r ')
l e g e n d ( 1Pontos 1, Interpolacao C u b i c a ,0)

interp2

Interpolao de superfcie (ajuste de pontos no espao). Dadas as matrizes (X, Y, Z) de


pontos no espao e (XI, YI) pontos de interpolao, e um mtodo de interpolao,
retorna uma matriz Z1 com valores que formam a superfcie (XI, YI, Zl) que melhor
aproxima os pontos no espao dados por (X, Y, Z), de acordo com o mtodo solicitado.

MATLAB 7-Fundamentos

Sintaxe tpica:

ZI = interp2(X,Y,Z,XI,YI,metodo) ;

Parmetros:
Entrada
X, Y, Z: matrizes tipo meshgrid
XI, Yl: matrizes tipo meshgrid
metodo: linear', 'cubic1, 'nearest', 'v4'

Sada
ZI: coordenada Z calculada para todos os
pontos definidos por (XI,Yl)

Exemplo (arquivo cap3Jnterp2_exemplo.m)


% Pontos no espaco
[X,Y] = m e s h g r i d ( [1:5], [1:5]);
Z=cos(pi+randn (5));
% Pontos de interpolacao
[XI,Y I ] = m e s h g r i d ( [1: 0.2 :5], [1:0 .2 :5]);
% Superficie de interpolacao
Z I l =griddata(X,Y,Z,XI,Y X , 'cubic');
ZI2=interp2(X,Y,Z,XI,Y I , 'cubic');
% Visualizacao dos resultados
s u b p l o t (1,2,1)
p l o t 3 ( X , Y , Z , 'o')
hold
Current plot held
su r f ( X I , Y I ,Z I 1 )
t i t l e (1Superfice G RID D A T A ' )
s u b p l o t (1,2,2)
plot3(X,Y , Z , 'o')
hold
Current plot held
s u r f ( X I ,Y I ,Z I 2 )
t i t l e ('Superfice I N T E R P 2 ')

Observao: na figura obtida no exemplo possvel observar que as funes griddata e


interp2 trabalham com os mesmos parmetros de entrada mas processam interpolaes
diferentes.

Programao

interpft

Interpolao de pontos no plano com mtodo FFT (Transformada Rpida de Fourier).


Dado vetor X de valores no plano e escalar n, retorna vetor Y com n valores que
interpolam os valores dados em X.
Sintaxe tpica:

Y = in t e r p ft(X,n);

Parmetros:
Entrada
X: vetor de valores
n: nmero de valores a serem calculados

Sada
Y: valores interpolados por FFT

Exemplo (arquivo cap3_interpft_exemplo.m)


% Pontos no plano
x = r a n d (1,20);
% 100 pontos de interpolacao
y = interpft(x,100);
% Visualizacao dos resultados
p l o t (linspace(1,100,20), x,
l i n s p a c e (1,100,100),y)
l e g e n d (1P o n t o s ',11 n t e r p f t ',0)

Fie

d t

View laser:

!co!s ektoc Vender

heb

Q a s ;> ' r n ' QPi

ppvaf

Avalia spline. Dado um struct com informaes da spiine (retorna da funo spline) e
um vetor X, retorna um vetor Y que contm os valores da spline calculada para todos os
valores em X.

MATLAEP 7- Fundamentos

Sintaxe tpica:

Y = ppval(S,X);

Parmetros:
Entrada
S: struct da spline
X: vetor de valores

Sada
Y: valores da spline

Exemplo (arquivo cap3_spline_exemplo.m)


% Pontos no plano
x = l :10;
y = r a n d ( l ,10);
% Calculo dos coeficientes da spline
S=spline(x,y);
% Pontos de interpolacao
x s = l i n s p a c e (1,10,100) ;
% Calculo dos valores da spline
ys=ppval(S,xs);
% Visualizacao dos resultados
p l o t (x,y,':',x s ,y s , 'r 1)
l e g e n d (1P o n t o s ', 'Spline 1,0)

sp lin e

Interpolao de pontos no plano com mtodo de spline. Dados os vetores (X,Y) de


valores no plano e escalar n, retorna um struct contendo os polinmios de grau 3 que
compem a curva spline de aproximao.
Sintaxe tpica:

S = s p l i n e (X,Y);

Programao

Parmetros:
Entrada
X,Y : vetores com dois pontos

Sada
S: struct com as informaes da spline

Exemplo:

x=l:10;
y=rand(l ,10) ;
s=spline(x,y)

form:
breaks :
coefs :
pieces :
order:
dim:
s.coefs
ans =
0.0523
0.0523
-0.3502
0.4610
-0.2375
-0.2539
0.4357
-0.0668
-0.0668

'pp'
[1 2 3 4 5 6 7 8 9 10]
[9x4 double]
9
4
1
% Coeficientes dos nove polinomios de grau 3 que
% compoem a curva spline
0.0384
-0.4983
0.4514
0.1954
-0.2644
0.0439
0.3524
0.2833
0.0272
-0.6983
-0.0625
0.3127
0.6847
-0.0761
0.0129
-0.0278
0.5808
0.3840
-0.7895
-0.2365
0.6831
0.5176
-0.5084
0.0928
0.3173
0.3266
0.0353

3.2.8. Converso de Sistemas de Coordenadas


Funo

Converso de
coordenada

cart2sph(x,y,z)

cartesiana para esfrica

cart2pol(x,y)

cartesiana para polar

pol2cart(p,r)
% p: angulo
% r: distancia

poiar para cartesiana

sph2cart(t,p,r)
% t : angulo e m X Y
% p: angulo de XY
% r: distancia

Exemplo

[t,p,r]=cart2sph(1,1,1)
t = % angulo no plano XY
0.7854
p = % angulo com plano XY
0.6155
r = % distancia
1.7321

[p,r]=cart2pol(1,1)
p = % angulo
0.7854
r = % distancia
1.4142

[x,y]=pol2cart(p,r)
x =

1.0000
y =
i

[x,y,z]=sph2cart(t,p,r)
x =
1

esfrica para cartesiana

1.0000

z =

1.0000

Exemplo (arquivo cap3_cart2pol_exemplo.m):


% Converte coordenada cartesiana p ara polar
x = - p i :0.1:p i ;
[p,r]=cart2pol( cos(x),s in(x));
polar(p,r)
s u b p l o t (1,2,1)
plot (cos (x) ,sin(x) )
t i t l e ('Coord.c a r t e s i a n a ')
s u b p l o t (1,2,2)
polar(p,r)
t i t l e ('Coord.p o l a r ')

3.2.8. Mtodos Numricos No-lineares


Equaes Diferenciais Ordinrias
Solvers de equaes diferenciais do tipo y' = f(t,y) disponveis no MATLAB:

odel 13: solver de equaes diferenciais non-stiff de ordem varivel;

ode15s: solver de equaes diferenciais stiff de ordem varivel;

ode23: solver de equaes diferenciais non-stiff de ordem baixa;

ode23s: solver de equaes diferenciais stiff de ordem baixa;


Programao

ode23t: solver de equaes diferenciais de ordem baixa (regra trapezoidal);

Parmetros:
Entrada

Sada

funcao': m-file que implementa a equao

t: vetor de tempo
y: resultados da equao a cada instante

[Tinicial Tfinal]: tempos inicial e final


Condlnic: vetor de condies iniciais

Exemplo (no arquivo cap3_ode45_exemp!o.m): modelar um 'bungie jum p' de forma bem
simplificada, considerando apenas as foras indicadas no esquema:

Elasticidade
k*y

Trao
b*y +

f
m
^

Peso m g

y =g - k/m y - b/m * y'

em que:

y: deslocamento em relao ao ponto de fixao da corda;

m: massa do corpo;

g: acelerao da gravidade;

k: constante de elasticidade da corda, dependente do deslocamento (y);

b: constante de trao, dependente da velocidade (y1);

Inicialmente, consideramos:
Varivel
g (acelerao da gravidade)
m (massa do corpo)
k (constante de elasticidade da corda)
b (constante de trao)
Tinicial (tempo inicial)
Tfinal (tempo final)
Condlnic (y e y' iniciais)

166 )

Valor
9.8
60
0.1
1.0
0
1000
[0 0]

MATLAB7- Fundamentos j

A funo cap3_fbungie1 codifica a equao diferencial:


edit: cap3 _ f b u ngiel.m
function yp = cap3_fbungiel (t,y)
% y (1) 1 = y (2)
% y(2) ' = g - (k/m) * y (1) - (b/m) * y(2)
g = 9.8;
% aceleracao da gravidade
k= 0.1;
% fator de elasticidade
b = 1.0;
% fator de tracao
m= 6 0;
% massa
K = k/m;
B = b/m;
yp= [y (2)
g - K * y(l) - B*y(2) ] ;

A funo cap3_ode45_exemplo1 chama o solver ode45 para funo cap3_fbungie1.


edit: cap3_ode45_exemplol.m_________________________
% cap3_ode45_exemplol ()
function cap3_ode45_exemplol ( )
Tinicial=0;
Tfinal=1000;

Condlnic=[0 0] ;
[t,y]=ode45('cap3_fbungiel1,[Tinicial Tfinal],Condlnic);
subplot(2,1,1)
plot(t,-y(:,1));
title(1Deslocamento 1)
subplot(2,1,2)
p l o t (t,y(:,2));

title('Velocidade')

De acordo com os retornos armazenados da funo cap3_fbungie1, a funo ode45


retorna em y uma matriz com duas colunas:

y(:.1): 1 coluna armazena o deslocamento do corpo;

y(:,2): 2- coluna armazena a sua velocidade.

cap3_ode45_exemplol

Programao

167

Os solvers tambm aceitam rotinas com passagem de parmetros. Nesta segunda


verso, a funo cap3_ode45_exemplo2 recebe trs parmetros de entrada, que so
repassados para o solver ode45 com para funo cap3_fbungie2:

m: massa do corpo;

k: constante de elasticidade da corda, dependente do deslocamento (y);

b: constante de trao, dependente da velocidade (y1).

A funo cap3_fbungie2 codifica a equao diferencial com parmetros:


e d i t : cap3_fbungie2.m________________________
function yp = cap3_fbungie2(t,y , flag,m,k,b)
% y (1)' = y(2)
% y (2) ' = g - (k/m) * y(l) - (b/m)
* y (2)
g = 9.8;
% aceleracao da gravidade
% k = fator
de elasticidade
% b = fator
de tracao
% m = massa
K = k/m;
B = b/m;
yp=[y(2)
g - K * y(l) - B * y (2)];

Observao: o parmetro flag necessrio para manter a compatibilidade de chamada de


funo.__________________
A funo cap3_ode45_exemplo2 chama o solver ode45 para funo cap3_fbungie2,
com os parmetros m, k e b.
edit: cap3_ode45_exemplo2.m
function cap3_ode45_exemplo2(m,k,b)
Tinicial=0;
Tfinal=1000;
Condlnic=[0 0];
tt,y ] = o d e 4 5 ('c a p 3 _ f b u n g i e 2 1, [Tinicial T f i n a l ],C o n d l n i c , [ , m,k,b);
s u b p l o t (2,1,1)
p l o t (t ,- y ( :,1));
t i t l e ('D e s l o c a m e n t o 1)
s u b p l o t (2,1,2)
p l o t ( t , y (:,2));
t i t l e ('Velocidade')

Chamamos cap3_ode45_exemplo2 com:


Varivel
m (massa do corpo)
k (constante de elasticidade da corda)
b (constante de trao)

cap3_ode45_exemplo2

(80,0.2,0.5);.

Valor
80
0.2
0.5

Este o resultado para os novos parmetros:

Otimizao

fminbnd

Dada uma funo f(x) e um intervalo, retorna x tal que f(x) mnimo no intervalo.
Sintaxe tpica:

[xmin,fxmin]

= f m i n b n d (1f u n c a o x O ,x l )

Parmetros:
Entrada

Sada

'funcao': implementa f(x)

xmin: valor para o qual f(x) mnimo

x0,x1: intervalo

fxmin: valor mnimo def(x)

Exemplo, funo f(x) = x+sin(2*x)+cos(4*x) (arquivo cap3_funcao1 .m):


edit: cap3_funcaol.m________
% funcao cap3_funcaol
function Y = cap3_funcaol(x)
y = x+sin(2*x) + c o s (4*x);

Chamamos a funo fminbnd para obter o valor mnimo da funo cap3_funcao1 nos
intervalos de [0,1.5] e [1.5, 3] (arquivo cap3_fminbnd_exemplo.m):

Programao

( 169

edit: cap3_fminbnd_exemplo.m
% cap3_fminbnd_exemplo ()
function ca p 3 _ f m i n b n d_exemplo( )
% x l , f x l : minimo no intervalo [0,1.5]
[xl,fxl]=fminbnd('c a p 3 _ f u n c a o l ,0,1.5);
% x2, f x 2 : minimo no intervalo [1.5,3]
[x2,f x 2 ] = f minbnd(1c a p 3 _ f u n c a o l 1,1.5,3);
% Visualizacao do resultado
x = 0 :0.1:pi;
plot(x,cap3 _ f u n c a o l ( x ), ... % Funcao
xl,fxl,'r*', ... % minimo entre [0,1 .5]
x 2 ,f x 2 ,'r o ')
% minimo entre [1.5 ,3]
l e g e n d ('F u n c a o ',...
'Minimo entre [ 0 , 1 . 5 ] 'Minimo entre [1.5,3],0)

fzero

Dada uma funo f(x) e um xO inicial, retorna x tal que f(x) = 0.


Sintaxe tpica:
>> xO = f z e r o (1funcao',xinic)

Parmetros:
Entrada

Sada

'funcao1: implementa f(x)

xO: valor tal que f(xO) = 0

xinic: valor inicial de x

Exemplo, funo f(x) = x-4*sin(x)+cos(x) (arquivo cap3_funcao2.m):


edit: cap3_funcao2.m
% funcao cap3_funcao2
function y = cap3_funcao2(x)
y = x-4*si n ( x ) + c o s ( x );

MATLAEP 7-Fundamentos

Chamamos a funo fzero para obter o x tal que cap3_funcao2 = 0, iniciando a busca
a partir de 0 e a partir de 2 (arquivo cap3_fzero_exemplo.m):
edit:

cap3_fzero_exemplo.m

% cap3_fzero_exemplo ()
function cap3 _ f z e ro_exemplo(
% x l : busca a partir de 0
xl = f z e r o ('c a p 3 _ f u n c a o 2 ',0) ;
% x 2 : busca a partir de 2
x l = f z e r o ('c a p 3 _ f u n c a o 2 1,2);
% Visualizacao do resultado
x = 0 :0.1:2 * p i ;
p l o t (x,cap3_funcao2(x), ... % Funcao
x l ,0,'r * ', ... % busca a partir de 0
x 2 , 0 , 1r o ')
% busca a partir de 2
l e g e n d (1F u n c a o ',...
'Busca a partir de 0 ' , 'Busca a partir de 2',0)

optimset

Configura parmetro de funes de otimizao.


Sintaxe tpica:

optim = optimset

( 'Param', Valor)

Parmetros:
Entrada

Sada

'Param': parmetro

optim: estrutura de dados que contm os


parmetros de otimizao

Valor: valor a ser configurado

Programao

Exemplo:
o p t i o n = o p t i m s e t (1M a x l t e r 1,10)
option =
Display
[]
MaxFunEvals
[]
Maxlter
10
TolXInteger
TypicalX

[]

[]

A funo optimset sem parmetros retorna a estrutura de dados. Esta forma muito
utilizada com as funes fzero e fminbnd.
fminbnd e fzero tambm aceitam funes com passagem de parmetros.
Sintaxe:

[xmin, fxmin] = f m i n b n d ('funcao',xO,xl,optimset,p l , p 2 ,...)


>> xO = f z e r o ('funcao',xinic,optimset,pl,p2,...)

Onde p1 ,p2,..., so parmetros de entrada da funo a ser otimizada.


Exemplo, funo f(x) = x-a*sin(x)+cos(b*x) (arquivo cap3_funcao3.m):
edit: cap3_funcao3.m
% funcao cap3_funcao3
function y = cap3_funcao3(x,a,b)
Y = x-a*sin(x) + c o s ( b * x);

Execuo: usar os parmetros a=2 e

de

de

b-4

x = 0 :0.01:2;
y=cap3_funcao3(x,2,4);
x z e r o l = f z e r o (1c a p 3 _ f u n c a o 3 1,0,optimset,2,4); % Buscar zero a partir
0
xzero2 = f z e r o (1c a p 3 _ f u n c a o 3 1,1,optimset,2,4) ; % Buscar zero a partir
1
p l o t (x,y,xzerol, 0 , r o ,xzero2, 0 , 1b * 1)

optimget

Obtm os valores configurados nos parmetros de funes de otimizao.


Sintaxe tpica:

valor = optimget

( option,

'Param')

Parmetros:
Entrada
option: estrutura que contm os parmetros
'Param': parmetro

Sada
Valor: valor do parmetro

Exemplo:
o p t i m g e t (option,'Maxiter1)
ans =
10

Integrao Num rica


/

quad/q uadl

Dada uma funo f(x) e um intervalo, retorna a integral numrica f(x) no intervalo.
Sintaxe tpica:

q u a d ( 1f u n c a o ' ,x0,x l )

quadl

1f u n c a o 1,x 0 ,xl

Parmetros:
Entrada
'funcao': implementa f(x)
x0,x1: intervalo

Sada
q: integral numrica

Exemplo, funo f(x) = x+sin(2*x)+cos(4*x) (arquivo cap3_funcao1 .m).

g = q u a d (c a p 3 _ f u n c a o l 1,0,2)

% integral de f(x) entre 0 e 2

q =
3.0742

Para visualizar a rea calculada (arquivo cap3_quad_exemplo.m):


x = 0 :0.1:2;
x = - l : 0.05:3;
x q = 0 :0.05 :2 ;
y=cap3 _ f u n c a o l ( x ) ;
yq=cap3_funcaol (xq) ;
p l o t (x,y)
a r e a (xq,yq)

Programao

- /fig u r e 1
File

E d* ; View

Insert Tools Oeskiop Window

D^HiU

Help

O:'* O S Io O

Observao: a funo quad utiliza um mtodo de ordem baixa, e a quadl, de ordem alta.

dblquad

Dada uma funo f(x,y) e um intervalo, retorna a integral numrica dupla de f(x,y) no
intervalo.
Sintaxe tpica:

d = d b l q u a d ('f u n c a o x m i n , x m a x , y m i n , y m a x )

________________________

Parmetros:
Entrada
'funcao1: implementa f(x,y)
xmin,xmax,ymin,ymax: intervalo

Sada
d: integral numrica dupla

Exemplo, funo f(x,y) = cos(x)+cos(y) (arquivo cap3_funcao3.m):


edit: cap3_funcao3.m
% funcao cap3_funcao3
function z = cap3_funcao2(x,y)
z = cos (x) H-cos (y) ;

Integral de f(x,y) entre [-1,-1] e [1,1]

______

_____

____

d = d b l q u a d (1c a p 3 _ f u n c a o 3 1,-1,1,-1,1)
d =
6.7318

MATLAB 7-Fundamentos

d=6.7318 o volume objeto no interior da superfcie exibida na figura.


echo on
% cap3_dblquad_exemplo.m
d = d b l q u a d ( 'c a p 3 _ f uncao3',-1,1,-1,1)
x= - 2 :0 .1: 2 ;
y = - 2 :0.1:2;
[X,Y]=meshgrid(x,y);
x d = - l :0.1:1;
y d = -1:0.1:1;
[XD,Y D ] =meshgrid ( xd,yd);
Z = c o s(X)+cos(Y);
Z D = C O S ( X D ) + C O S (YD);
s u r f (X,Y,Z)
a l p h a (0.4)
hold
w a t e r f a l l (XD,YD,ZD)

3.2.9. Matrizes Esparsas


Matrizes Esparsas Elementares

spdiags

Cria matriz esparsa de banda a partir de todas as diagonais no-nulas da matriz dada.
Sintaxe tpica:

S = spdiags(a)

Parmetros:
Entrada
a: matriz

Sada
S: matriz esparsa diagonal

Exemplo:
a = [1 2 3;4 5 6;7 8 9]
a =
1
2
3
4
5
6
7
8
9
% cada coluna de S e ' uma diagonal de a
S=spdiags(a)
S =
7
4
1
0
0
0
8
2
5
0
0
0
9
6
3

Programao

v'

speye

Cria matriz esparsa de identidade.


Sintaxe tpica:

S = speye(n)

speye(n,m)

Parmetros:
Entrada
n,m: dimenses

Sada
S: matriz esparsa de identidade

Exemplo:

S = s p e y e (100);
a=eye(100);
whos
Name
Size
S
100x100
a
100x100

sprand/sprandn

% Observe a diferenca de tamanho


Bytes
Class
1604
double array (sparse)
80000
double array

Cria matriz esparsa com nmeros aleatrios (distribuio uniforme/distribuio normal).


Sintaxe tpica:

S = sprand(n,m,D)

/ sprandn(n,m,D)

:::
Parmetros:
Entrada
n,m: dimenses
D: densidade entre 0 e 1

Saida
S: matriz esparsa de nmeros aleatrios

Exemplo:

S = s p r a n d ( 1 0 0 ,200,0.0001)

s =
(85,45)
(27,59)

0.2832
0.2259

% matriz 100x200 com apenas 2 elementos

Observao: a densidade D indica, aproximadamente, a proporo entre nmeros aleatrios


gerados e o total de elementos da matriz esparsa.

S full
Converte matriz esparsa em matriz comum.

MATLAB 7 - Fundamentos

Sintaxe tpica:

a = f u l l (S)

Parmetros:
Entrada
S: matriz esparsa

Sada
a: matriz comum

Exemplo:
S=sprand(100,200,0.OOOl)
OJ _
i

0.2832
% matriz 100x200 com apenas 2 elementos
(85,45)
(27,59)
0.2259
>> a=full S ) ;
% Converte S para matriz comum
whos
% Observe a diferena de tamanho
Name
Size
Bytes
Class
S
100x200
828
double array (sparse)
a
100x200
160000
double array

sparse

Converte matriz comum em matriz esparsa.


Sintaxe tpica:

S = s p a r s e (a)

Parmetros:
Entrada
a: matriz comum

Sada
S: matriz esparsa

Exemplo:

a=eye(500);
S = s p arse(a);
whos
Name
Size
S
500x500
a
500x500

Bytes
8004
2000000

Class
double array (sparse)
double array>>

Manipulao de Matrizes Esparsas

issparse

Verifica se a matriz esparsa.

Programao

et

Sintaxe tpica:

issparse(a)

Parmetros:
Entrada

Sada

a: matriz

true se matriz for esparsa

Exemplo:

nnz

Retorna quantos elementos diferentes de zero a matriz esparsa contm.


Sintaxe tpica:

n = nnz(S)

Parmetros:
Entrada

Sada

S: matriz esparsa

n: nmero de elementos diferentes de zero

Exemplo:
S = s p r a n d (100,100,0.1);
nnz(S)
ans =
945

nonzeros

Retorna um vetor comum com todos os elementos diferentes de zero da matriz esparsa.
Sintaxe tpica:

v n = nonzeros(S)

178 )

MATLAEP 7 - Fundamentos

Parmetros:
Entrada

Sada

S: matriz esparsa

vn: vetor de elementos diferentes de zero

Exemplo:
S = s p r a n d (100,200,0.0001);
nnz(S)
ans =

2
V=nonzeros(S)
V =
0.6519
0.7082

spfun

Executa a funo para os elementos diferentes de zero da matriz esparsa.


Sintaxe tpica:

s p f u n (funcao,S)

Parmetros:
Entrada

Sada

funcao: funo a ser executada

matriz resultado

S: matriz esparsa

Exemplo:
S = s p r a n d (1000,2000,0.001);
nnz(S)
ans =

2000
>> tic;f= e x p ( S ) ;toc
Elapsed time is 0.320000 seconds.
t ic;f=spfun(@exp,S);toc
% Executa em menos tempo
Elapsed time is 0.050000 seconds

spones

Substitui os elementos no-nulos por 1's.


Sintaxe tpica:

Parmetros:
Entrada

Sada

S: matriz esparsa

S1: matriz com as substituies

Exemplo:
S = s p r a n d n (100,200,0.0001)
S =
(28.2)
-0.4326
(91.108)
-1.6656

spones(S)
ans =
(28.2)
1
(91.108)
1

spy

Gera visualizao grfica dos elementos no-nulos da matriz esparsa.


Sintaxe tpica:

spy(S)

Parmetros:
Entrada
S: matriz esparsa

Exemplo:

>>

s p y (sprand(100,100,0.01))
t i t l e ('Densidade 0.01')
s u b p l o t (1,2,2)
s p y ( s p r a n d (100,100,0.001)'
t i t l e (1Densidade 0.001')

Sada

3.3. Programao
Neste tpico, listamos os principais elementos e recursos referentes linguagem de
programao do MATLAB 7.

3.3.1. Estrutura e Tratamento de Dados


Classes

class

Retorna a classe do dado: logical, char, double, single, int8, int16, int32, etc.
Sintaxe tpica:
c = c l a s s (m)

Parmetros:
Entrada
m: varivel

Sada
c: classe

Exemplo:
n=pi;
c l a s s (n)
ans =
double

Classe
logical
char
double
single
int8
uint8
int16
uint16
int32
uint32
int64
uint64
cell
struct
Drogramao

Tipo de Dado
lgico (0 ou 1) / (verdadeiro ou falso)
alfanumrico
preciso dupia
preciso simples
inteiro 8 c/ sinal
inteiro 8 s/ sinal
inteiro 16 c/sinal
inteiro 16 s/ sinal
inteiro 32 c/ sinal
inteiro 32 s/ sinal
inteiro 64 c/ sinal
inteiro 64 s/ sinal
cellarray
struct

Bytes
1
1
8
4
1
1
2
2
4
4
8
8
-

Testes lgicos com classes:


Funo

Testa se

isa

da classe dada

iscell

cell array

isequal

igual

isfield

campo de struct

isfloat

nmero com ponto flutuante

isinteger

nmero inteiro

iskeyword

palavra reservada da
linguagem MATLAB

islogical

varivel lgica

isnumeric

numrico

isreal

nmero real

isscalar

escalar

istruct

struct

isvarname

pode ser nome de varivel

isvector

vetor

Exemplo
i s a ( p i , 'd o u b l e ')
ans =
1
i s c e l l ({1 2 3})
ans =
1
i s e q u a l ([1 0;0 l],eye(2))
ans =
1
s = s t r u c t ('I d ',{1D ' 1Z });
isfield(s, 1I d 1)
ans =
1

isfloat(pi)
ans =
1

isinteger(int8(pi))
ans =
1
i s k e y w o r d ('function')
ans =
1
i s l o g i c a l (pi > 0)
ans =
1
isnumeric(3+i)
ans =
1
isreal(3+i)
ans =
0
isscalar(pi)
ans =
1
s = s t r u c t ('I d ',{'D ' 'Z '});
isstruct(s)
ans =
1
i s v a r n a m e ('c a p 3 1)
ans =
1
i s v a r n a m e ('1231)
ans =
0
isve c t o r ( e y e (2))
ans =
0

Cadeia de Caracteres

(String,Char)

Testes lgicos com cadeia de caracteres:

Exemplo

Funo

Testa se

iscellstr

cellarray de strings

ischar

cadeia de caracteres

isletter

letra

isspace

espao em branco

strcmp
strncmp

uma cadeia igual a outra

strcmpi
strncmpi

uma cadeia igual a outra


(sem diferenciar letras
minsculas de maisculas)

>> i s c e l l s t r ('a b c ')


ans =
0
i s c h a r ('abc 1)
ans =
1
i s l e t t e r ('a b c l 2 1)
ans =
1
1
1
0
0
>> i s s p a c e (112 34')
ans =
0
0
1
0
0
>> s l = 'C a d e i a l 1;
>> s 2 = 'C a d e i a 2 1;
s trcmp(sl,s 2 )
ans =
0
s l = 'C a r a c t e r e ';

s 2 = 'c a r a c t e r e ';
>> s t r c m p i (s l ,s2 )
ans =
1

blanks

Cria cadeia de espaos em branco.


Sintaxe tpica:
str = blanks(n)

Parmetros:
Entrada

Sada

n: nmeros de espaos

str: cadeia de espaos em branco

Exemplo:
str=['123'
str =
123
45

b l a n k s (2)

'45']

char

Converte varivel numrica em cadeia de caracteres (cdigo ASCII).

Sintaxe tpica:
str = char(m)

Parmetros:
Sada
str: cadeia de caracteres

Entrada
m: varivel numrica
Exemplo:
c h a r ([65 66 67])
ans =
ABC

/ cellstr
Cria um cellarray a partir de uma matriz de cadeia de caracteres.
Sintaxe tpica:
cel = cellstr(str)

Parmetros:
Sada
cel: cell array

Entrada
str: matriz tipo char
Exemplo:
s t r = [ '12345'; 1A B C D E ';
cel=cellstr(str)
cel =
'12345'
'A B C D E '
1X X X y y '
whos
Name
Size
cel
3x1
str
3x5

'XXXyy'],

Bytes
210
30

Class
cell array
char array

datestr

Converte data em nmero real para cadeia de caracteres.


Sintaxe tpica:
str = datestr(data)

Parmetros:
Entrada
data: nmero real

Sada
str: data em cadeia de caracteres

Exemplo:
data=now
data =
7.3211e+005
datestr(data)
ans =
12-Jun-2004 03:16:17_________________________________

deblank

Elimina espao em branco de final de cadeia de caracteres.


Sintaxe tpica:
str = deblank(m)

Parmetros:
Entrada
m: string ou cell array

Sada
str: m sem brancos no final

Exemplo:
' '2 brancos no final
cel = { '3 brancos no final
cel =
[1x21 char]
[1x20 char]
deblank(cel)
ans =
'2 brancos no f i n a l 1
'3 brancos no f i n a l '

eval

Executa as instrues contidas em uma cadeia de caracteres.


Sintaxe tpica:
eval(str)

Parmetros:
Entrada
str: cadeia de caracteres

Sada
resultado da execuo

Exemplo:
e v a l ('s i n ( p i / 2 ) ')
ans =

1
/

low er/upp er

Converte cadeia de caracteres para letras minsculas / maisculas.


Sintaxe tpica:
str = lower(m)

/ upper(m)

Parmetros:
Entrada
m: string ou cell array

Sada
str: m convertida

Exemplo:
str='Cadeia de Caracteres';
l o w e r (str)
ans =
cadeia de caracteres
u p p e r (str)
ans =
CADEIA DE CARACTERES

sprintf

Gera cadeia de'caracteres a partir de dado numrico formatado.


Sintaxe tpica:
str = s p r i n t f (fo r m a t o ,a,...)

Parmetros:
Entrada
formato: %f, %i
a v a ri v e is

Sada
str: cadeia de caracteres

Exemplo:
media=0.56;
dp=0.04;
s t r = s p r i n t f ('Media: %2.3f e Desvio P a d r a o : % 2 .3 f ',media,dp)
str =
Media: 0.560 e Desvio Padrao: 0.040

MATLAEP 7 - Fundamentos

sscanf

L dado numrico formatado em uma cadeia de caracteres.


Sintaxe tpica:
m = sscanf(str,formato)

Parmetros:
Entrada
str: cadeia de caracteres
formato: %f, %i

Sada
m: valores lidos

Exemplo:
str=' 0 . 5 6
0.04 ' ;
v = s s c a n f ( s t r , '%f % f ')
v =

0.5600
0.0400

strcat

Concatena cadeias de caracteres.


Sintaxe tpica:
str = strcat(strl,

str2,

...)

Parmetros:
Entrada
strl, str2,...: cadeias de caracteres

Sada
str: cadeia concatenada

Exemplo:

st rc at('
ans =

1234' ,

1234A B C D E F *

* *

' A B C D E F',

* ** i j

strjust

Alinha texto na cadeia de caracteres.


Sintaxe tpica:

Parmetros:
Entrada
str: cadeia de caracteres
tipo: 'right', 'left', 'center'

Sada
str1: cadeia com texto alinhado

Exemplo:
str='
Texto
strjust(str, 'r i g h t ')
ans =
Texto
strjust(str, left')
ans =
Texto
strjust(str, 1c e n t e r ')
ans =
Texto

';

strread

L dados numricos e alfanumricos formatados em uma cadeia de caracteres.


Sintaxe tpica:
I [Txt, Num]

= strread(str,formato)

Parmetros:
Entrada
str: cadeia de caracteres
formato: % f... %s

Sada
Txt: dados alfanumricos
Num: dados numricos

Exemplo:
str='Media 0.9, Variancia 0.2';

[Txt,Num]=strread(str,1%s % f , 1)
Txt =
'Media'
'Variancia'
Num =
0.9000
0.2000

strrep

Executa substituio de subcadeia de caracteres.


Sintaxe tpica:

Parmetros:
Entrada
str: cadeia de caracteres
s1, s2: substituir s1 pors2

Sada
s trl: cadeia com substituio realizada

Exemplo:
s t r = 'ABC 123 ABC 453 1;
s t r l = s t r r e p (s t r , ABC 1, 'X Y Z ')
strl =
XYZ 123 XYZ 453

strtrim

Elimina espaos em branco do incio e do fim da cadeia.


Sintaxe tpica:
strl = strtrim(str)

Parmetros:
Entrada
str: cadeias de caracteres

Sada
s trl: cadeia sem brancos nos extremos

Exemplo:
str=
Texto
strtrim str)
ans =
Texto

';

strvcat

Concatena cadeia de caracteres de comprimentos diferentes na vertical, completando


as dimenses com branco.
Sintaxe tpica:
strl = s t r v c a t ( s l,s2,..)

Parmetros:
Entrada
s1 ,s2,...: cadeias de caracteres

Programao

Sada
s trl: cadeia concatenada na vertical

Exemplo:

s t r = s t r v c a t (1abc 1 '123456 , X Y 1)
str =
abc
123456
XY
whos str
Bytes
Name
Size
36
str
3x6

Class
char array

strfind

Localiza subcadeias em uma cadeia de caracteres.


Sintaxe tpica:
k = strfind{m,padrao)

Parmetros:
Sada
k: ndices das ocorrncias

Entrada
m: cell array ou string
Exemplo:
s t r = 1aquilo, aquele,
strfind(str, 1a q u 1)
ans =
17
1
9

aquela';

strtok

Localiza delimitador.
Sintaxe tpica:
[sl,s2]

= strtok(str,d)

Parmetros:
Entrada
str: cadeia
d: caractere delimitador

Sada
s1, s2: cadeias antes e depois do delimitador

Exemplo:
s t r = 1Procurar delimitador

[sl,s2]=strtok(str, ' : 1)
sl =
Procurar delimitador
s2
: resto da cadeia

resto da cadeia';

MATLAB 7- Fundamentos

Struct
v'

cell2str

Converte cell array em struct.


Sintaxe tpica:
s = cell2str

(cel,campos,dim)

Parmetros:
Entrada
cel: cell array (contedo)
campos: nome dos campos
dim: dimenso

Sada
s: struct

Exemplo:
cel={ 3 .19 'DOL' ; 39.65 '0 Z 1 '}
campos= { 'Valor' 1I d e n ' };
s = cell2struct(cel,campos,2) ;

s(l)
ans =
Valor: 3.1900
Iden: 'DOL'

s (2)
ans =
Valor: 39.6500
I d e n : '0Z1 '

/ deal
'Distribui1valores campos de struct para variveis.
Sintaxe tpica:
[Varl, Var2,...]

= d e a l (fieldl,field2,...)

Parmetros:
Entrada
fieldl, field2,...: campos de struct
Exemplo:

[Prl,P r 2 ]= d e a l (s.Valor)
Prl =
3.1900
Pr2 =
39.6500

Sada
Var1, Var2,...: variveis

fieldnames

Retorna os nomes dos campos da struct.


Sintaxe tpica:
nomes = fieldnames(S)

Parmetros:
Entrada
S: struct

Sada
nomes: cell array com os nomes dos campos

Exemplo:
nomes=fieldnames(s)
nomes =
'Valor'
'I d e n '

orderfields

Reorganiza struct com campos em ordem alfabtica.


Sintaxe tpica:
| Sl = orderfields(S)

Parmetros:
Entrada
S: struct

Sada
S1: struct com nomes dos campos em ordem
alfabtica

Exemplo:

sl=orderfields(s)

sl =
2x1 struct array w ith fields:
Iden
Valor

rmfield

Remove campo de struct.


Sintaxe tpica:
Sl = rmfield(S, campo)

192

MATLABP 7 - Fundamentos

Parmetros:
Entrada
S: struct
campo: nome do campo a ser removido

Sada
S1: struct sem o campo

Exemplo:

s2=rmfield ( s , ' Valor')


s2 =
2x1 struct array w ith fields:
I den

struct

Cria struct.
Sintaxe tpica:
S = struct

( campol, valorl,

campo2,

valor2,

...)

Parmetros:
Entrada
c a m p o lstring com nomes dos campos
valorl,..: cell array com valores

Sada
S: struct

Exemplo:
s = s t r u c t ('I d e n ' , { 1DOL' 'O Z 1 1},'V a l o r ',{3.19 39.65})
s =
1x2 struct array with fields:
Iden
Valor

struct2cell

Converte struct em cell array.


Sintaxe tpica:
cel = struct2cell(S)

Parmetros:
Entrada
S: struct

Sada
cel: cell array

Exemplo:
% cell array com 2 dimenses
c l = s t r u c t 2 c e l l ( s (1))
cl =
'DOL'
[3.1900]
>> c2=struct2cell(s)
% No caso de vetor de struct
C 2 ( :,:,1) =
% a cell array e' criada com 3 dimenses
D O L
[3.1900]
c2(:,:,2) =
'OZ1'
[39.6500]

Cellarray
y

cell

Cria cell array.


Sintaxe tpica:
cel = cell(n)

cell(n,m)

Parmetros:
Saida
cel: cell array

Entrada
n, m: dimenses
Exemplo:
c e l = c e l l (2,3)
cel =

[]
S

[]

[]

cellfun

Aplica uma funo para todos os elementos do cell array.


Sintaxe tpica:
R = c e l l f u n (funcao,cel)

Parmetros:
Entrada
funcao: a ser aplicada
cel: clula

Sada
R: resultado da aplicao da funo para cada
elemento do cell array.

MATLAB 7-Fundamentos

Exemplo:
cel={ 'DOL' 3.19; 'O Z 1 1 39.65 }
cel =
DOL
[ 3.1900]
'OZ1'
[39.6500]
c e l l f u n (1l e n g t h 1,c e l )
ans =
3
1
3
1

cell2mat

Converte c e lla rra ye m matriz numrica.


Sintaxe tpica:
m = cell2mat(cel)

Parmetros:
Entrada
cel: cell array

Sada
m: matriz

Exemplo:
c e l = { 0 .1
[10 201}
cel =
[0.1000]
[1x2 double]
m=cell2mat(cel)

m=
0.1000

10.0000

20.0000

Observao: para aplicar a funo cell2mat, todos os elementos do cell array devem ser
numricos.___________________________________________________________________

celldisp

Lista o contedo de um cell array.


Sintaxe tpica:
ce l l d i s p ( c e l )

Parmetros:
Entrada
cel: cell array

.Programao

Sada

Exemplo:
c e l = { 'DOL' 3.19;

c e l l d i s p (cel)
cel{l,1} =.
DOL
c e l {2,1} =
OZ1
cel{l,2} =
3.1900
cel{2,2} =
39.6500

'OZ1'

39.65 };

S cellplot
Exibe graficamente o contedo de um cell array.
Sintaxe tpica:
cellplot(cel)

Parmetros:
Entrada
cel: cell array

Sada

Exemplo:
cel={ 'DOL' 3.19;
>> cellpl o t ( c e l )

'OZ1'

39.65 };

He

View

E dit

d of

In s e rt

Mi.

021

Tools

D e s k to p

W in d o w

H elp

a m lw iW

mat2cell

Converte matriz numrica em celt array.

196

MATLAB 7 - Fundamentos

Sintaxe tpica:
cel = mat2cell(X,n,m)

Parmetros:
Entrada
X: matriz
n,m: dimenses em que a matriz vai ser dividida

Sada
cel: cell array

Exemplo:
X = [1234; 5 6 7 8
9 10 11 12];
>> C = m a t 2 c e l l ( X , [1 2], [1 3] )
C =
[
1]
[1x3 double]
[2x1 double]
[2x3 double]

num2cell

Converte matriz numrica em cell array.


Sintaxe tpica:
cel = num2cell (m)

Parmetros:
Entrada
m: varivel numrica

Sada
cel: cell array

Exemplo:
c e l = n u m 2 c e l l ([1 2 3])
cel =
[11
[2]
[3]

Converso de Tipos de Dados


Cadeia de caracteres para nmero:
Funo

Converso

Exemplo

base2dec

nmero em caracteres na base dada


para nmero em base decimal

bin2dec

nmero em caracteres em base binria


para nmero em base decimal

hex2dec

nmero em caracteres em base hexade


cimal para nmero em base decimal

>> b a s e 2 d e c (110',16)
ans =
16
b i n 2 d e c (11 0 0 0 0 1)
ans =
16
h e x 2 d e c ( '10 ')
ans =
16

Programao

197

Funo

Converso

Exemplo

str2double

nmero em caracteres para nmero real


(preciso dupla)

str2num

nmero em caracteres para nmero

>> st r 2 d o u b l e ('0.6')
ans =
0.6000
str2num ('0.6')
ans =
0.6000

Nmero para cadeia de caracteres:


Funo

Converso

Exemplo

char

matriz de nmeros para cadeia de


caracteres (cdigo ASCII)

dec2base

nmero para cadeia de caracteres na


base dada

dec2bin

nmero para cadeia de caracteres em


base binria

dec2hex

nmero para cadeia de caracteres em


base hexadecimal

int2str

nmero inteiro para cadeia de


caracteres

mat2str

matriz numrica para cadeia de


caracteres

num2str

nmero para cadeia de caracteres

c h a r ([65 66])
ans =
AB
>> d e c 2 b a s e (16,16 )
ans =
10
dec2bin(5)
ans =
101
dec2hex(16)
ans =
10
i n t 2 s t r (-123)
ans =
-123
m =
1.0000
2.0000
3.0000
3.1416
mat2str(m)
ans =
[1 2 ;3 3.14159265358979]
num2str(pi)
ans =
3.1416

Outras converses:
Funo

Converso

logical

matriz numrica em matriz lgica (matriz


de 0's e 1's: os elementos da matriz
numrica diferentes de zero so
transformados em 1)

func2str

converte nome de funo em cadeia de


caracteres

str2func

converte cadeia de caracteres em


handle de funo

dec2hex

nmero para cadeia de caracteres em


base hexadecimal

Exemplo
a =
5
0
3
6
logical(a)
ans =
1
0
1
1
>> s=func2str(@sin)
s =
sin
dec2bin(5)
ans =
101
h = s t r 2 f u n c ('s i n ' )
h =
@sin

MATLAB 7-Fundamentos

3.3.2. Operadores
Operadores

Bitwise(Operaes sobre Nmeros Inteiros)


Funo
bitand
bitcmp
bitor
bitmax
bitset
bitshift
bitget
bitxor

Operao
AND (e)
complemento
OR (ou)
mximo inteiro em ponto flutuante
configura posio de bit
desloca bits
obtem posio de bit
XOR (ou no e)

Exemplo:

implementar tabelas'Verdade1:

A = uint8([0 1; 0 1])
A =

1
1

B = u i n t 8 ([0 0; 1 1])
B =

0
1

0
1

>> TTand = bitand(A,B)


TTand =

0
0

0
1

TTor=bitor(A,B)
TTor =

0
1

1
1

Complemento e shift:
>> bitcmp(A)
ans =

255
255

254
254

>> b i t shift(A,1)
ans =

0
0

Programao

2
2

Operadores Relacionais (Smbolos de Testes e Operadores Booleanos)


Smbolo
(eq)
~= (ne)
<(lt)
>(gt)
<= de)
>= (ge)

Teste
Igual
Diferente
Menor que
Maior que
Menor ou igual
Maior ou igual

Exemplo
1== J (1 igual a J)
1~= J (1 diferente de J)
1< J (1 menor que J)
1> J (1 maior que J)
1<= J (1 menor ou igual a J)
1>= J (1 maior ou igual a J)

Smbolo
~ (not)
& (and)
&& (and)
1(or)
II (or)

Operador
Negao
E
E para matrizes
OU
OU para matrizes

Exemplo de composio
~l ( negao de 1)
1& J (1 e J verdadeiros)
M1 && M2
11J (I ou J verdadeiro)
M1 II M2

Funo lgica
ali
any
false
true
xor

Teste
testa se todos os elementos so diferentes de zero
testa se algum elemento diferente de zero
testa se todos os elementos so false
testa se todos os elementos so true
testa elementos XOR

Operadores de Conjunto

intersect

Retorna 'interseco' entre dois vetores.


Sintaxe tpica:
c = i n t e r s e c t (ml,m2)

Parmetros:
Entrada
m1, m2: variveis

Sada
c: conjunto de interseco

Exemplo:
vl=[l 2 3 4 5];
v 2 = [3 4 5 6 7];
i n t e r s e c t (vl,v2)
ans =
3
4
5

MATLAEP 7-Fundamentos

No caso de matrizes, necessrio fornecer o parmetro 'rows'. Alm disso, as matrizes


devem ter o mesmo nmero de colunas e a operao de interseco efetuada coluna
a coluna:

ismember

Verifica se o(s) valor(es) elemento da matriz.


Sintaxe tpica:
R = ismem b e r ( m , s )

Parmetros:
Entrada
m: matriz
s: elemento(s)
Exemplo:

Programao

Sada
R: vetor lgico

Dados dois vetores (ou matrizes) A e B, retoma os elementos que esto em A e no


esto em B.
Sintaxe tpica:
D = setdiff(a,b)

Parmetros:
Sada
D: conjunto de diferenas

Entrada
a, b: variveis
Exemplo:
v l = [1 2 3 4 5];
v 2 = [3 4 5 6 7] ;

setdiff(vl,v2)
ans =

No caso de matrizes, preciso indicar o parmetro 'rows'. Ademais as matrizes devem ter
o mesmo nmero de colunas e a operao de verificao efetuada coluna a coluna:

m l = [1 2;3 4;5 6;7 8];


m2 = [3 4;5 6;7 8;9 10]
s etdiff(ml,m2, ' rows '}
ans =
1
2

issorted

Verifica se o vetor est ordenado.


Sintaxe tpica:

.4'

\
*J

issorted(v)

' -d

--

Parmetros:
Entrada
v: variveis

Sada
truel false

Exemplo:
issortedt [1 2 3 4])
ans =
1
issorted) [1 2 4 3])
ans =
0

MATLAEP 7 - Fundamentos

setxor

Retorna os elementos que no esto na 'interseco' entre dois vetores.


Sintaxe tpica:
c = s e t xor(ml,m2)

Parmetros:
Entrada
m1, m2: variveis

Sada
c: conjunto 'xor'

Exemplo:
vl=[l 2 3 4 5];
v 2 = [3 4 5 5 7] ;

setxor(vl v 2 )
ans =
1
2
6

No caso de matrizes, o parmetro 'rows' deve ser fornecido. Alm disso, as matrizes
devem ter o mesmo nmero de colunas e a operao efetuada coluna a coluna:
>> m l = [1 2;3 4; 5 6;7 8] ;
>> m2=[3 4; 5 6; 7 8;9 10] ;
>> setxor(ml m 2 , r o w s ')
ans =
1
2
9
10
V:

union

Retorna a unio de dois vetores.


Sintaxe tpica:
c = u n i o n (ml,m2)

Parmetros:
Entrada
m1, m2: variveis

Sada
d: conjunto de unio

Exemplo:
vl=[l 2 3 4 5] ;
v 2 = [3 4 5 6 7] ;
>> union(vl,v2
ans =
1
2
3

Programao

No caso de matrizes, o parmetro 'rows' preciso ser indicado. Alm disso, as matrizes
devem ter o mesmo nmero de colunas e a operao efetuada coluna a coluna:
m l = [1 2 ;3 4 ;5 6 ;7 8 ] ;
m 2 = [3 4;5 6;7 8;9 10] ;
u n i o n (ml,m 2 , 'rows')
ans =
1
2
3
4
5
6
7
8
9
10

</ unique
Elimina repetio de elementos em um vetor.
Sintaxe tpica:
c = u n i q u e (m)

Parmetros:
Entrada
m: varivel

Sada
C: conjunto sem repetio

Exemplo:
>>v=[ 1 1 3 3 3 5 2 5 ]

1
1
u n i q u e (v)
1

A funo tambm pode retornar os ndices dos elementos 'nicos'.


>>v=[ 1 1 3 3 3 5 2 5 ]

vl

1
1
3
[vl,ind]=unique(v)

=
1

ind =
2

Operadores de Data e Hora

addtodate

Adiciona valor a uma data.

M4 71/407-Fundamentos

Sintaxe tpica:
R = addtodate

(D,N,Tipo)

Parmetros:
Entrada
D: data em nmero real
N: quantidade a ser adicionada
Tipo: 'day1, 'month', 'year'

Sada
R: data

Exemplo: adicionar 20 meses data 01 -Jan-2004'

r=addtod a t e ( d atenum(101-Jan - 2 0 0 4 1),20,'month')

732556
datestr(r)
ans =
01-Sep-2005

calendar

Gera uma matriz com o calendrio da data solicitada.


Sintaxe tpica:
c = calendar

(Ano, Mes)

Parmetros:
Entrada
Ano, ms

Sada
c: matriz

Exemplo: Junho de 2004


c = c a l e n d a r (2004, 6)
c =
0
0
1
2
6
7
8
9
13
14
15
16
20
21
22
23
27
28
29
30
0
0
0
0

3
10
17
24
0
0

4
11
18
25
0
0

5
12
19
26
0
0

clock

Retorna um vetor com 6 elementos: ano, ms, dia, data, hora, minuto e segundo atuais.
Sintaxe tpica:

Exemplo:
clock
ans =
1.0e+003 *
2.0040
0.0060

0.0120

0.0140

0.0360

0.0530

/ cputime / date / now


cputime: retorna o tempo, em segundos, de uso do MATLAB na sesso atual.
date: retorna data em cadeia de caracteres.
now: retorna data em valor numrico (data base 1:01-01-0000).
Sintaxe tpica:
cputime / date / n o w

Exemplo:
cputime
ans =
903.1496
date
ans =
08-Jun-2004
>> now
ans =
7 . 3211e+005

datenum

Converte data (cadeia de caracteres) em nmero. A data base 1 '01-01-0000'.


Sintaxe tpica:
D = datenum(str)

Parmetros:
Entrada
Sada
str: data e m cadeia de caracteres

D: data numrica

Exemplo:
d a t e n u m ( 10 8 - J u n - 2 0 0 4 1)
ans =
732106

datestr

Converte nmero em data (cadeia de caracteres). A data base 1 '01-01-0000'.


MATLAB 7- Fundamentos

Sintaxe tpica:
str = datestr(D)

Parmetros:
Sada
str: data em cadeia de caracteres

Entrada
D: data numrica
Exemplo:
d a t e s t r (732106)
ans =
08-Jun-2004

datevec

Converte data de cadeia de caracteres para vetor numrico.


Sintaxe tpica:
V

datevec(str)

Parmetros:
Sada
V: vetor

Entrada
str: data em cadeia de caracteres
Exemplo:
>> d a t e v e c ('08-Jun-2004
ans =
2004
6

10:30' )
8

10

30

s tic/toc
Implementa contador de tempo de execuo.
Exemplo:
>> m=rand(500) ;
tic ; m l = i n v ( m ) ;toc
% Tempo gasto, em segundos, para
Elapsed time is 0.221000 seconds. % inverter uma matriz 500x500

3.3.3. M-files
Como j mencionado no Captulo 2, arquivos de programa do MATLAB tm extenso
'.m1e, por este motivo, so usualmente chamados de m-files.

Existem dois tipos de m-files\

Script: uma seqncia de expresses do MATLAB e serve, basicamente, para


automatizar algum processo repetitivo. No tem parmetros de entrada, nem de
sada, e utiliza as variveis do Workspace.

Function: funes tambm so compostas por seqncias de expresses do


MATLAB, porm aceitam parmetros de entrada e retornam parmetros de sada.
Funes utilizam seu prprio espao de memria para armazenar variveis locais.

A sintaxe bsica de definio de funes segue este formato:


function

Psl,

., PsN

nome_funcao

Pel,

.. .

PeM )

<Exprl>
<ExprR>

f u n c t io n : palavra reservada que indica incio de definio de funo.

[ p s i , p s n ]

nom e_funcao:

p e l , . . . . Pen: parmetros de entrada;

< E x p ri>

...

: parmetros de sada;

nome da funo ( case-sensitive)',


< ExprR >:

expresses que definem as aes a serem executadas

pela funo.
E a chamada de funes, este:
[Saidal,

SaidaN]

= Funcao

(Entradal,

. .., Entrada2)

[Saidal,
SaidaN] : parmetros de sada
Funcao: nome da funo
[Entradal,..., EntradaN] : parmetros de entrada

Neste tpico, apresentamos recursos e funes relativos construo e ao tratamento


de m-fiies.

Funes de Consulta
Funo

Informao

Exemplo

mfilename

retorna o nome do m-fiie em


execuo

mfilename
ans =

namelengthmax

tamanho mximo de nome


de varivel

namelengthmax
ans =
63

nargin

nmero de parmetros de
Entrada fornecidos

cap3_inputname_exemplo.m

MATLAEP 7-Fundamentos

Funs

Informao

Exemplo

nargout

nmero de parmetros de
Sada solicitados

cap3_inputname_exemplo.m

iskeyword

lista as palavras reservadas


da linguagem MATLAB

iskeyword
ans =
'b r e a k '
'case 1

Palavras reservadas da linguagem MATLAB (aparecem em azul nos arquivos m-files


na janela edit):
Palavra

Descrio

break

quebra fluxo de execuo


implementa opo da funo s w i t c h
implementa alternativa da funo t r y
avana execuo
implementa alternativa da funo if
implementa alternativa da funo if
finaliza estruturas de repetio (for,
estrutura de repetio
define incio de funo
define varivel global
estrutura de seleo
implementa opo da funo s w i t c h
define varivel persistente
retorna
implementa 'tentativa de execuo1
estrutura de repetio

case
catch
continue
else
elseif
end
for
function
global
if
otherwise
persistent
return
try
while

U tilitrios

/ edit
Chama editor de programas.

I
I

Sintaxe tpica:

edit mfile

Parmetros:
Entrada
mfile: nome do arquivo

Sada

w h iie)

e funes

mlint

Chama analisador para verificao de erros sintticos em m-files.


Sintaxe tpica:

mlint mfile

Parmetros:
Entrada
mfile: nome do arquivo

Sada
exibe resultado na linha de comando

Exemplo:
mlint triangulo_pascal_erro
L 8 (C 14): Parse error at '=' appears to be invalid MATLAB syntax
L 8 (C 23): Parse error at ')' appears to be invalid MATLAB syntax
L 8 (C 32): Parse error at ')' appears to be invalid MATLAB syntax

mlintrpt

Chama analisador para verificao de erros sintticos em m-files e gera um relatrio no


Web Browser.
Sintaxe tpica:
>> mlintrpt mfile

Parmetros:
Entrada
mfile: nome do arquivo

Saida
exibe resultado no Web Browser

Exemplo:
>> mlintrpt triangulo_pascal_erro

M -lm t Code Check Report


Fie Edit View <jo Debug Desktcp Window Help
+

C ;3

&

Refiesh |

M-Lint Code Checker Report


Report Cot file Jttianculo pascal ecxo}
c:\matlab7\vork\triangulo_pascal_erro.m
3 messages 1 Pa-se error at
appears to be invalid HATLAB syntax
8: Parse error at 1)' appears to be invalid HATLAB syntax
2. Parse error at )' appears to be invalid HATLAB syntax

MATLAEF 7Fundamentos

pcode

Gera um cdigo binrio, 'pr-compiiado', de um m-file.


Sintaxe tpica:

pcode mfile

Parmetros:
Entrada

Sada

mfile: nome do arquivo

arquivo com o mesmo nome do m-file e com


extenso .p

Exemplo:
pcode cap3_gradient_exemplo
dir cap3_gradient_exemplo.*
cap3_gradient_exemplo.m
cap3_gradient_exemplo.p

P
I ffe

c a p 3 _ g r < - i d e r it _ e x e m p l o - N o t e p a d
Edt

F o tm a t

V iew

H elp

o n -4 :
3 .1 : o :
i

m t [ i c k ^ O A z v ^ s n ^ y O : ' t n ck X J'^ " 0 y > g 7 : x : 1 ~ :


B 0 :u * G 0 E o0 e iv _ : ] 2 k Y
: o : 5 x & - T S - -*ov: * f

1 p - file

&/

,< ,i* 1
1

Ln 1, C o l 1

.]

Observao: arquivos p-codes podem ser utilizados para proteger cdigo fonte pois no so
editveis.

Funes Utilitrias e Linguagem

echo on/off

Habilita/desabilita exibio de cdigo durante execuo do programa.


Exemplo: arquivo cap3_det_exempio.m (script)

function

Inicia definio de funo.


Exemplo: arquivo cap3_funcao1 .m
% funcao cap3_funcaol
function y = cap3_funcaol(x)
y = x+sin(2*x) + c o s ( 4 * x);

inputname

Retoma o nome da varivel de entrada fornecida na chamada da funo.


Sintaxe tpica:
n = inputname(ind)

Parmetros:
Entrada
ind: ndice da varivel de Entrada

Sada
n: nome

SJ

Exemplo (cap3_inputname_exemplo.m):
% funcao cap3_inputname_exemplo
function [nl,n 2 ,ne,ns] = cap3_inputname_exemplo( entl,ent2
nl = i n p u t n a m e (1);
% nome da primeira variavel de entrada
n2 = i n p u t n a m e (2);
% nome da segunda variavel de entrada
ne=nargin;
% numero de parametros de entrada
ns=nargout; % numero de parametros de sada

Execuo:

[nl,n2,ne,ns]=cap3_inputname_exemplo(x,0)
nl =
x
% nome da I a variavel do 1* parametro
n2 =
11
% 2- parametro e' u m numero, nao uma variavel
ne =
2
% dois parametros de entrada
ns =
4
% quatro de saida

s pause
Provoca uma pausa na execuo do cdigo.
Sintaxe tpica:
I pause / pause(n)

MATLAEP 7 -Fundamentos

Parmetros:
Entrada
n: nmero de segundos de pausa

Sada

Caso n seja omitido, espera um <Enter> para prosseguir.

3.3.4. Fluxo de Programao


Estruturas de Seleo
/

if, else, elseif

Executa um teste lgico. Se o resultado for:

true executa o conjunto de expresses seguinte;

false: pula para o prximo conjunto de expresses.

Sintaxes tpicas:

Exemplo i f : verifica se algum parmetro de entrada foi fornecido.


edit: cap3_if_exemplo.m
% cap3_if_exemplo ()
function R = cap3_if_exemplo (a,b)
if nargin == 0
R = 1N e n h u m parametro de e n t r a d a 1;
else
R = 1Pelo menos u m parametro de entrada 1
end

Programao __________________________________________ _____ ( ^13

Execuo:
cap3_if_exemplo
ans =
Ne n h u m parametro de entrada
c a p 3 _ i f _ e x e m p l o (1)
ans =
Pelo menos u m p arametro de entrada
c a p 3 _ i f _ e x e m p l o (1,2)
ans =
Pelo menos u m parametro de entrada

Exemplo e i s e i f : examina quantos parmetros de entrada foram fornecidos.


edit:

cap3_elseif_exemplo.m____________

% cap3_elseif_exemplo ()
function R = cap3_elseif_exemplo (a,b)
if nargin == 0
R='Nenhum parametro de entrada';
eiseif nargin == 1
R = '1 parametro de entrada';
else
R = '2 parametros de entrada';
end

Execuo:
cap3_elseif_exemplo
ans =
N e n h u m parametro de entrada
c a p 3 _ e l s e i f _ e x e m p l o(1)
ans =
1 parametro de entrada
c a p 3 _ e l s e i f _ e x e m p l o(1,2)
ans =
2 parametros de entrada

S switch / case / otherwise


Dado um valor para teste, verifica qual 1 condio 'case' satisfeita e executa o
conjunto de expresses correspondente. Caso nenhuma condio seja satisfeita,
executa as expresses 'otherwise'.
Sintaxe tpica:
switch <Valor_para_teste>
case <Condicao 1>
<Expressoes>
case cCondicao N>
<Expressoes>
otherwise
<Expressoes>
end

-3

MATLAB 7- Fundamentos

Exemplo s w itc h : analisa quantos parmetros de entrada foram fornecidos.


edit: cap3_switch_exemplo

()___________

% cap3_switch_exemplo ()
function R = cap3_switch_exemplo (a,b)
switch nargin
case 0
R = 1N e n h u m parametro de entrada';
case 1
R = 11 parametro de entrada';
otherwise
R = 12 parametros de e n t r a d a 1;
end

Execuo:
cap3_switch_exemplo
ans =
N e n h u m parametro de entrada
c a p 3 _ s w i t c h _ e xemplo(1)
ans =
1 parametro de entrada
c a p 3 _ s w i t c h _ e xemplo(1,2)
ans =
2 parametros de entrada

Estruturas de Repetio
J w h ile /e n d
Executa o conjunto de expresses enquanto a condio for true.
i

Sintaxe tipica:
while <Condicao>
<Expressoes>
end

Exemplo w h ile : retorna os mltiplos de n menores que m.


edit: cap3_while_exemplo

()___________

% cap3_while_exemplo ()
% R: multiplos de n menores que m
function R = cap3_while_exemplo (n,m)
i=l;
R= [] ;
while i*n < m
R=[R i * n ] ;
i=i+l;
end

Programao

Execuo:
cap3_while_exemplo (2,11)
ans =
2
4
6
8
cap3_while_exemplo 5,42)
ans =
5
10
15
20

10

25

30

35

40

for / end

Executa o conjunto de expresses para todo valor V a partir de Vinc, incrementado de


Incr, at Vfinal.
Sintaxe tpica:
for V = V i n c :I n c r :Vfinal
<Expressoes>
end

Se Incr for omitido, a funo assume valor de incremento igual a 1.


Exemplo f o r : gera matriz com diagonal: n+1 ,...,n+n.
edit:

cap3_for_exemplo

()

: 'I

% cap3_for_exemplo ()
% gera matriz diagonal (n+1,. . ,n+n)
function R = cap3_for_exemplo (n)
for i=l:n
R(i,i)=i+n;
end

Execuo:

MATLAEP 7- Fundamentos

Tratam ento de Erros

error / errordlg

error: exibe mensagem de erro na linha de comando,


errodlg: exibe mensagem de erro em caixa de dilogo.
Sintaxe tpica:
I error(msg)

/ errordlg(msg)________

Exemplo e r r o r : repete a funcionalidade do exemplo cap3_while_exemplo, porm


testa condio n deve ser menor que m.
edit: cap3_error_exemplo

()_____________

% cap3_error_exemplo ()
% R: mltiplos de n menores que m
function R = cap3_error_exemplo (n,m)
if n > = m
ms g _erro='n deve ser menor que m ' ;
error(msg_erro) ;
end
i=l;
R=[] ;
while i*n < m
R= [R i *n ] ;
i=i+l;
end

Execuo:
c a p 3 _ e r r o r _ e x emplo(3,8)
ans =
3
6
c a p 3 _ e r r o r _ e x emplo(8,3)
??? Error using ==> cap3_error_exemplo
n deve ser me n o r que m

lasterr/lastwarn

Retorna ltima mensagem de erro/aviso detectado pelo MATLAB.


Sintaxe tpica:

try/catch/end

'Tenta' executar as expresses definidas entre try e catch. Se ocorrer algum erro,
suspende a execuo e executa as expresses definidas entre catch e end.
Sintaxe tpica:
try
<Expressoes>
catch
<Expressoes>
end

Exemplo t r y / c a t c h : tenta multiplicar a*b. Se a*b retornar erro, exibe mensagem em


caixa de dilogo.
edit: cap3_try_exemplo

()

% cap3_try_exemplo ()
% resolve multiplicar a * b
function x = cap3_try_exemplo (a,b)
try
x=a*b;
catch
e r r o r d l g (1Dimenses i n c ompativeis1);
end

Execuo:
c a p 3 _ t r y _ e x e m p l o ([1 2],[3;4])
ans =

11
c a p 3 _ t r y _ e x e m p l o ([3;4],[1 2])
ans =
3
6
4
8

c a p 3 _ t r y _ e x e m p l o ([3 4],[1 2])

>>

:;

MATLAB 7- Fundamentos

C a p t u l o

Leitura e Gravao
de Arquivos
N este captulo, lista m os os p rincipais recursos de leitura e gravao de arquivos de
dados no M ATLAB 7.

4.1. Construo de Nome de Arquivo


Funes de Consulta
Funo

informao

Exemplo

cd
c :\matlab7\work
>> pwd
ans =
c :\matlab7\work

cd / pwd

diretrio corrente

filesep

caractere separador de nome de arquivo


no sistema operacional corrente

matlabroot

diretrio do MATLAB

matlabroot
ans =
c : \matlab7

tempdir

diretrio temporrio

tempdir
ans =
c : \Temp\

tempname

arquivo temporrio

tempname
ans =
c :\Temp\tp440124

>> filesep
ans =
\

Leitura e Gravao de Arquivos

Nome de Arquivo

fileparts

Dado nome completo do arquivo, retorna: caminho, nome, extenso.


Sintaxe tpica:
[path,nome,ext]=fileparts(arquivo)

Parmetros:
Entrada

Sada

arquivo: nome do arquivo

path: caminho
nome: nome principal do arquivo
ext: extenso

Exemplo:
a r q u i v o = 1c : \matlab7\work\cap3_if_exemplo,m';

[path,nome,ext]=fileparts(arquivo)
path =
c :\matlab7\work
nome =
cap3_while_exemplo
ext =
.m

fullfile

Dados caminho, nome e extenso, retorna o nome completo do arquivo.


Sintaxe tpica:
arquivo = fullfile (dl,< 3 2 ,nome)

Parmetros:
Entrada

Sada

d 1 d ir e t r io s

arquivo: nome completo do arquivo

nome: nome com extenso

Exemplo:
p a t h = 'c :\ matlab7\work';
n o m e = 'cap3_whi l e _ e xemplo.m1;
a r q u i v o = f u l l f i l e (path,nome)
arquivo =
c :\matlab7\work\cap3_while_exemplo.m

MATLAB 8 7 - Fundamentos

/ which
Dado nome de arquivo, verifica se ele existe (faz a busca no diretrio corrente e nos
caminhos definidos no path do MATLAB). Se existir, retorna o nome completo do
arquivo, caso contrrio, retorna" {string vazia).
Sintaxe tpica:
nome_completo = which(nome)

Parmetros:
Entrada
nome: nome do arquivo

Sada
nome_completo: nome com path completo

Exemplo:

n l=which ( ' det .ru' )

nl

:\matlab7\toolbox\matlab\matfun\det . m
n l = w h i c h ( ' detl .m' )
nl =

4.2. Utilitrios de Abertura e Gravao de Arquivos


/

impordata

Importa dados de arquivo.


Sintaxe tpica:
m

importdata(arquivo)

Parmetros:
Entrada
arquivo: nome do arquivo

Sada
m: dados importados

Formatos de arquivo reconhecidos pela funo importdata:


Extenso

Descrio

Funo

Retorno

MAT

formato MATLAB

load

variveis no arquivo

CSV

nmeros separados por

cvsread

matriz numrica

D A T /T X T

texto formatado

importdata

matriz numrica

DLM

nmeros delimitados

dlmread

matriz numrica

TAB

nmeros tabulados

dlmread

matriz numrica

Leitura e Gravao de Arquivos

Extenso

Descrio

Funo

Retorno

XLS

planilha do MS-Excell

xlsread

matriz numrica e cell array

WK1

planilha do Lotus 123

wk1 read

matriz numrica e cell array

CDF*

Common Data Format

cdfread

cell array e registros CDF

FITS*

Flexible Image Transport System

fitsread

formato FITS

HDF*

Hierarchical Data Format

hdfread

formato HDF

AVI

formato AVI (animao)

aviread

formato MATLAB movie

TIFF

PCX

formato
formato
formato
formato
formato
formato
formato

TIFF (imagem)
PNG
HDF
BMP
JPEG
GIF
PCX

XDW
CUR
ICO
RAS
PBM

formato
formato
formato
formato
formato

XDW
CUR
ICO
RAS (raster Sun)
PBM

imread

matrizes de cores (truecoloi) e


ndice (mapeamento)

PGM
PPM

formato PGM
formato PPM

AU
SND

formato AU (udio Sun)


formato SND (udio Sun)

auread

dados e freqncia

WAV

formato WAV (udio MS)

wavread

dados e freqncia

PNG
HDF
BMP
JPEG
GIF

(*) Padro de arquivos para troca de dados criados peia NASA.

Exemplo:
m = i m p o r t d a t a ('c a p 2_dad o s l . x i s ') % Importa os dados da planilha
m =
% para a struct m no campo Planl
P l a n l : [50x2 double]

load

Importa dados de arquivos nos formatos MATLAB e ASCII.


Sintaxes tpicas:
load arquivo
s = l o a d (arquivo)
s = l o a d (arq u i v o , v l , v2,.
s = l o a d (tipo, arquivo)

MATLAB 7-Fundamentos

Parmetros:

Entrada

Sada

arquivo: nome do arquivo

s: dados importados

v1, v2,...: variveis


tipo: '-m a t', '-ascii'

Observao: a execuo da funo load sem parmetros importa todas as variveis do


arquivo matlab.mat.______________
Exemplo:
s = l o a d ( 'c u r v a s . m a t ')
s =
curvas: [52x3 double]
tempo: [1x52 double]
s t = l o a d ( 1c u r v a s . m a t 1, 't e m p o ')
st =
tempo: [1x52 double]
s l = l o a d ( 1- a s c i i 1,'d a d o s 2 .t x t 1)

sl =
0.9501
0.4860
0.4565

0.2311
0.8913
0.0185

0.6068
0.7621
0.8214

open

Reconhece o tipo de arquivo e 'abre' o arquivo no MATLAB.


Sintaxe tpica:
| m - open(arquivo)

Parmetros:
Entrada

Sada

arquivo: nome do arquivo

m: dados importados

Extenso

Descrio

MAT

formato MATLAB

importa os dados do arquivo

FIG

arquivo de figuras

abre a janela com a figura

Ao retorno

m-file

abre o m-file no edit

MDL

modelo do Simulink

abre o modelo no Simulink

HTML

arquivo .html

abre o arquivo no Web Browser

Exemplo:

o p e n ('E x e m p l o 2 .f i g ')

Leitura e Gravao de Arquivos

____________________________________

save

Armazena variveis do workspace em arquivos nos formatos MATLAB e ASCII.


Sintaxes tpicas:
save arquivo
s a v e (a r q u i v o )
s a v e (a r q u i v o ,v l ,v 2 , . . .)
s a v e (arquivo, tipo)

Observao: a execuo da funo save sem parmetros grava todas as variveis no


workspace no arquivo matlab.mat.
|

Parmetros:
Entrada
arquivo: nome do arquivo
v1, v2,.,.: variveis
tipo: '-mat', '-ascii1

Sada

S uiimport
Abre janela de interface grfica da funo importdata.
Sintaxe tpica:

uiimport

MATLAB 7-Fundamentos

C H IM E S 1

^iprofic resdts H f l orcuito

My Recent
Docunents

a rq

0 a rq l

if) contagem

flg r a f

jja r q l

T i curvas

Qgrafll

^ a rq 3

Desktop

My Doofnerts

curvas1

| p license

pH bungie

U i OB-vas2

gjLousl,wkl

y cap2_dadosl

dados 1
| j dados 1

|Lotus2.wki
^jmatiabl
[ r e d e y e d fr o g

^cap2_dados.l
fj cap2_dados2

5 ^ )c a p 2 _ d a d o s 2

[ U e s p ira i

xdY d

H l c a p 2 _ s a id a

2 | e x a m p le

fjx y

10 cap2_saidal

% Computer

dock

)jaFroq Red
H)sraD2
^jgrafDS

dados2

e x e r c id o S

* * l c a p 2. s a l d a i

j& je x e r d d o 9

y j fc u rv a s

C H IM E S

xyspi

My Network
Pisces
Ries of type:

jRecoyiized Data .Ries

uiload

Abre janela de interface grfica da funo load.


Sintaxe tpica:

uiload

uiopen

Abre janela de interface grfica da funo open.


Sintaxe tpica:

uiopen

jLeitura e Gravao de Arquivos

d
"3

Open

i cei

L o o k f i; | C 2 w o ik

E a rq l
J - a rq S

Q csp2_exem pio_ 5

^ )c a p 2 _ e x e ir

cap2_exem pfe_G6

^ ] c a p 2 exeir

^?)ca p2 _exsm pio_Q 1


'Q c a p 2 _ e x e m p o _ 0 2

cap2_exem pfo_07
^1 cap2_exeroplo_ps

@ c a p 2 _ e x e rr

jp) cap2_exem pfo_09


f f i j cap2_exernpio_ 10

cdp2_exem pio_03

M cap2_exem p!o_04

^ v lc8p2_exeiT
^cap2_exen
^ H e a p 2 e x e ri
...........................................1:

\m * 1
Fe n a rr :

Ries of tyo e :

[A li M ATLAB Fes

Q pen

Cance! ; |

S winopen
No sistema operacional Windows, abre janela de acesso ao diretrio fornecido.
Sintaxe tpica:

w i n o p e n ('c :\ m a t l a b 7 ')

4.3. Funes de Entrada/Sada de 'baixo nvel1


O MATLAB disponibiliza funes de entrada/sada de 'baixo nvel1, ou de acesso a
dados binrios, semelhantes s funes disponveis na linguagem C/C++.

fclose

Fecha arquivo.

MATLAB 7 - Fundamentos

Sintaxe tpica:

s t = fc lo s e ( fid )
Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
S

Sada
st: status

feof

Testa condio de final de arquivo.


Sintaxe tpica:
st

= f e o f (f id )

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
y

Sada
st = 1 indica final de arquivo

terror

Retorna mensagem de erro.


Sintaxe tpica:
| msg = f e r r o r ( f id )
Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
S

Sada
msg: mensagem de erro

fget!

L uma linha do arquivo sem caractere de final de linha f\n').


Sintaxe tpica:
tline = fgetl(fid)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)

Leitura e Gravao de Arquivos

Sada
tline: linha lida

fgets

L uma linha do arquivo com caractere de final de linha ('\n').


Sintaxe tpica:
tline = fgets(fid)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
s

Sada
tline: linha lida

fopen

Abre arquivo.
Sintaxe tpica:
fid = fopen(arquivo, modo)

Parmetros:
Entrada
arquivo: nome do arquivo
modo: tipo de acesso
Modo
Y
W
'a1
W
'w+'
'a+'
y

Sada
fid: identificador de arquivo (file-handle)

Tipo de Acesso
Abre para leitura
Abre ou cria para gravao, eliminando registros anteriores
Abre ou cria para gravao, mantendo registros anteriores
Abre para leitura e gravao
Abre ou cria para gravao e leitura, eliminando registros anteriores
Abre ou cria para gravao e leitura, mantendo registros anteriores

fprintf

Grava dados formatados.


Sintaxe tpica:
nb = fprintf(fid,

formato, vl, v2,

...)

MATLAEP 7 - Fundamentos

Parmetros:

Entrada
fid: identificador de arquivo (file-handle)
formato: string com a descrio do formato
v1, v2,.: variveis

Sada
nb: nmero de bytes gravados

A string com a descrio do formato composta da seguinte maneira: % < F x T > .< P x C > \
<F>
+
0

Contre
amento e sinal
alinhamento esquerda
sempre imprime sinal dos nmeros
preenche espaos com 0' em vez d e '

Exemplo
%-6.4d
%+6.4d
%06.4d

Caractere <T>: nmero mnimo de dgitos a serem impressos.


Caractere <P>: nmero de dgitos direita do ponto decimal.
<C>
%c
%s
%d ou %i
%u
%f
%e
%E
%g
%x
%X
%o

Notao
caractere
cadeia de caracteres
decimal
decimal sem sinal
ponto flutuante
exponencial
exponencial 'maiscula'
forma compacta de %f ou %e
hex. 'minscula'
hex. 'maiscula'
octal

Exemplo
fprintf('%c','a')
fprintf('%s','abc')
fprintf('%5.3d',pi)
fprintf('%5.3u',pi)
fprintf('%5.3f',pi)
fprintf('%5.3e',pi)
fprintf('%5.3E',pi)
fprintf('%5.3g',pi)
fprintf('%x',27)
fprintf('%X,27)
fprintf(%o',27)

Resultado
a
abc
3.142e+000
3.142e+000
3.142
3.142e+000
3.142E+000
3.142
1b
1B
33

Caracteres especiais que podem ser utilizados nos formatos:


Caractere Nome
\b
backspace
\f
form feed
\n
newline
\r
carriage return
\t
horizonal tab
\\
backslash
\"
quotation mark
%%
percent character
Leitura e Gravao de Arquivos

Descrio
retorno de caractere
avano de linha
pula linha
retorno de linha
tabulao horizontal
caractere barra invertida \
caractere aspa"
caractere porcentagem %

fread

L dados binrios.
Sintaxe tpica:
m = fread(fid,

nb, prec)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
nb: nmero de bytes a serem lidos
prec: preciso (mesmo critrio da funo
fwrite)

Sada
m: matriz de dados

frewind

Retorna para o incio do arquivo.


Sintaxe tpica:
f r e w i n d (fid)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
S

Sada

fscanf

L dados formatados,

m;
lii

Sintaxe tpica:
[m,nb]

= fscanf (fid,

form.ato,

[nl nc] )

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
formato: string com a descrio do formato
[nl nc]: dimenses, nmero de linhas e
colunas

Sada
m: matriz com dados
nb: nmero de bytes gravados

Observao: se a dimenso for indicada com Inf, l at final de arquivo.

MATLAEP 7 - Fundamentos

Exemplo:
edit:

cap4_scanf_exempio

()____________________________

% c a p 4 _ s c a n f _ e x e m plo( )
% Le arquivo, retorna dados em u m vetor lxN
function m=cap4_fscanf_exemplo(arquivo)
fid=fo p e n (arquivo,'r '); % Abre arquivo para leitura
m = f s c a n f ( f i d , '% f 1,[1 I n f 1]); % Le dados
fclose(fid);
% Fecha arquivo

Execuo: ler arquivo 'dados2.txt'.


m = c a p 4 _ f s c a n f _ exemplo(1d a d o s 2 .t x t ')
m =
0.9501
0.2311
0.6068
0.4860
0.8913
0.8214

0.7621

0.4565

fseek

Posiciona apontador de arquivo.


Sintaxe tpica:
status = fs e e k (fid,offs e t ,orig)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
offset: nmero de bytes
orig: base do posicionamento
orig
'bof
'cof
'eof

Sada
status: ndice de status

Descrio
nmero de bytes a partir do incio do arquivo
nmero de bytes a partir da posio atual
nmero de bytes a partir do final do arquivo

ftell

Retorna posio atual do apontador do arquivo.


Sintaxe tpica:
pos = ftell(fid)

Leitura e Gravao de Arquivos

0.0185

Parmetros:

Entrada
fid: identificador de arquivo (file-handle)

Sada
pos: posio em bytes

/ fwrite
Grava dados binrios.
Sintaxe tpica:
n b = fwrite(fid, m, prec)

Parmetros:
Entrada
fid: identificador de arquivo (file-handle)
m: matriz
prec: preciso

Sada
nb: nmero de bytes gravados

A preciso dada por:


Tipo de dado Descrio
double
Preciso Dupla
single
Preciso Simples
int8
Inteiro 8 bits c/ sinal
uint8
Inteiro 8 bits s/ sinal
intl6
Inteiro 16 bits c/ sinal
uintl6
Inteiro 16 bits s/sinal
int32
Inteiro 32 bits c/ sinal
uint32
Inteiro 32 bits s/ sinal
int64
Inteiro 64 bits c/ sinal
uint64
Inteiro 64 bits s/ sinal
char
Caractere

Preciso
'real*8'
'realM'
'integerT
'integerT
'integer*2
'integer*2'
'integer*4'
'integer*4'
'integer 8'
'integer 8'
'char'

Exemplos:

cap4_fwrite_exemplo: grava uma matriz com preciso dupla em arquivo binrio;

cap4_fread_exemplo: l o arquivo em uma matriz com preciso dupla de arquivo


binrio.

MATLAEP 7-Fundamentos :

edit: cap4_fwrite_exemplo ()________________________


% c a p 4 _ f w r i t e _ e x e mplo( m, arquivo )
% Grava matriz m em arquivo com formato binrio
function cap4_fwrite_exemplo(m, arquivo)
fid=fopen(arquivo,'w'); % Abre arquivo para gravacao
f w r i t e (f i d , m , 'r e a l * 8 1); % Grava com preciso dupla
fc l o s e (f i d ) ;

edit:

cap4_fread_exemplo

()____________________________

% c a p 4 _ f r e a d _ e x e mplo( arquivo )
% Le matriz m do arquivo com formato binrio
function m=cap4_fwrite_exemplo(arquivo)
fid=fo p e n (arquivo,'r '); % Abre arquivo para leitura
m = f r e a d (fi d , 1r e a l * 8 '); % L com preciso dupla
fc l o s e (f i d ) ;

Execuo:
a= [1 0 .5; -2 3] ;
cap4_fwrite_exemplo(inv(a),'i n v _ a . d a t '); % Grava a inversa de a
b = c a p 4 _ f r e a d _ exemplo(1i n v _ a . d a t '); % Le a inversa
a*reshape(b,2,2) % Testa os valores lidos
ans =

1
0

0
1

4.4. Arquivos de Formatos Especficos


4.4.1. Arquivos ASCII
S

cvsread

L arquivos em formato CSV (separado por vrgulas).


Sintaxes tpicas:
m = cvsread(arquivo)
m = cvsread(arquivo, nl, nc)

Parmetros:
Entrada

Sada

arquivo: nome do arquivo

m: dados lidos

nl, nc: nmeros de linhas e de colunas

Leitura e Gravao de Arquivos

( 233

cvswrite

Grava arquivos em formato CSV (separado por vrgulas).


Sintaxes tpicas:
c v s w r i t e (arquivo,m)
cvswrite(arquivo, m, nl, nc)

Parmetros:
Entrada
arquivo: nome do arquivo
m: matriz com os dados a serem gravados
nl, nc: nmeros de linhas e de colunas
S

Sada

dlmread

L arquivos em formato delimitado (separado por caractere delimitador).


Sintaxes tpicas:
m = dlmread
m = dlmread
m = dlmread

(arquivo)
(arquivo,
(arquivo,

d)
d, nl, nc)

Parmetros:
Entrada
arquivo: nome do arquivo
d: caractere delimitador
nl, nc: nmeros de linhas e de colunas
S dlmwrite

Sada
m: dados lidos

Parmetros:

Entrada
arquivo: nome do arquivo
m: matriz com os dados a serem gravados
d: caractere delimitador
nl, nc: nmeros de linhas e de colunas

Sada

Observao: se o caractere delimitador for omitido, a funo a s s u m e o u '

/ textread
L arquivos com dados formatados por colunas, em variveis separadas.
Sintaxe tpica:
[vl,v2,..]

= textread(arquivo,formato)

Parmetros:
Entrada
arquivo: nome do arquivo
formato: string de formato

Sada
v1,v2,.: colunas lidas

Exemplo: l o arquivo 'dados1.txt' composto por uma coluna de texto e duas de valores
numricos.

[mes,vl,v 2 ]= t e x t r e a d ( 'd a d o s l .t x t 1, 1%s %f % f );

a
m m

1m

N am e a .
) i: r n e s

I V alue
;

3vi" '
3 v2

I :stack:j O
{ C la ss

<6x1 cell>
cell
[9.57;8.33;10.1... double
[55.95;49.81;51... double

/ textscan
L arquivos com dados formatados por colunas, em um cell array.
Sintaxe tpica:
cel = t e x t s c a n (fid,formato)

Leitura e Gravao de Arquivos

Parmetros:

Sada
cel: cell array

Entrada
fid: identificador de arquivo (file-handle)
formato: string de formato
Exemplo: l o arquivo 'dadosl .txt'.

fid=fo p e n ('d a d o s l .t x t ',1r 1);


c e l = t e x t s c a n (fi d , '%s %f %f'),
f c l o s e (fi d ) ;

i l Array Editor - cel


f i t s s i
I 1 r.
y j ans
H l cet

f f if id

File

ij 82

<1 x3 cell>

E dit

V iew

&

=i

G raphics
#

Debug

D e s k to p

W indoi

S ta c k . ' L

2
3
1 :(<6x1 ce> H9.57.8.33... I55.95'; 49... J
2]
g J I I I ' I " ________ 1 _______ _.j_____

..r.

<

6 i
71

j
1

sC u rre n t D ire c to ry ! W n rk s n a n ft !

4.4.2. Planilhas *.XLS e *.WK1


S

xlsfinfo

Obtm dados de uma planilha MS-Excel (*.xls).


Sintaxe tpica:
[tipo,pastas]

= xlsfinfo(arquivo)

Parmetros:
Entrada
arquivo: nome do arquivo

Sada
tipo: descritivo do tipo
pastas: nomes das pastas (cellarray)

Exemplo:

[tipo,pastas]=xlsfinfo('cap2_dados2.xls')
tipo =
Microsoft Excel Spreadsheet
pastas =
'P l a n l '
1P l a n 2 1
'Plan3'

236

MATLAB 7- Fundamentos

xlsread

L planilhas MS-Excel (*.xls).


Sintaxes tpicas:
[n,a] = xlsread(arquivo)
[n,a] = xlsread(arquivo,
[n,a] = xlsread(arquivo,

pasta)
pasta,

intervalo)

Parmetros:
Entrada
arquivo: nome do arquivo
pasta: nome da pasta
intervalo: range, por exemplo, 'A1 :B5'

Sada
n: dados numricos
a: dados alfanumricos

Exemplo:
m = x l s r e a d (1cap 2_dados2.xis' 1P l a n l ' 'Al :B 3 ')
m =
0
34.16
2.04
58.74
4.08
75.82

S xlswrite
Grava planilhas MS-Excel (*.xls).
Sintaxes tpicas:
xlswrite
xlswrite
xlswrite

(arquivo,m)
(arquivo,m,
(arquivo,m,

pasta)
pasta,

intervalo)

Parmetros:
Entrada
arquivo: nome do arquivo
pasta: nome da pasta
m: dados (pode ser cell array)
intervalo: range, por exemplo, 'A1:B5'

Sada

Exemplo: gravar apenas dados numricos.

x l s w r i t e (1c a p 4 _dadosl.xis',magic 5) ) ;

Exemplo: gravar apenas dados alfanumricos e numricos.


cel= { 'DOL' 'O Z 1 '; .3.19 39.65;
cel =
'DOL'
'OZ1'
[3.19]
[39.65]
[3.18]
[39.68]
[3.17]
[39.67]

3.18 39.68;

iS B

jPj Afcpyo
D

gdiiar

Al

A
l
1 DL
2 .... 3,19
\ 3 - 3,18
4
3.17

>> x l s w r i t e (1cap4_dados2.xis 1,c e l );

3.17 39.67}

Exibir. Jpsenr.

S3 G l v y &
^
fx DOL
; ....
B
OZ1
39,S5
33.68
3-5,6?

wk1 read

L planilhas Lotus123 (*.wk1).


Sintaxes tpicas:
m = wklsread(arquivo)
m = w k l r e a d (arquivo, linha,

coluna)

Parmetros:
Entrada
arquivo: nome do arquivo
linha, coluna: intervalo de leitura (base 0)

Sada
m: dados

Exemplo:
w k l r e a d (1lotusl w k l 1)
300. 00
1.00
2.00
400. 00
500. 00
3.00
4.00
600. 00
700. 00
5.00
>> m l = w k l r e a d (1l o t u s l .w k l 1,3,2)
ml
49 19
51 29
50 53
50 67

238

50
50
50
51
50

69
82
71
29
67

50
48
51
49
50

26
94
42
19
53

MATLAEP 7 - Fundamentos 1

w klw rite

Grava planilhas Lotus123 (*.wk1).


Sintaxes tpicas:
wklwrite
wklwrite

(arquivo, m)
(arquivo, m,

linha,coluna)

Parmetros:
Entrada
arquivo: nome do arquivo
m: dados
linha, coluna: intervalo de leitura (base 0)

Sada

Exemplo: gravar apenas dados numricos.

w k l w r i t e ('l o t u s 2 . w k l ', mag i c (5));

* i
2 :
3
4
5 ;

B
1?J
23
4
10
11

C
2.4
5
b
12
18

4.4.3. Arquivos de udio


S

sound / w avplay

Converte vetor numrico em som.


Sintaxes tpicas:
sound(s,fs)
wavplay(s,fs)

Parmetros:
Entrada
s: vetor numrico
fs: freqncia

Leitura e Gravao de Arquivos

D
1
7
13
19
25

Sada

8
14.
20
21
2

.15
16
22
3
9

wavread

L arquivo MS-Wave (*.wav).


Sintaxe tpica:
[S,Fs]

= wavread(arquivo)

Parmetros:
Entrada
arquivo: nome do arquivo

Sada
S: sinal
Fs: freqncia

Exemplo:
edit:

cap4_wavread_exemplo

()__________

% cap4_wavread_exemplo
function cap4_wavread_exemplo ( )
[S,fs]=wavread('TestSnd.wav'); % Le 'TestSnd.wav'
s u b p l o t (2,1,1)
% Exibe os dois canais
p l o t ( S (:,1))
t i t l e ('Canal 1')
s u b p l o t (2,1,2)
p l o t (S (:,2))
t i t l e (1Canal 2')
sound(S,fs)
% Executa audio

Execuo:

cap4_wavread_exemplo

View

In s e rt

Q trB i

File

Ed-.t

fe :

Tools

D esktop

W indow

Si O ;

3.6

Hep

1 0

0 .8

I 3

1 .2

JuL
08

1.2

1 .4

16

A
14

18

2\

16

1.8

2
X 10*

240

MATLAB 7 - Fundamentos

wavrecord

Obtm sinal do dispositivo de entrada de som.


Sintaxe tpica:
S = w a v r e c o r d ( n , Fs)

Parmetros:
Entrada
n: tamanho da amostra (nmero de bytes)
Fs: freqncia

Sada
S: sinal obtido do dispositivo

Exemplo: grava 5 segundos de entrada do microfone e reproduz o som gravado.


edit: cap4_wavrecord_exemplo

()________________________________________

echo on
% cap4_waverecord_exemplo
% Frequencia
Fs = 11025;
% Grava
y = w a v r e c o r d (5*Fs, Fs, 1i n t l 1);
% Reproduz
pause
w a v p l a y ( y ,F s );

wavvvrite

Grava arquivo no formato *.wav.


Sintaxes tpicas:
wavwrite(S,arquivo)
w a v w r i t e ( S , F s ,arquivo)

Parmetros:
Entrada
S: matriz com sinal numrico
arquivo: nome do arquivo
Fs: freqncia

Sada

Exemplo: l dois arquivos *.wav, 'emenda' os sinais e grava no arquivo.


edit:

cap4_wavwrite_exemplo

()______________________

% cap4_wavread_exemplo
function cap4_wavread_exemplo ( )
[S ,f s ]= w a v r e a d ('T e s t S n d . w a v 1); % Le 'TestSnd.wav'
s u b p l o t (2,1,1)
% Exibe os dois canais
p l o t (S (:,1))

Leitura e Gravao de Arquivos

t i t l e (1Canal 1 1
s u b p l o t (2,1,2)
p l o t ( S (:,2))
t i t l e (1Canal 2'
sound(S,fs)

% Executa audio

4.4.4. Arquivos de Imagem


S

imfinfo

Obtm informaes de arquivo imagem.


Sintaxes tpicas:
fileinfo = iminfo(arquivo)
fileinfo = iminfo(arquivo,

fmt)

Parmetros:
Entrada
arquivo: nome do arquivo
fmt: formatos de arquivo de imagem
Formato
'bmp1
'cur'
'gif'
'hdf
'ico'
'jpg' / 'jpeg'
'pbm'
'pcx'
'pgm' / 'png' / 'pnm' / 'ppm'
'ras'
'tif'/'tiff'
'xwd'
S

Sada
fileinfo: struct com informaes

Descrio
Windows bitmap (BMP)
Windows Cursor (CUR)
Graphics Interchange Format (GIF)
Hierarchical Data Format (HDF)
Windows Icon (ICO)
Joint Photographic Expers Group (JPEG)
Portable Bitmap (PBM)
Windows Paintbrush (PCX)
Portable formats (PGM/PNG/PNM/PPM)
Sun Raster (RAS)
Tagged Image File Format (TIFF)
X Windows Dump (XWD)

image

Exibe contedo de uma matriz como imagem.

MATLAEP 7 Fundamentos

Sintaxe tpica:
image (RGB )

Parmetros:
Entrada
RGB: dados da imagem

Sada

Observao: a matriz RGB deve ser uma matriz tridimensional. Cada plano deve conter os
planos das cores vermelha, verde e azul.___________________________________________

/ imread
L arquivo de imagens.
Sintaxes tpicas:
RGB = imread(arquivo)
RGB = i m r e a d (a r q u i v o ,f m t )

Parmetros:
Entrada
arquivo: nome do arquivo
fmt: formatos de arquivo de imagem

Sada
RGB: dados da imagem

Observao: a matriz RGB deve ser uma matriz tridimensional. Cada plano tem de incluir os
planos das cores vermelha, verde e azul.___________________________________________

S imwrite
Grava arquivo de imagens.
Sintaxes tpicas:
imwrite (A, arquivo, fmt)
imwrite(A,ColorMap,arquivo,fmt)

Parmetros:
Entrada
RGB: dados da imagem
arquivo: nome do arquivo
fmt: formatos de arquivo de imagem

Leitura e Gravao de Arquivos

Sada

Observao: a matriz RGB tem de uma matriz tridimensional. Cada piano deve incluir os
planos das cores vermelha, verde e azul.
Exemplo:
edit: cap4_image_exemplo

()_________________________________

% cap4_image_exemplo (entrada,saida)
function cap4_image_exemplo(entrada,saida)
rg b = i mread(entrada);
i m a g e (rgb)
t i t l e (1Imagem O r i g i n a l ')
figure
s u b p l o t (2,2,1)
i m a g e (r g b (:,:,1))
t i t l e ('Mapa da Cor Vermelha (RED)')
s u b p l o t (2,2,2)
i m a g e (r g b ,2))
t i t l e ('Mapa da Cor V e r d e (GREEN)')
s u b p l o t (2,2,3)
i m a g e (r g b (:,:,3))
t i t l e ('Mapa da Cor A z u l (BLUE)')
s u b p l o t (2,2,4)
rg bl=bit e m p (rgb); % Bit complementar
i m a g e (r g b l )
t i t l e ('Cor c o m p l e m e n t a r 1)
imwri t e ( r g b l ,s a i d a ) ; % Grava arquivo da imagem com cores invertidas

Execuo:
|

c a p 4 _ i m a g e _ e x e m p l o ('NGJuly2002.j p g ' ,'c a p 3 .jpg ' );

Mapa da Cor-Vermelha (RED)

Mapa daor&rde|GREN) !

200 3 0 04 0 0 500

Nota: imagem disponibilizada pela revista National Geographic:


site http://www.nationalgeographic.com/photograpy._______

MATLAB 7-Fundamentos

4.4.5. Dados de Animao


</

addframe

Adiciona um quadro ao objeto de animao.


Sintaxes tpicas:
aviobj = a d d f r a m e (aviobj,frame)
wavplay(s,fs)

Parmetros:
Entrada

Sada

aviobj: handle de animao

aviobj: handle atualizado

frame: handle de figura (quadro)

avifile

Cria um arquivo de dados de vdeo (*.avi).


Sintaxes tpicas:
aviobj = avifile(arquivo)
wavplay(s,fs)

Parmetros:
Entrada

Sada

arquivo: nome do arquivo

aviobj: handle de animao

S aviinfo
Obtm informaes de arquivo de dados de animao (*.avi).
Sintaxe tpica:
fileinfo = aviinfo(arquivo)

Parmetros:
Entrada

Sada

arquivo: nome do arquivo

fileinfo: struct com informaes

245

aviread

L arquivo de ciados de animao (*.avi) e armazena em uma struct.


Sintaxe tpica:
m o v = aviread

(arquivo)

Parmetros:
Entrada
arquivo: nome do arquivo
/

Sada
mov: struct com informaes

getframe

Armazena a figura corrente em uma struct de quadro de animao.


Sintaxe tpica:
m o v = getframe

Parmetros:
Sada
mov: struct de quadro de animao

Entrada

movie2avi

Grava contedo de struct em arquivo *.avi.


Sintaxe tpica:
movie2avi

(mov,arquivo)

Parmetros:
Entrada
mov: struct de quadro de animao
arquivo: nome do arquivo
S

Sada

movie

Exibe animao e armazena uma struct de quadro de animao.


Sintaxe tpica:
movie(mov)

MATLAB 7- Fundamentos

Parmetros:
E n trad a

S ad a

mov: struct de quadro de animao


Exemplo:
edit:

cap4_avi_exemplo

()_______________________________________

% cap4_avi_exemplo ( )
% Cria uma animacao: surf(peaks) incremental
function mov=cap4_avi_exemplo(inic,fim)
ind=l;
for i = i n i c :fim

surf(peaks(i)); % Gera superficie


axis([0 fim 0 fim -10 10])
mov(ind)=getframe;
ind=ind+l;
end
% Grava arquivo
movie2avi(mov, 'cap4_avi_exemplo.a v i 1, 1C O M P R E S S I O N ', 'N o n e ')

Execuo:

c a p 4 _ a v i _ e x e m p lo(5,50)

*> F ig u r e 1
Ne

Et

View

Q iiB S

In s e rt

Tools

D esktop

W in d o w

Help

ts

a Q

4.4.6. Troca de Dados com Internet


S

ftp

Abre uma conexo com ftp.

Leitura e Gravao de Arquivos

( 247

Sintaxe tpica:
obj ftp=ftp(endereo,username,passcode)

Parmetros:
Entrada
ftp: endereo ftp
username, passcode: nome do usurio e
senha

Sada
objftp: objeto ftp

Observao: para acesso ftp 'anonimus' no necessrio fornecer username e passcode.


O objeto ftp retornado pela funo ftp necessrio para a execuo das funes de
acesso.
Funo
ascii(objftp)
binary(objftp)
cd(objftp,diretorio)
delete(objftp,arquivo)
dir(objftp)
close(objftp)
mget(objftp, arquivo)
mkdir(objftp,diretorio)
mput(objftp, arquivo)
rename(ftp, novo, velho)

Descrio
estabelece protocolo ASCII
estabelece protocolo binrio
muda de diretrio
apaga arquivo
lista contedo de diretrio
fecha conexo
download de arquivo
cria diretrio
upload de arquivo
muda nome de arquivo

Exemplo - execuo do arquivo 'cap4_ftp_exemplo.m':


cap4_ftp_exemplo
obj f t p = f t p (1f t p . m a t h works.c o m ' )
objftp =
F T P Object
host: ftp.mathworks.com
user: anonymous
dir: /
m o d e : binary
dir(obj ftp)
READM E
R E A D M E .incoming

incoming

matlab
outgoing
pickup

pub
pubs

c d (obj f t p , 'p u b ' )


ans =
/pub
dir(obj ftp)

MATLAB9 7 -Fundamentos

INDEX
NEWFILES

admin
beta
bin
books
compiler

conference
connections
contrib
digest
doc
franee
ftphelp

germany
italy
mathworks
matweb.exe
ops
outgoing
patch

Pentium
pressroom
proceedings
product-info
tech-support
temp
utilities

close(obj ftp)

sendmail

Prepara e-mail.
Sintaxe tpica:
sendmail (email,assunto .mensagem, anexos)

Parmetros:
Entrada
emaii: e-mail do destinatrio
assunto: assunto do e-maii
mensagem: contedo do e-maii
anexos: cell array com os nomes dos arquivos anexos

Exemplo:
edit: cap4_sendmail_exemplo
% cap4_sendmail_exemplo
echo on
setpref ( 'Internet' , 'E_mail' , 'elia_matsumoto@yahoo.coin.br' )
e m a i l = 'elia_mat s u moto@yahoo.c o m . b r ';
a s s u n t o = 'Teste para livro';
m e n s a g e m = 'Email c om 2 arquivos a n e x o s ';
an e x o s = {'cap4_ftp_exemplo.m' ...
'cap4_sendemail_exemplo.m'}
s e n d m ail(email,assunto,mensagem,anexos)

unzip

Descompacta arquivo *.zip.


Sintaxes tpicas:
unzip(arquivo_zip)
u n z i p (a r q u i v o _ z i p ,diretorio)

Leitura e Gravao de Arquivos

Parmetros:

Entrada____________________________________________
arquivo_zip: nome do arquivo zip
diretorio: diretrio no qual os arquivos vo ser descompactados
Exemplo:

u n z i p {'j p g . z i p ','c :\ t e s t e 1)
dir c:\teste

NGJuly2002.jpg

cap3.jpg
exercicio5.jpg
redeyedfrog.JPG

/ urlread
Retorna uma cadeia de caracteres com o contedo da uri indicada.
Sintaxe tpica:
s = urlread(endereo)

Parmetros:
Entrada
endereo: URL

Sada
s: cadeia de caracteres

Exemplo:
s = u r l r e a d ( 1h t t p ://www.editoraerica.c o m . b r 1)
s =
< H T M L x H E A D x T I T L E > E d i t o r a rica Ltda</TITLE>
<META c o n t e n t = "te x t / h tml; charset=ISO-8859-l http-equiv=Content-Type>
<META content=master@ erica.com.br name=Edson>
<META c o n t e n t = Copyright (c) 2003 b y Editora rica Ltda"
name=COPYRIGHT>
<META . . .

urlwrite

L o contedo da uri indicada e grava em arquivo.


Sintaxe tpica:
s = urlwrite(endereo,arquivo)

MATLAB 7 - Fundamentos

Parmetros:

Sada
s: nome do arquivo

Entrada
endereo: URL
arquivo: nome do arquivo
Exemplo:

u r l = 1h t t p ://www.editoraerica.com.br/buscafinal.asp ? c o d = 9 2 0 4 1;
s=url w r i t e ( u r i , 'editora.html')
s =
C:\matlab7\work\editora.html
open(s)
__________________________________________________
% > E d i t o r a E r ic a L t d a
1 File

Edit

View

j ^

Go

D ebug

: 4

Desktop

W indow

I V o lta r | 1* n d ic e d o liv ro 1 i
Pesquisar peto ttulo, autor, rea
ou cdigo. utHizando acentuao .

i.

C a t lo g u G e r a l

x A d m in is tr a o e
N e g c io s
^ A d m in is t r a o
^ A d m in is t r a o d o
Tem po
G r a m tic a
e R edao
S R e c u r s o s H u m a n o s
52 S e c r e ta r ia d o
- T e c n o lo g ia d a
i in f o r m a o

<

p j

j Location: j C:/m atlab7/w ork/editora.htm l

P e s q u is a r!

f B

Help
j

D o w n lo a d

M A T L A B 6 .5 - F u n d a m e n to s d e P ro g ra m a ;!
0 objetivo d e s te liv ro c a p a c ita r e s tu dantes e profissic
superior e ps-gra d u a o ) a utilizarem o M A TLA B 6.5 <
neste am biente, utilizando s u a linguagem de p rogram a :
em m a trizes.
Ele d e s c re v e o s tip o s de da d o s fundam entais d e s s a fe
re c u rs o s e fu n e s de im portao e arm azenam ento di
fu n e s de ge ra o e m a nipulao de g r fic o s e fig u r
dad o s , des envolvim ento de program as, m ecanism os de
am igvel com usurio, e ainda lista a s principais fune
a p licaes es p e c fic a s , com o tratam ento de polinmio, 1
dife re n c ia d a s ordinrias e de ou tro s pro d u to s baseado
abordagem s o b re o SymboBc M ath Toolbox.
A s e x p lic a e s est o sem pre ilus tradas c o n exem plos
aprendizado.
A u to r(e s ): lia Y a th ie M a ts u m o to
ISBN: 920 4 N Pginas: 344 Peso: 0,553 (Kg)
Form ato 17 x 24 c m Categoria L in g u a g e m d e P r o g i
R el - R * /H,U0
;|

zip

Compacta arquivos.
Sintaxe tpica:
zip(arquivo_zip,

arquivos)

Parmetros:
Entrada_________________________________________________
arquivo_zip: arquivo compactado
arquivos: cell array com os nomes dos arquivos a serem compactados
Exemplo:
z i p ('b m p .z i p ','*.b m p ')
dir *.zip
bmp.zip
jpg.zip

Leitura e Gravao de Arquivos

( 251

4.4.7. Outros Tipos de Funes


y

serial

Acesso porta serial.


Sintaxe tpica:
s=serial(porta)
serial(s,prop,valor)

Parmetros:
Entrada
endereo: URL
prop: propriedade
val: valor

Saida
s: handle de porta serial

Exemplo:

s = s e r i a l {1C O M 1 1);
set(s)
ByteOrder: [ {littleEndian} | bigEndian ]
BytesAvailableFcn: string -or- function handle -or- cell array
BytesAvailableFcnCount
Re a d A s y n c M o d e : [ {continuous} | manual
RequestToSend: [ {on} | off ]
StopBits
Terminator

A comunicao com portas seriais feita pelas funes de entrada e sada de 'baixo
nvel'.

Parmetros:

Entrada
arquivo: nome do arquivo
S

Sada
node: objeto documento

xmlwrite

Grava as informaes do document object model node em um arquivo.


Sintaxe tpica:
s tr=xmlwri te (a r q u i v o ,node )

Parmetros:
Entrada
arquivo: nome do arquivo
node: objeto documento
S

Sada
str: contedo em cadeia de caracteres

xslt

Converte documentos XML.


Sintaxe tpica:
xslt(origem,

estilo,

destino)

Parmetros:
Entrada
origem: nome de arquivo ou URL origem
estilo: estilo do arquivo ou URL
destino: nome de arquivo ou URL destino

Leitura e Gravao de Arquivos

Anotaes

254

MATLAB 7-Fundamentos

C a p tu lo

Grficos e Handle Graphics

Neste captulo, apresentamos os recursos grficos_ do MATLAB 7 e os grficos bi e


tridimensionais e suas propriedades; configurao de acabamento de superfcie,
iluminao, sombreamento e controle de visualizao.
O conjunto desses recursos denominado Handle Graphics

5.1. Grficos
Neste tpico, listamos os principais elementos e recursos relacionados criao e
manipulao de grficos do software.
Plot a principal ferramenta para gerao de grficos do programa. Sua funo bsica
gerar grficos bidimensionais a partir dos valores X e Y.
Como j mostrado, sua sintaxe bsica :
p l o t ( x l ,y l ,fml /x 2 ,y 2 ,f m 2 , . )

H3

Alm disso, existem funes que configuram aspectos informativos do grfico. Por
exemplo: title, xlabel, legend.
Estes, e todos os outros parmetros de configurao de grficos, podem ser
programados individualmente, por meio de funes de programao, ou interativamente
por meio do utilitrio [Plot Tools], acionvel pelo cone de mesmo nome, presente na
barra de ferramentas da janela grfica.

5.1.1. Utilitrio Plot Tools


Considere o grfico gerado pela execuo do arquivo cap2_exercicio_

Grficos e Handle G r a p h i c _______ ______ ______________________ ________V 5 >

Figure 1
File

Edit

View

In s e rt

Tools

D esktop

W indow

Help

E A pro x im a c a o por pi

E
E

A nn o ta tio ns
\

Line
A r ro w

Double A r r o w

T ext A r ro w

T
I

T ext B ox
I Rectangle

Property Editor - Figure


F ig ure Name.

G 3 S h o w Figure Num ber

Inspector...

Colo r map:
F ig ure C o lo r

[Plot Tools] Tool Bar (opes da barra de ferramentas)


B
tcone

Nome

Ao

New figure

Cria nova figura

Qr

Open file

Abre arquivo

Save

Armazena arquivo

<

Print

Imprime

Edit plot

Habilita/desabilita modo de edio de objeto

Identifique elemento para disponibilizar as opes de propriedades pertinentes ao


objeto selecionado.

O objeto tambm pode ser identificado na janela direita [Plot Browser],

As modificaes so automaticamente exibidas no grfico.

MATLAB 7-Fundamentos

No caso, o objeto selecionado uma curva cujas propriedades configurveis so:

[Plot Type]: tipo de grfico.

[Line]: tipo de linha, espessura e cor.

[Marker]: marcador, espessura e cor.

Para eixos, temos:

[Title]: ttulo do eixo.

[Colors]: cor.

[Grid]: grades nos eixos X, Y e Z.

Grficos e Handle Graphics

[Box]: linha de contorno.

[X Axis], [Y Axis], [Z Axis], [Font]: propriedades por coordenada:


.. Labei]: ttulo.
.. Limits]: valores mnimo e mximo de coordenada.
.. Scale]: escala linear ou logartmica.
.. Ticks]: divises, configurveis em uma outra janela.
[Font]: fonte de texto.

r A nn ota tion s
\

U ne
A r ro w

ouble A r ro w
T ext A r ro w

mwarniiHia
Titta

A p ro xim a ca o por polm omio de g r a j 1

......... ..
.....
C oiors j f o >| j - j

0X
0

0Y

: X A x is

y A x is

...............................;

Z Axs

FonS

X Labei: ! Tempo

Q z

E3ox

cone
. <a.

Nome

Ao

Zoom in/Zoom out

Aproxima / Afasta visualizao

Pan

Desloca visualizao

M/4TM0 7-Fundamentos

cone

Nome

Ao

Rotate 3D

Roda imagem em 3 dimenses

ou, para grfico 3D:


cone
11=1

Nome

Ao

Data cursor

Insere informao dos pontos da curva

O gerenciamento dos datatips feito pelo menu contextuai, acionvel pelo boto direito
do mouse.
Aproxii

por poinom lo de grau. 1 ;

140

120
+

100

. X: 63.27
, Y: 97.26 !
:

Selection Style
D is p la y S ty le

80

+
A

60

+ +
y

*
C r e a te N e w D a ta tip

+
++

E x p o r t C u rs o r D c to t o W o rk s p a c e ...

/
+
20

leone

40

60

Nome

Ao

Insert colorbar

Habilita/desabilita exibio de barra de cores

m~

Insert legend

Insere legenda

Hide/Show plot tools

Habilita/desabilita exibio do Plot tools

Grficos e Handle Graphics

D e le te

D e le te A il D a ta tip s

! X: 32.55

40

20

A !t-C lic k

D e le te C u r re n t D a ta tip

Colorbar
Apoximacao por poiinomio de grau 1
dati

120

Cut

- dst

Copy
Delete

100

C olor...
Edge C olor...
Line W idth

*Y *
j. /

S0

F o n t...

: 40

In te rp re te r

O rie n ta tio n

P roperties...

20

S to w M-code
J

20

60

...........!

100

.......

Inside N o rth East


O utside N orth East
Inside S outh East
Inside N orth W est
O utside N orth W est
Inside S outh W est

Legenda

As propriedades da legenda e colorbar podem ser configuradas por seus menus


contextuais.
[Plot T ools]: Plot Brow ser (janela direita)

MATLAB 7-Fundamentos

Controla, por meio de check-box, a exibio dos objetos que compem os eixos:
textos de ttuio, eixos (axes) e curvas (indicadas por legenda).

O menu contextuai permite: desabilitar/habilitar exibio e eliminar objeto.


[Add Data]: permite trazer variveis do workspace para a figura e escolher o tipo de
grfico com o qual os valores vo ser exibidos.
[Plot Tools]: Figure Palettes (janela esquerda)
[New Subplots]: cria novos eixos (2D e
-

A subdiviso definida pelo cone

3D) na figura (subplot).


EB (Create tiled subplots).

O novo eixo aparece no [Plot Browser].

[Variables]: expe variveis do Workspace, que podem ser adicionadas aos


grficos.

Grficos e Handle Graphics


_______________________

[Annotations]: exibe elementos de anotao, que podem ser inseridos na figura.


[Line]: linhas

A nnotations

[Arrow]: setas

U ne

N-\

A rro w

[Double Arrow]: setas com duas pontas

Double A r ro w
^

[Text Arrow]: textos com seta

T e x t A r ro w
T e x tB o x

1 1Rectangle

[Text Box]: textos

Ellipse

[Rectangle]: retngulos
[Ellipse]: elipses
jroxim acao por poin om io de gt

ij 3 A x e s (n o tile )
;0
-------y
;

A n notations

\ne...
\

A r ro w

Double A r ro w
Toxt A r ro w

T
I

T e x tB o x
I Rectangle

|O

Ellipse

Observao: elementos de anotao so objetos pertencentes figura; desta forma, podem


ser posicionados em qualquer regio da figura (no ficam restritos aos limites dos eixos) e
no aparecem no [Plot Browser],________________________________________________
[Plot Tools]: Properties Editor

( ja n e la

inferior)

Editor de propriedades. Seu contedo varivel de acordo com o objeto que est
sendo editado.

Propriedades da seta com duas pontas:


X

P r o p e r ty E d ito r - D o u b te a rra w
Line Style:

j --------------

U n e Width: 10 5
C o lo r

\vmm *1

Head Style:

v
v

iv b a c k l

; vback: 2

Head Width: [ 10.0

H e a d L e n h h 0.0

v j : 10.0

100

Insp ector...

--------

v ;
v;

Todas as propriedades da figura e dos eixos podem ser ajustadas pelas trs janelas
apresentadas: [Figure Pallete], [Plot Browser] e [Properties Editor],

MATLAB8 7 - Fundamentos

Essa configurao pode ser automaticamente armazenada em um m-file para uso


posterior. Por exemplo, considere a configurao pronta com o aspecto ilustrado na
figura seguinte:

Acione a opo [Generate M-file] no menu pop-up [File] do [Plot Tools], O m-file com as
configuraes automaticamente gerado e exibido no edit.
Editor - Untitled?*
F ie

M M E dit

View

In s e rt

N ew

O p e n ...

C trl+ O

Close

C trl+ W

Save

C trl+ S

S ave A s ...
<s8firae

E dit

Text

D a y

Tools

CeB

Tools

D ebug

D esktop

X % f t <n bf 0

W indow

Help

M f , \M ! 4

function createfigure(xl, yl, y2)


%CRE ATE FICURE{XI,Yi,Y2)
vector of x data

Im p o rt D a ta ...
S ave W orksp ace A s....
P re fe re n c e s ...
E x p o rt S e tu p ...

%% Create axes
axesl = axes(1Parent*,figure1) ;
title (axes 1 , 'AproxiiCcio poi; palifcosiio

Page S e tu p ...
P rin t S e tu p ...
P rin t P re v ie w ...
P rin t..;

C trl+ P

________________________________ createfig ure___________

In

34

Col

1 ;

Esse recurso facilita a codificao das funes de configurao de atributos de gerao


de grficos, pois o m-file gerado pode ser inserido dentro de outros cdigos. Por
exemplo:

Grficos e Handle Graphics

( 263

Funo

Ao
cria eixo na figura
configura eixo
formato de marcadores de eixos
configura grades
legenda
cria subjanelas
cria textos
ttulo do grfico
ttulo do eixo X
ttulo do eixo Y
ttulo do eixo Z

axes
axis
datetick
grid
legend
subplot
text
title
xlabel
ylabel
zlabel

[Plot Tools] Menu Pop-up


Menu

Opes
P

Contedo
New: criao de arquivos
View

In s e rt

D esktop

Tools

ffe iV

Wine

Open/Close: abre/fecha arquivos

M-File

C trl+ O

Figure

Close

C trl+ W

Variable

Save

C trl+ S

GUI

O p e n ...

Save, Save As: armazena arquivos


Generate m-file: cria m-file

Save A s ...
G en erate M -File...

File

Import Data: importao de dados

Im p o rt D a ta ...
Save W orkspa ce A s ...

Save Workspace /4s; salva variveis

P re fe re n c e s ...
E x p o rt S e tu p ...

Preferences: preferncias

Page S e tu p ...

Export Setup, Page Setup, Print: confi


gurao de exportao e impresso de
figuras (veja o tpico 3.5.2).

P rin t S e tu p ...
P rin t P re v ie w ...
P rin t...

C trl+ P

P | l l View : In s e rt

Tools

D esktop

th b

Edio 'padro Windows':


Undo, Redo

R edo

Cut, Copy, Paste, Paste Special

G r i* V

Select All, Delete

C trl+ A

Copy Figure: copia figura

Copy Options: opes de cpia

Figure Properties, Axes Properties, Current


Object Properties: abre editor de proprie
dades da janela inferior

Colormap: opes de mapas de cores

Cut

G rH -X

C opy

GH +C

Paste
Ctear
Select All
C o py Figure

Edit

C o py O p tio n s ...
Fig ure P ro p e rtie s ...
Ax e s P ro pe rtie s...
C u rre n t O b je c t P ro p e rtie s ...
Colorm ap ...
Find Files...
Clear Figure
Clear Command W indow
Clear Com mand H istory
Clear W orkspace

Find Files: busca de arquivos


Instrues de limpeza de contedo de janela

MATLAB 7 Fundamentos

Menu

Opes

Contedo
Habilita/desabilita barra de ferramenta:
Figure Toolbar
In s e rt

Tools

Camera Toolbar

Figure Toolbar
Cam era Toolbar

View

Plot Edit Toolbar


/ Figure Palette
V Plot Browser

</P ro p e rty Editor

Plot Edit Toolbar


abilita/desabilita exibio de janela:
Figure Palette
Plot Browser
Property Editor
sere elementos na figura:
X Label: ttulo do eixo X
Y Label: ttulo do eixo Y
Z Labei: ttulo do eixo Z

Tods

Desi

X Label
Y Label

T itle
Legend
C olorbar
Line

Insert

A rro w
T e x t A rro w
D ouble A rro w
T e x tB o x
R e ctangle
Ellipse
A xes

Title: ttulo do grfico


Legend: legenda
Colorbar: barra de mapeamento de cores
Line: linha
Arrow: seta
Text Arrow: texto com seta
Double Arrow: seta com duas pontas
TextBox: texto

Light

Rectangle: retngulo
Elipse: elipse
Axes: eixo
Light: luz
D e s k to p : W indow . Hei

Zoom In .
Zoom O u t
Pan

Edit Plot: habilita/desabilita edio


Zoom In, Zoom Out, Pan, Rotate 3D: con
trole de visualizao

R o ta te 3D
D a ta Cursor
R e s e t View

Tools

O ptions
Pin to A x e s
S nap To L a y o u t G rid
View L a y o u t Grid
S m a rt A lign a n d D is trib u te
A lign D is trib u te T o o l...
Align
D is trib u te
Basic F ittin g
D a ta S tatistics

Desktop

Grficos e Handle Graphics

Dock Figure 1

Data Cursor: informao da curva


Reset View: restaura vista
ecursos de distribuio de elementos na janela
Basic Fitting: recursos bsicos de ajuste de
curvas
Data Statistics: estatstica de dados
(veja prximos tpicos)

Menu

Opes

Contedo
Help

Window

Controle de janelas

0 MATLAB Com mand W indow


1 Fig ure 1

Ip
G raphics Help
P lo ttin g Tools
A n n o ta tin g G raphs

Help

Recursos de help

P rin tin g an d E x porting


W eb R esources

C h eck fo r U pdates
Dem os
A b o u t MATLAB

5.1.2. Exportao e Impresso de Figuras


Os recursos de exportao e impresso de figuras esto acessveis no menu pop-up
[File],

[Export Setup]: configurao de parmetros de exportao de figuras.


-

[Properties]: configura tamanho, tipo de acabamento, tipo de fonte e linha.


[Export Styles]: estilo de exportao (MS-Word ou MS-PowerPoint).

[Export]: nome de arquivo e tipo (listados no tpico 3.4.2).


^'Export Setup: Figure 1
P ro p e rtie s ..................................................................................................

W lS&

'! iFp*'"'
o nts

!;

W idth: I auto
H e ig h t; auto

Line s

:v Units;! in c h e s

:'

f ~ l Expand a x e s to f i figure

Exp o rt S ty le s
L oa d s e ttin g s from :
S ave a s s ty le nam ed
Delete a style.

[Page Setup]: configurao da folha de impresso.


[Size and Position]: tamanho e posicionamento.
[Paper]: tipo do papel (A4, Letter, etc.).
[Lines and Text]: tipos de linha e texto.
[Axes and Figure]: definio de eixos.

MATLAB7- Fundamentos

: M ode

; O Use screen size, centered on paga'


I 0 Use manual size and position
Manual size and position
Top;

3.31

Left

7
[1.33

W id th :

-5.83

U s e d e fa u lts
F ill p a g e
v -' | F ix a s p e c t ra tio |

H e ig h t

U .38

U n i t s jm c h e s

Help..

OK

j[

Cancel

Name:

[Print Setup]/[Print]: configurao


de impresso.
-

Janela de impresso padro


de aplicativos.

Status:

Ready

Type:

HP LaserJet 5

W ien:

W enstetn'jp

Comment:

Paper

Source:

& Portrait

jJ

i Sue:
| Automatical-y Select

j ]

Landscape

C ancel ;

1 Print Preview-Figuro 1
Page S e tu p ..

Refresh

Close

[Print Preview]: pr-visualizao


da pgina de impresso.

EE
Grficos e Handle Graphics

267

5.1.3. Utilitrio Basic Fitting


Estes recursos encontram-se no menu pop-up [Tools], Definem e aplicam mtodos de
ajuste de curvas para os dados selecionados.
B a s ic F i t t i n g - 1

" J B a s ic F i t t i n g

Select data:
.0

v ;

Center an d s ca le X data

[ j Center and s cale X data

C heck to display fits cut fig u re :


j O spline interpolant
i 1 C 3 s h a p e -p rese rving interpolant
j . O line a r
I :: |! _ ] q uadratic
j !' | D c u bic '
! | U 4th degree polynom ial
| j O 5 th degree polynom ial
i ;(_J 6th degree polynom ial
h O 7th degree polynom ial
j O 8th degree polynom ial
i Q 9th degree polynom ial
j 0 10 th degree polynom ial

C heck to dispiay tits on figure


s p lr.e interpolant
:[_ | shape-preserving interpolant

\n
!

Sigrdficant digits:

I i Plot residuals

J2

v i

B ar plot

Subplot

v :

Subplot

v |

S h o w norm o 1residuals

j[

C lose

I
j
j

!
;

v |

Pic* residuals

: Bar plot

Help

C oefficients and norm o l resichjals


1

S h o w equations

S ignificant digits . 2

Fit s

Q 6r|ear
O quadratic
Q cubic
4th degree polynom ial
[_J 5th degree polynomial
0 6th degree polynomial
\ | 7th degree polynomial
j__I 8th degree polynom ial
n 9th degree polynom ial
| 1 10th degree polynom ial

[ j S h o w equations

Select d ata

Hefei

S h o w norm c f residuals

jj

Close

,4

........

J i ......

L fc ir l:]

[Select Data]: permite escolher o conjunto de dados a serem utilizados.

[Center and Scale X data]: habilita/desabilita ajuste e centralizao dos dados em


X.
[Plot fit]: mtodo de ajuste de curvas.
-

spline interpolant: usa funo spline;


shape-preserving interpolant: usa funo pchirp;

linear: interpolao linear (aX + b);


quadratic: interpolao quadrtica;
cubic: interpolao cbica;

nth degree polynomial: interpolao de grau n.

[Show equations]: habilita/desabilita exibio das equaes.


[Significant digits]: dgitos significativos para exibio das equaes.
[Plot residuals]: habilita/desabilita exibio de grficos de resduos.
[Bar/Scatter/Line Plot]: tipo de grfico de resduos.
[Subplot/Separte Figure]: exibe grfico de resduos como subplot ou em outra
janela.
[Show norm residuals]: habilita/desabilita exibio de mdia residual.

268

MATLAB 7 - Fundamentos

[- ]: abre janela de exibio de resultados.

Exemplo:

Grfico dos dados do arquivo 'cap2_dados1 .txt': mtodo de interpolao linear com
exibio de equaes e grficos de resduos.
A p f s r i m s c a c ;> ar p o i i o m b d s g r a u 1
Select d a ta i data 1

y = 1 .2 *x * 12

D Center and sc ale X data

*
dataT~M
--------- lineaf
------------ d a ta 2

Pic* fits........................................................-

:: Check to display fits on figure


: i D spline interpolant
shape-preserving interpolant
i .iP ] linear

iE P

I f ! quadratic
H cubic
11 I 4th degree polynomial
5th
th
7th
6th

de g re e
de g re e
de g re e
de g re e

----- d a ta 2
----- linear

S:l P I re sidu als

::]
ii f i f
:G
if |

; A p ro x im a c a o por polinomio de gt
;P I
4- ' data 1
'iE
1 E

fe-sduas

polynomial
polynomial
polynomial
polynomial

;L j 9 th d e gre e polynomial
: :[_] 10th deg ree polynomial

E S how equations
Signitcant digits::.!2

;.V-:

R 1 Plot residuals
j Bar plot

:V i

18

20

30

40

50

70

80

30

; ; Subplot

Show m

E3 S how Figure Number


[

Help

] I

Close

: (

inspector ......

[
I

j:

|
Export Setup...

Grfico dos dados do arquivo 'cap2_dados2.txt1: mtodo de interpolao linear,


quadrtica e spline; com exibio de equaes e grficos de resduos.
Aproxsmacao po; polinomio de grau 1
i | E Ap'oxim acao por poinom o dc \

+ da*1

Select data: ; i data 1


P ] Center and scale X data
Plot fits ............................................................Check to display fits o n igur#___
i j s 3 s plin e in te rp o ia rt
:L J s h a p e -p re s e rv in g inte rpo la nt

1000

Cubic spline interpolant


y = 17*x-2.3e+0Q2
y = 0.17*x2 - 0.27*x + 43

y (y!

----- data 2
----- quadratic

jJE

-----

IE

500

f:iE

is 'ear

;Vj quadratic
P cubic

40

50

I ,

60

70 ;

SO

100

spline

-linear
residua>s

;j7j

: i . n 4th deg ree polynomial


O 5th deg re e polynomial
H 6th deg ree polynomial
j Q 7th deg re e polynomial
1f~l 8th deg re e polynomial
H 9th deg re e polynomial
0 10th deg re e polynomial

Illiiil
F

R S h o w equations
Significant d ig is

1P'T

Gij Plot residuals


i Bar plot

v j

j Subplot

V ;

' n

ji
|l

10

20

30 . 4 0

50

U.,. IlLI
[Jil[ ' T f
60

70

80

90 !

3S

S h o w norm of residuals
::: E S h o w Figure Number

Inspector...

Export Setup...

5.1.4. Utilitrio Data Statistics


Estes recursos esto no menu pop-up [Toolsj. Exibem dados estatsticos.

Grficos e Handle Graphics

[Statistics for]: permite escolher o conjunto de dados a serem utilizados.

[Check to plot statistics on figure]: habilita/desabilita exibio da informao.


-

p ia m a

e g g

min: valor mnimo (X, Y)


C heck to plot sta tis tic s on figure:

max: valor mximo (X, Y)


mean: mdia (X,Y)
median: mediana (X,Y)

, ,

X
min
max
:
mean i
median i
s td
1
range 1

3 .3 1 7

ioo O

1 3 9 .9

50 O

7424

50 Q

7 3 .6 5

2 9 .7 5 q

38 .1 1

100
!

1 3 6 .6

std: desvio padro (X,Y)

[Save to workspace]: armazena as informaes


em uma varivel do workspace.

S ave to w o rk s p a c e ...

) |

Help

] [

C lose

Exemplo:

Grfico dos dados do arquivo 'cap2_dados1.txt' com todas as informaes


estatsticas para o eixo Y.

5.1.5. Funes Grficas 2D


Neste tpico, listamos as principais funes de grficos bidimensionais.

Grficos Tipo 'Plot'


s

comet

Trajetria animada do grfico de (x,y).

MATLAB 7 - Fundamentos

Sintaxe tpica:
comet(x,y)

Parmetros:
Entrada
(x,y): pontos do grfico
Exemplo:
x=-2*pi:0.01:2*pi;
y=x.*cos(3*x);
comet(x,y)

errorbar

Grfico de (x,y) com barras de erro indicadas pelos vetores ei, es.
Sintaxe tpica:
errorbar(x,y,ei,es,fmt)

Parmetros:
Entrada
(x,y): pontos do grfico
ei: vetor de valores de erro inferior
es: vetores de valores de erro superior
fmt: formato da curva
Exemplo:
edit: cap5_errorbar_exemplo.m
echo on
% cap5_errorbar_exemplo( )
x=linspace(0,pi,20);
y=cos(x);
ei=std(y)*0.3*ones(1,20);
es=std(y)*0.l*ones(1,20);
errorbar(x,y,ei,es)

Grficos e Handle Graphics

hold

Habilita/desabilita sobreposio de grficos na mesma janela de figura.


Sintaxe tpica:
hold on/off

polar

Grfico de coordenadas polares.


Sintaxe tpica:
polar( ang,dist,fmt )

Parmetros:
Entrada_________________________________________________
(ang, dist): coordenada polar dada por ngulo em radianos e distncia
fmt: formato da curva
Exemplo:
ang=linspace(-pi,pi,3 0 )
dist=linspace( 0 , 1 , 3 0 ) ;
polar(ang,dist)

MATLAB3 7 - Fundamentos

plotyy

Cria grficos de duas curvas com escalas Y diferentes: 1- curva com eixo na esquerda e
2- na direita.
Sintaxe tpica:
plotyy (xl,yl,fmtl,x2,y2,fmt2)

Parmetros:
Entrada______________________
(x1 ,y1) e (x2,y2): pontos das curvas
fmtl e fmt2: formatos da curva
Exemplo:

x=linspace(-2*pi,2*pi,20);
subplot(1,2,1)
plot(x,sin(x),x,exp(x))
title(1Plot')
subplot(1,2,2)
plotyy(x,cos(x),x,exp(x))
title('Plotyy')

Grficos de rea Preenchida, Barra e Pizza

area/bar/barh

area: grfico de rea preenchida,


bar: grfico de barra vertical,
barh: grfico de barra horizontal.
Sintaxes tpicas:
area(m) / area(x,Y)
bar(m) / bar(x,Y)
barh(m) / barh(x,Y)

Parmetros:
Entrada_____________________
m: matriz (exibe dados por coluna)
(x,Y): dados do eixo X e eixo Y
Exemplo:
edit: cap5_area _exemplo.m
% cap5_area_exemplo
x=l:6;
y=sin(x)+randn(1,6)*0.1;
subplot(1,3,1)
area(x,y)
title('Area')
subplot(1,3,2)
bar(x,y)
title('Bar1)
subplot(1,3,3)
barh(x,y)
title('Barh')

pie

Grfico de pizza.
Sintaxes tpicas:
pie(x) 7 pie(x,ie)
pie(x,xe,labels)

Parmetros:
Entrada
x: dados
ie: indicador de fatias 'explodidas'
labels: nome das fatias
Exemplo:
>>

>>
>>

x=[l 4 2 5 3 2 ] ;
ie=[0 1 0 0 1 0] ;
nomes={1Jan1 'Fev1 'Mar' 'Abr' 'Mai 'Jun');
pie(x,ie,nomes)

G rficos de D ireo
y

compass

Desenha vetores com origem (0,0) dentro de eixo polar.


Sintaxe tpica:
compass(u,v)

Grficos e Handle Graphics

Parmetros:
Entrada_______________________
u: vetor com valores no primeiro eixo
v: vetor com valores no segundo eixo
Exemplo:
u=[l 0 -1 0] ;
v=[0 1 0 -1];
coinpass (u,v)

feather

Desenha vetores que deslocam a origem automaticamente.


Sintaxe tpica:
feather(u,v)

Parmetros:
Entrada
u: vetor com valores no primeiro eixo
v: vetor com valores no segundo eixo
Exemplo:
>> u=0:0 .5 :2 ;
v=u+l;
feather(u,v)

/ quiver
Dadas 4 matrizes, desenha vetores de direo bidimensionais.
Sintaxe tpica:
quiver(X,Y,U,V)

Parmetros:
Entrada
(X,Y): pontos da 18 coordenada dos vetores
(U,V): pontos da 2- coordenada dos vetores
Exemplo: arquivo cap3_gradient_exemplo.m
edit: cap3_gradient_exenplo.m_______
% cap3_gradient_exemplo ()
echo on
% Gerar superficie
[X,Y]=meshgrid(-pi:0.2:pi,-pi:0,2:pi);
Z=cos(X).*Y;
% Calculo do gradiente
% Derivadas parciais da curva
[PX,PY]=gradient(Z,0.2,0.2);
% Visualizacao dos resultados
subplot(2,1,1)
surf(Z)
title('Superficie1)
subplot(2,1,2)
contour(Z)
hold
quiver(PX,PY)
title('Gradientes')

Grficos e Handle Graphics_______________________________ _________ ^277^

Grficos de Dados Discretos

stem / stairs

stem: grfico de hastes,


stairs: grfico de degraus.
Sintaxes tpicas:
stem(x,y)
stairs(x,y)

Parmetros:
Entrada
x,y: pontos
Exemplo:

>>

x=-pi:0.2:pi;
y=sin(x);
subplot(1,2,1)
stem(x,y)
title('Stem')
subplot(1,2,2)
stairs(x,y)
title('Stairs)

5.1.6. Funes Grficas 3D


Neste tpico, arrolamos as principais funes de grficos tridimensionais.

Curvas 3D

plot3 / comet3

plot3: grfico de curva 3D.


comet3: grfico de curva 3D com exibio de trajetria animada.
Sintaxes tpicas:
plot3(x,y,z)
comet3(x,y,z)

MATLAB 7-Fundamentos

Parmetros:
Entrada_________________
(x,y,z): coordenadas da curva
Exemplo:
edit: cap5_plot3_exemplo.m
% cap5_plot3_exemplo
x=-5*pi:0.1:5 *pi;
y=-5*pi:0.1:5*pi;
z=x+y;
subplot(1,2,1)
plot3(cos(x),sin(y),x+y)
title(1Plot31)
subplot(1,2,2)
comet3(cos(x),sin(y),x+y)
title(1Comet31)

S ribbon
Gera um grfico tipo 'fita' tridimensional.
Sintaxe tpica:
ribbon(x,y)

Parmetros:
Entrada________________
(x,y): coordenadas da curva
Exemplo:
x=-pi:0.1:pi;
y=x.*cos(3*x);
ribbon(x,y)

Grficos e Handle Graphics

rea e Pizza 3D
y

bar3 / bar3h

bar3: grfico de barra 3D vertical.


bar3h: grfico de barra 3D vertical.
Sintaxes tpicas:
bar3(m) / bar3(x,Y)
barh3(m) / barh3(x,Y)

Parmetros:
Entrada
m: matriz (exibe dados por coluna)
(x,Y): dados do eixo X e eixo Y
Exemplo:
y=sin(x)+randn(1,6)*0.1;
subplot(1,2,1)
bar3(x,y)
title(Bar31)
subplot(1,2,2)
bar3h(x,y)
title(1Bar3h')

li
S pie3
Grfico de pizza.
Sintaxe tpica:
pie3 (x)

Parmetros:

II

Exemplo:

>>
>>
>>

x[1 4 2 5 3 2 ] ;
ie=[0 1 0 0 1 0];
nomes={1Jan1 'Fev' 'Mar' 1Abr 1 'Mai ' 1Jun'};
pie3(x,ie,nomes)

Malhas e Superfcies
y

cylinder

Retorna as matrizes com coordenadas MX, MY e MZ necessrias para criar uma


superfcie cilndrica.
Sintaxe tpica:
[MX,MY,MZ] = cylinder(Raio,N)

Parmetros:
Entrada
Raio: raio do cilindro. Se for um vetor, gera cilindro com dimetro varivel
N: nmero de faces
/ ellipsoid
Retorna as matrizes com coordenadas MX, MY e MZ necessrias para criar um
elipside.
Sintaxe tpica:
[MX,MY,MZ] = ellipsoid(XC,YC,ZC,XR,YR,ZR,N]

Parmetros:

meshc / mesh I surf I surfc / waterfall

Variaes de grficos de superficies,


meshc: malha com curva de nvel,
mesh/surf: m alha/superfcie.
surfc/surf: superfcie com curva de nvel / com efeito de iluminao,
waterfall: malha fechada na lateral.
Sintaxes tpicas:
mesh(MX,MY,MZ)
mesh(MZ)

Parmetros:
Entrada_______________________________
MX, MY, MZ: matrizes de coordenadas X, Y e Z
Exemplo:
edit: cap5_mesh_exemplo,m
% cap5_mesh_exemplo
x=-pi:0.5:pi;
y=-pi:0.5:pi;
[MX,MY]=meshgrid(x,y);
MZ=cos(MX)+sin(MY);
subplot(2,2,1)
meshc(MX,MY,MZ)
title('Meshc1)
subplot(2,2,2)
surf(MX,MY,MZ)
title('Surf 1)
subplot(2,2,3)
surfc(MX,MY,MZ)
title('Surfc1)
subplot(2,2,4)
waterfall(MX,MY,MZ)
title('Waterfall')

meshgrid

A partir dos vetores X e Y dos eixos, cria as matrizes com coordenadas MX, MY
(resultantes do cruzamento de X e Y), necessrias para criar malhas e superfcies.
Sintaxe tpica:
[MX,MY] = meshgrid(X,Y)

MATLAB3 7 Fundamentos

Parmetros:
Entrada
X,Y: vetores com coordenadas dos eixos
s

Sada
MX,MY: matrizes de coordenadas

peaks

Retorna as matrizes com coordenadas MX, MY e MZ necessrias para criar a superfcie


peaks.
Sintaxe tpica:
[MX,MY,MZ] = peaks(N)

Parmetros:
Entrada_________
N: nmero de faces
s

sphere

Retorna as matrizes com coordenadas MX, MY e MZ necessrias para criar uma esfera.
Sintaxe tpica:
[MX,MY,MZ] = sphere(N)_____________________________________________

Parmetro:
Entrada______________________________________________________________________
N: nmero de faces_____________________________________________________________
Exemplos:
edit: cap5_ormas3d_exemplo.m_____________
% cap5_formas3d_exemplo
[MX1,MY1,MZ1]=cylinder([1 0.5 1],20);
[MX2,MY2,MZ2]=ellipsoid(0,0,0,0.5,0.1,3,20);
[MX3,MY3,MZ3]=peaks(10);
[MX4,MY4,MZ4]=sphere(20);
subplot(2,2,1)
surf(MX1,MY1,MZ1)
title(1Cylinder')
subplot(2,2,2)
surf(MX2,MY2,MZ2)
title('Ellipsoid')
subplot(2,2,3)
surf(MX3,MY3,MZ3)
title('Peaks')
subplot(2,2,4)
surf(MX4,MY4,MZ4)
title('Sphere')

Grficos e Handle Graphics

( 283

Grficos de Direo 3D e Dados Discretos


v'

quiver3

Dadas 3 matrizes, desenha vetores de direo tridimensionais.


Sintaxe tpica:
[MX,MY,MZ] = quiver3(X,Y,Z,U,V,W)

Parmetros:
Entrada______________________________
(X,Y,Z): pontos da 1a coordenada dos vetores
(U,V,W): pontos da 2a coordenada dos vetores
Exemplo:
edit: cap5_quiver3_exemplo.m
% cap5_quiver3_exemplo
x=-pi:0.5:pi;
y=-pi:0.5:pi;
[MX,MY]=meshgrid(x,y)
MZ=sin(MX)+ C O S (MY);
[U,V,W]=surfnorm(MX,MY,MZ) ;
quiver3(MX,MY,MZ,U,V,W);
hold on
surf(MX,MY,MZ)

MATLAB7- Fundamentos I

stem3

Grfico de hastes 3D.


Sintaxe tpica:
stem3(x,y, z)

Parmetros:
Entrada
x,y,z: pontos
Exemplo:

t=0:0.2 :2*pi;
x=cos(t);
y=sin(t);
z=x+y;
stem3(x,y,z)

surfnorm

Retorna os vetores normais de uma superfcie.


Sintaxe tpica:
[NX,NY,NZ] = surfnorm(MX,MY,MZ)

Parmetros:
Entrada
MX,MY.MZ: coordenadas da superfcie

Grficos e Handle Graphics

Sada
NX,NY,NZ: vetores normal

Grficos de Curva de Nvel


s

contour I contourS / contourc / contourf

Desenha curva de nvel de superfcie,


conlour: curva de nvel em 2D.
contour3: curva de nvel em 3D.
contourf: curva de nvel em 2D, preenchida.
Sintaxe tpica:
c o n t o u r ( M X , M Y, M Z )
c o n to u r(M Z )

Parmetros:
Entrada_______________________________
MX, MY, MZ: matrizes de coordenadas X, Y e Z
Exemplo:
edit: cap5_contour _exemplo.m
% cap5_contour_exemplo
x = - p i :0.5:p i ;
y = - p i :0.5:pi;
[MX,MY]= m e s h g rid(x,y);
M Z = c o s (MX)+ s i n (MY);
s u b p l o t (2,2,1)
s u r f (MZ)
t i t l e (1Superficie 1)
s u b p l o t (2,2,2)
contour(MZ)
t i t l e ('Curvas 2D')
s u b p l o t (2,2,3)
contour3(MZ)
t i t l e ('Curvas 3D')
s u b p l o t (2,2,4)
contourf(MZ)
t i t l e (1Curvas p r e e n c h i d a s ')

5.1.7. Grficos de Frmulas Matemticas


/

ezcontour

Curva de nvel de funo matemtica de duas variveis.

Sintaxes tpicas:
ezcontour (f)
ezcontour (f, dom)

ezcontourf

Curva de nvel preenchida de funo matemtica de duas variveis.


Sintaxes tpicas:
ezcontourf (f)
ezcontourf (f, dom)

Parmetros:
Entrada______________________________
f: funo (descrita como cadeia de caracteres)
dom: domnio
Exemplo:
I ezcontour('cos(x)+sin(y)1)
I >> ezcontourf(1cos(x)+sin(y) ')

ezmesh / ezm eshc


ezmesh: malha de funo matemtica de duas variveis.
Hl

ezm eshc: malha de funo matemtica de duas variveis com curva de nvel.
Sintaxes tpicas:

ezmesh (f)
ezmesh (f, dom)

:';Grficos e Handle Graphics

Parmetros:
Entrada
f: funo (descrita como cadeia de caracteres)
dom: domnio
Exemplo:
| ezmesh('cos(x)+sin(y)')

ezplot / ezplot3

ezplot: curva de funo matemtica de uma varivel.


ezplot3: curva de funo matemtica paramtrica 3D.
Sintaxes tpicas:
ezplot (f)
ezplot (f, dom)

Parmetros:
Entrada______________________________
f: funo (descrita como cadeia de caracteres)
dom: domnio
Exemplo:

ezplot('cos(x)+sin(x)1)
ezplot3('cos(x)+sin(y)')

288

MATLAB 7 - Fundamentos

ezpolar

Funo matemtica de uma varivel, em coordenada polar.


Sintaxes tpicas:
ezpolar(f)
ezpolar(f, dom)

Parmetros:
Entrada
f: funo (descrita como cadeia de caracteres)
dom: domnio
Exemplo:
|

ezpolar('t')
90

8
^ .6 0

1 2 0 ^ "

6
150/

--?

30

2/

21V

2 4 ( 3 ^ _

21 0

Grficos e Handle Graphics

33o

/ ezsurf / ezsurfc
ezsurf: superfcie de funo matemtica de duas variveis.
ezsurfc: superfcie de funo matemtica de duas variveis com curva de nvel
Sintaxes tpicas:
ezsurf (f)
ezsurfc (f, dom)

Parmetros:
Entrada______________ _______________
f: funo (descrita como cadeia de caracteres)
dom: domnio
Exemplo:

ezsurf(1cos(x)+sin(y) 1)

5.1.8. Acabamento de Superfcies


As propriedades de acabamento de superfcie podem ser configuradas pelas funes e
no editor de propriedades no utilitrio [Plot Tools],
/

alpha

Configura transparncia.
Sintaxe tpica:
alpha (factor)

MATLAB 117-Fundamentos

Parmetro:
Entrada____________________________
factor: 0 < factor < 1 (0: invisvel /1 : opaco)
s

brighten

Ajusta intensidade de brilho.


Sintaxe tpica:
brighten (factor)

Parmetro:
Entrada
factor: -1 < factor < 1 (-1: totalmente sem brilho /1: totalmente brilhante)

colormap

Configura mapeamento de cores utilizado para exibir a superfcie.


Sintaxe tpica:
colormap(RGB)
colormap(Tipo)

Parmetros:

[Colormap Editor]: menu pop-up [Edit] na janeia de figuras.


s C o lo r m a p E d ito r

TooEM

S ta n d a r d c o lo m ia p s

W L ^

colordef

Restaura o mapeamento de cores padro.


Sintaxe tpica:
colordef(Tipo)

hidden

Remove linhas no visveis de malhas.


Sintaxe tpica:
hidden on/off

Exemplo:

292

MATLAB 7 - Fundamentos !

/ light
Configura propriedade de luz.
Sintaxe tpica:
light (Propriedadel, Valorl, Propriedade2, Valor2, ...)

Parmetros:

Nome da Propriedade
'Position'

Descrio
Posio

'Style'

Tipo

'Color'

Cor

Exemplo
light{'Position[0 0 1])
light(1Style 1,1Infinite') % Infinito
light(1Style',1Local1)
% Local
light(1C o l o r [0 1 0])
% Verde

lighting

Ajusta tipo de iluminao.


Sintaxe tpica:
lighting Tipo

Parmetros:
Tipo
flat
gouraud
phong
none
s

Descrio
plana (superfcie com uma s cor)
iluminao graduada
iluminao com sombreamento
sem iluminao

material

Configura propriedade de reflexo de superfcie.


Sintaxes tpicas:
material Tipo
material ([ka kd ks])

Grficos e Handle Graphic s

Parmetros:
Tipo
shiny
dull
metal
default
[ka kd ks]
S

Descrio
reflexo especular
reflexo difuso
reflexo metlico
reflexo padro
coeficientes de reflexo: ambiente, difuso, especular

shading

Define tipo de sombreamento.


Sintaxe tpica:
shading tipo

Parmetros:
Tipo
flat
faceted
interp

Descrio
plana (superfcie com uma s cor)
por face
cor de sombreamento com variao

Exemplo:
edit: cap5_render_exemplo.m____
function cap5_render_exemplo ( )

Original;

% Superficie
x=-pi:0 -5:pi;
Y=-pi:0.5:pi;
[MX,MY]=meshgrid(x,y),
MZ=cos(MX)+sin(MY);
subplot(1,2,1)
surf(MZ)
title('Original1)
% Mapa de cor
subplot(1,2,2)
surf(MZ)
title('Com Luz e Sombreamento')
colormap bone

Com Luz e Sombreamerjto;

% Luz phong
light
lighting phong
% Sombra interp
shading interp

294

MATLAB 7- Fundamentos

5.1.9. Visualizao 3D
A visualizao 3D controlada pelos parmetros de cmera, configurveis pela barra
de ferramenta [Camera] (menu [View]) e pelas funes listadas neste tpico.

Orbit Cameras

Faz a cmera 'orbitar1em torno do objeto:


- Click-&-drag (clique e arraste) faz o
movimento acompanhar o mouse.
-

Click, drag-&-drop (clique, arraste e solte)


faz o objeto 'girar' com o 'impulso1do mouse.

Orbit Scene Light

Faz a luz 'orbitar' em tomo do objeto.

Pan/Tilt Camera

Faz o eixo 'orbitar' na janela.

Move Camera
HorizontaA/ertically

Move cmera na horizontal e vertical.

Move Camera
Forward/Back

Move cmera para frente e para trs.

Zoom Camera

Aproxima/afasta imagem.

Roll Camera

Gira cmera.

Principal Axes

Define o eixo principal para 'Orbit Cameras' e


'Pan/Tilt Camera1.

Toggle Scene Light

Habilita/desabilita iluminao.

Orthographic
Projection

Projeo ortogonal.

[0

Perpesctive Projection Perspectiva.

Grficos e Handle Graphic s

Reset Camera and Scene Light

Restaura cmera e luz da cena.

(jjll

Stop Camera/Light Motion

Para movimentao 'orbital' de cmera e luz.

Funes de Configurao de Cmera


c a m d o lly
c a m lo o k a t
c a m o r b it
cam pan
cam pos
c a m p ro j
c a m p r o ll
c a m ta rg e t
cam va
cam zoom

Ao
move ponto de vist e ponto objetivo da cmera
visualiza objeto especfico
ativa cmera em 'rbita'
ativa movimentao de cmera horizontal/vertical
posiciona vista da cmera
muda tipo de projeo (ortogonal/perspectiva)
gira cmera
posiciona ponto objetivo da cmera
configura ngulo de vista da cmera
aproxima/afasta imagem

52. Handle Graphicss


0 MATLAB pode ser entendido com um objeto composto por uma janela principal, na
qual subjanelas ( windows) e janelas grficas (figures) so criadas para implementar seu
ambiente interativo.
Objetos grficos so formas geomtricas bsicas usadas pelo programa para exibir
dados em janelas de figuras. Cada instncia de um objeto grfico est associada a um
nico identificador chamado handle, por meio do qual podemos manipular suas
caractersticas.
Esta forma de organizao de informaes grficas no MATLAB denominada Handle
Graphicsi.
Todos as figuras criadas no tpico 5.1 fazem uso de objetos handle graphics, cuja
estrutura hierrquica representada pelo diagrama seguinte:

MATLAB 7- Fundamentos

Onde:
[Root]: janela principal do MATLAB.
[Figure]: janelas grficas.

[UI Objects]: objetos de interface com usurio (User Interface object) ou


UlControl, que sero apresentados no Captulo 6.

[Axes]: eixos
[Core Objects]: objetos bsicos
[axes]: eixo de coordenadas
[image]: imagem (matriz)
-

[light]: luz
[line]: linha ou curva
[patch]: polgono preenchido
[rectangle]: retngulo
[surface]: superfcie ou malha
[text]: texto

[Plot Objects]: conjunto composto por Core objects


[Group Objects]: conjunto composto por Axes

[Hidden Annotation Axes]: ttulos e textos de eixos


[Annotation Objects]: objetos de anotao (textos)

5.2.1. Criao de Figuras e Objetos Grficos


As funes de criao de objetos handle graphics retornam um valor numrico que
identifica univocamente o objeto criado. Este valor denominado handle.
Cada objeto possui propriedades que podem ser definidas na criao do objeto ou
configuradas posteriormente.
Exemplo (arquivo cap5_handle_exemplo.m):
Passo 1: criar janela grfica com a funo figure.
Hf =figure(l);

Passo 2: criar dois eixos com a funo axes e configurar a propriedade 'Position'.
Hal=axes('Position',[0.1 0.1 0.35 0.8]);
Ha2=axes('Position',[0.55 0.1 0.35 0.8]);

Grficos e Handle Graphics

Passo 3: criar f(x) = sin(x), [0,2pi] no primeiro eixo.


axes(Hal);
% Configura o primeiro eixo como eixo corrente
x=0:0.1:2*pi;
plot(x,sin(x))
Figure 1
File Edit View Insert Tools Desktop Window Help

#T "km Wn W\11 o n i a "


1
! 0 .9
08
0 ,7

06
05
0.4
0.3;

02
0,1
o;

0 .5

Passo 4: no segundo eixo, exibir a imagem do arquivo NGJuly2002.jpg1.


axes(ha2);
a=imread('NGJuly2002.jpg1);
image(a)

298

MATLAB-' 7 - Fundamentos ; 1


Fe

_______________ B _______ - J J M
Edit

View

D H

Insert

Tools

Desktop

Window

ti s i e i f t

Help

* |

DB

Esta a hierarquia dos objetos criados no exemplo:

Todas as funes de criao de objeto grfico descritas em seguida retornam o handle


do objeto criado.
Nome
axes('Position[XO YO DX DY])
% Janela toda
axes(1Position1,[0 Oil])
figure(Indice)
image(M)
light(X,Y,Z)
path(X,Y,Z)

Grficos e Handle Graphic^

Descrio
Cria eixo na janela corrente:
- (X0,Y0): origem do eixo
- (DX,DY): dimenses
Cria janela grfica
Cria imagem
Cria luz
Criar rea preenchida

( 299

Nome
rectangle{1Position', [XO YO DX DY])
% Retngulo na janela toda
rectangle('P o s i t i o n 0 Oil])
surface(X,Y,Z)
text(X,Y,texto)

Descrio
Cria retngulo
- (X0,Y0): origem do retngulo
(DX,DY): dimenses
Cria superfcie
Cria texto

5.2.2. Manipulao de Figuras e Objetos Grficos


Neste tpico, apresentamos as principais funes de acesso e identificao de objetos
grficos e as funes de consulta e configurao de propriedades de objeto.
-/

delete

Elimina objeto grfico.


Sintaxe tpica:
delete (hlist)

Parmetros:
Entrada
hlist: lista de handles
S

Sada

findobj

Localiza objetos com uma determinada propriedade.


Sintaxe tpica:
hlist = findobj(handle,pro,vai)

Parmetros:
Entrada
handle: identificador do objeto 'pai'
prop: propriedade
vai: valor

Sada
hlist: lista de handles

MATLAEP 7 Fundamentos |

Exemplo: considere a figura gerada pelo m-file cap5_mesh_exemplo.m. Vamos


identificar todos os objetos do tipo Axes e elimin-los.
edit: cap5_findobj_exemplo_____________________________
% cap5_findobj_exemplo
cap5_mesh_exemplo % Cria a figura
h=gcf; % handle da figura corrente
hlist=findobj(h, 'Type 1,1Axes') % Localiza os objetos 'Axes'
delete(hlist) % Elimina todos os elementos

Execuo do cap5_mesh_exemplo:

Execuo do cap5_findobj_exemplo:

File Edit

View Insert Tools Desktop Window

Q"cS B

^ <3. f?

gca

Obtm o handle do eixo corrente.


Sintaxe tpica:
h = gca

Parmetros:
Entrada

Sada
h: handle

gcbo

Obtm o handledo objeto cuja funo callbackest em execuo (veja prximo captulo).

Grficos e Handle Graphic1

( 301

Sintaxe tpica:
h = gcbo

Parmetros:
Entrada

Sada
h: handle

gcbf

Obtm o handle da figura cuja funo callbackest em execuo (veja prximo captulo).
Sintaxe tpica:
h = gcbf

Parmetros:
Entrada

Sada
h: handle

gco

Obtm o handle do objeto corrente.


Sintaxe tpica:
h = gbo

Parmetros:
Entrada

Sada
h: handle

ishandle

Verifica se o valor fornecido um handle vlido.


Sintaxe tpica:
| r=ishandle (h)

Parmetros:
Entrada
h: handle

302

Sada
r: true/false

MATLAEP 7 - Fundamentos

get

Obtm o valor de uma determinada propriedade do objeto.


Sintaxe tpica:
vai = get (handle)
vai = get (handle, prop)

Parmetros:
Entrada
handle: identificador do objeto 'pai'
prop: propriedade

Sada
vai: valor

Observao: se o parmetro prop for omitido, a funo retorna um struct com todas as
propriedades do objeto.

set

Configura o valor de uma determinada propriedade do objeto.


Sintaxe tpica:
set(handle, prop, vai)

Parmetros:
Entrada
handle: identificador do objeto 'pai'
prop: propriedade
vai: valor

Sada

Exemplo: cria o grfico de uma curva com linha slida e muda tringulo (arquivo
cap5_hg_exemplo.m).

x=0:0.3 :2*pi; % Cria o grafico


plot(x,x+sin(x))
% echo on
h=gcf; % Obtem o handle da figura corrente
hline=findobj(h,'Type1,'line') % Localiza objeto tipo 'line'
hline =
152.0114
get(hline) % Lista de propriedades
Color [0 0 1]
EraseMode normal'
LineStyle
ZDataSource
get(hline,'LineStyle') % Consulta propriedade LineStyle
ans =

l i

V /:

Grficos e Handle Graphics

pause
set(handle, prop, val)
set(hline,'LineStyle1,1>)% Modifica

Antes do pause

File. Edit : View Insert

D B S

Tools Desktop Window

Help. :

0 0

Depois do pause

Tanto o utilitrio [Plot Tools], apresentado neste captulo, quanto o utilitrio GUIDE, que
apresentado no prximo, so capazes de gerar, automaticamente, m-files com as
codificaes das funes Handle Graphics@ que configuram as propriedades indicadas
de modo interativo pelo usurio.

MATLAB7-Fundamentos

Criao de Interface
Grfica com Usurio
Conforme indicado no tpico 2.9, o modo de interao mais simples o disponibilizado
na prpria linha de comando do MATLAB 7.
A entrada de dados na linha de comando implantada pela funo input, e a sada,
pela funo display.
Neste captulo, apresentamos os recursos disponveis no software para desenvolvi
mento de interfaces com usurio mais sofisticadas.

6 .1 . C a ix a s d e D i lo g o
O MATLAB 7 prov funes prticas e de fcil implementao, que exibem caixas de
dilogo, o que possibilita a construo de programas com interface com usurio mais
amigvel.

errordlg

Exibe caixa de dilogo com mensagem de erro.


Sintaxe tpica:
errordlg(Msg,Titulo)

Parmetros:
Entrada________________________
Msg: mensagem de erro
Titulo: ttulo da caixa de dilogo
Exemplo:
msg='Comando Invlido';
titulo='Erros de comando';
errordlg(msg,titulo)

Criao de Interface Grfica com o Usurio

C om ando Inv lido

HH1

helpdlg

Exibe caixa de dilogo com mensagem de ajuda.


Sintaxe tpica:
helpdlg(Msg,Titulo)

Parmetros:
Entrada__________________
Msg: mensagem de ajuda.
Titulo: ttulo da caixa de dilogo
Exemplo:
msg=Fornea apenas nmeros1;
titulo='Dicas';
helpdlg(msg,titulo)

im ageview

Exibe caixa de dilogo de visualizao de imagem.


Sintaxes tpicas:
imageview(arquivo)
imageview(m)

Parmetros:
Entrada_______________
arquivo: arquivo de imagem
m: matriz de imagem
Exemplo:
>> imageview('NGJuly2002.jpg')

li

306

MATLAEP 7- Fundamentos

S inpudSg
Exibe caixa de dilogo de entrada de dados.
Sintaxe tpica:
dados = inputdlg(prompt,nome)

Parmetros:
Entrada
prompt: cellarray com mensagens de prompt
nome: ttulo da caixa de dilogo
Exemplo:

Sada
dados: cell array com os dados digitados

N R e s d o s A r q u iv o s

>> prompt={'Entrada' 1Saida');


nome=1Nomes dos Arquivos';
dados=inputdlg(prompt,nome)
dados =
'NGJuly2002.jpg'
1cap3.jpg'

entrada ;......... .............. ........


! NGJuly2002 jpg
s a fc a

............. .....

|c a p 3 .jp g

listdlg

Exibe caixa de dilogo de entrada de dados por lista.


Sintaxe tpica:
[sel,ok] = listdlg (propl,vall,prop2,val2, ...)

Criao de Interface Grfica com o Usurio

...............................II
I;- 1

.O K

1 1 C ancel )

Parmetros:
Entrada
prop: propriedade
vai: valor
Propriedades
'ListString'
'ListSize'
'InitialValue'
'Name'
'PromptString'
'OKString'
'CancelString'
'SelectionMode'

Sada
sei: ndice da opo escolhida
ok: 1 (ok) ou 0 (cancel)
Valor
cell array contendo a lista de opes
tamanho da lista em pixel, default [160 300]
ndice do valor inicial
ttulo da caixa de dilogo
texto de prompt
nome da tecla 'OK'
nome da tecla 'Cancel'
modo de seleo: 'single' / 'multiple1

Exemplo: seleciona o nome de um arquivo *.jpg no diretrio corrente.


edit: cap6_listdlg_exemplo
% cap6_listdlg_exemplo
function cap6_listdlg_exemplo( )
djpg=dir('*.jpg1);
% Struct contendo os arquivos *.jpg
jpgnames={djpg.name}; % Nomes do arquivo
[sel,ok] = listdlg ( ...
1ListString', jpgnames, ... % Lista de opcoes
1ListSize',[160 100], ...
% Tamanho da lista
'InitialValue 1, 1, ...
% Primeira opcao
'Name','Arquivos JPG', ... % Titulo da caixa de dialogo
'PromptString','JPG no diretorio corrente', ... % Prompt
'OKString1, 'Exibir', ...
% Tecla OK
1CancelString1, 'Cancela', ... % Tecla Cancel
'SelectionMode', 'single'); % Modo de selecao
if ok == 1 % Verifica retorno OK
a=imread(jpgnames{sei}); % Exibe a imagem
figure;
image(a);
end
Arquives JPG
JPG no diretorio co rre n te
icsp3.jpg
jexercicio5.jpg
;redeyedfrog.JPG

308

MATLAB 7 - Fundamentos

m sgbox

Exibe caixa de dilogo com mensagem.


Sintaxe tpica:
msgbox(Msg,Titulo)

Parmetros:
Entrada__________________
Msg: mensagem
Titulo: ttulo da caixa de dilogo
Exemplo:
msg=computer;
>> titulo=1Mquina';
msgbox(msg,titulo)

pagesetupdlg/printdlg/printpreview/printopt

Exibe as caixas de dilogo Windows


like para impresso. possvel soli
citar a impresso da figura a partir
dessas caixas de dilogo.
Exemplo:
a=imread('NGJuly2002.jpg');
>> image(a);
pagesetupdlg
printdlg
printpreview
printopt

Criao de Interface Grfica com o Usurio

309

questdlg

Mostra caixa de diiogo com pergunta.


Sintaxe tpica:
r = questdlg(Msg,Titulo,BI,B2 ,default)

Parmetros:
Entrada
Msg: mensagem de ajuda
Titulo: ttulo da caixa de dilogo
B1: string do boto 1
B2: string do boto 2
default: string default

Saida
r: string boto selecionado

Exemplo:
perg='Continua processo';
titulo='Pergunta';
bl='Sim' ;
b2=1Nao1;
default=Sim';
r=questdlg(perg,titulo,bl,b2,default)
r =
Sim

Pergunta

flc]

Continua processo

I Slm II I Nao I

soundview

Exibe caixa de dilogo de visualizao de arquivos de udio (e execuo).


Sintaxes tpicas:
soundview(arquivo)
soundview(S,Fs)

Parmetros:
Entrada
arquivo: arquivo de udio
S, Fs: matriz de sinal e valor de freqncia
Exemplo:
soundview('TestSnd.wav')

310

MATLAEP 7 - Fundamentos

2000 4000 5000 8000 10000 12000 14000 16000 18000

uigetdir/uigetfile/uiputfile

Exibem as caixas de dilogo Windows like de acesso a arquivo. Retornam nome de


arquivo.
Exemplo uigetfile: exibe arquivos *.jpg e *.bmp.

Escolha arquivo

Save ire j 3 work

c r n -

|f p 3
era005
?*S:3uy2Q2
$8redeyedfrog

uiputfile(tipos,titulo,default)
I
R enam e:
1: : i
.............V..............................
| .Save s type: |* jp g

:
1
j

'
Save
Cancel:

I
j |
I
j |

uisetcolor/uisetfont
Basic colors:

Exibem as caixas de dilogo Windows


like de configurao de cor e fonte de
texto.
Sintaxes tpicas:

.
ta r.r: c

r aaa
a

m mmmmr m r
r r _r r r r r r

r = uisetcolor

Define Custom

0.5020

Cokzs

0.5020

f = uisetfont

f =
FontName
FontUnits
FontSize
FontWeight
FontAngle

'Arial1
'points'
12
'normal1
1italic'

waitbar

Exibe caixa de dilogo com barra de tempo de execuo.


Sintaxes tpicas:
handle = waitbar(0,MsgrTitulo)
wai tbar(N,handle)

312

MATLAEP 7 - Fundamentos

Parmetros:
Entrada______________________________
Msg: mensagem
Titulo: ttulo da caixa de dilogo
N: valor entre 0 e 1 (% da barra a ser exibida)
handle: identificador do waitbar
Exemplo:
edit: cap6_waitbarexemplo_____
% cap6_waitbar_exemplo
function cap6_waitbar_exemplo ()
h=waitbar(0,'Em execucao,
aguarde
for i=l:50
waitbar(i/50,h);
z=rand(10);
contour(z)
end
close(h)

warndlg

Apresenta caixa de dilogo com mensagem de aviso.


Sintaxe tpica:
warndlg(Msg,Titulo)

Parmetros:
Entrada
Msg: mensagem de erro
Titulo: ttulo da caixa de dilogo
Exemplo:
>> msg='Diviso por zero
titulo='Alerta';
warndlg(msg,titulo)

Criao de Interface Grfica com o Usurio

D iv is o por zero

CE3

S-

6.2. Entrada Interativa de Dados


O MATLAB 7 possui funes de entrada interativa de dados em figuras.
S

gsntput

Aceita pontos indicados na figura.


Sintaxe tpica:
[X,Y] = ginput(n)

Parmetros:
Entrada
n: nmero de pontos

Sada
[X,Y]: coordenadas

Observao: a figura deve estar aberta antes da chamada da funo e a tecla <ENTER>
interrompe a execuo da entrada de pontos.____________
Exemplo:
edit: cap6_ginput _exemplo______________
% cap6_ginput_exemplo
function [x,y]=cap6_ginput_exemplo(n)
plot(rand(l,10))
display([1Entre 1 num2str(n) 1 pontos.']);
[x,y]=ginput(n);
hold
plot(x,y,'*')

Execuo:
[x,y]=cap6_ginput_exemplo(3)
Entre 3 pontos.

ti

MATLAEP 7 Fundamentos

gtext

Posiciona um objeto texto no ponto indicado na figura.


Sintaxe tpica:
gtext(txt)

Parmetros:
Entrada
txt: texto a ser posicionado
Observao: se txt for um string, posiciona um texto. Se for um cell array, posiciona vrios
textos.
Exemplo:
edit: cap 6 gtext_exemplo
function [x,y]=cap6 _gtext_exemplo( )
p l o t (rand(1 ,1 0 ))
txt={'Primeiro 1 'Segundo' 'Terceiro'
gtext(txt)

Execuo:

cap6_gtext_exemplo

Criao de Interface Grfica com o Usurio

1 Quarto

1};

waitforbuttonpress

Espera o pressionamento de uma tecla ou boto do mouse.


Sintaxe tpica:
k = waitforbuttonpress

Parmetros:
Sada
k: 1 (tecla) / 0 (boto do mouse)
Observao: essa funo supe que o cursor esteja sobre a rea de uma figura que j esteja
aberta; caso contrrio, cria uma figura.______________________
Exemplo:
k=waitforbuttonpress
k =
0

k=waitforbuttonpress
k =
1

% botao de mouse

% tecla <Enter>

waitfor

Suspende a execuo da funo at que o objeto fornecido tenha sido eliminado.


Sintaxe tpica:
waitfor(h)

Parmetros:
Entrada_____________ ______ __________________________________________________
h: handle do objeto a ser eliminado
Exemplo: mostra um grfico, espera que ele seja eliminado, exibe mensagem, espera
que seja lida e eliminada, e mostra outro grfico.
edit: cap6_waitfor_exemplo______________________________
function cap6_waitfor_exemplo ( }
h=surf(peaks);
% Desenha um grafico
waitfor(h)
% Espera que ele seja eliminado
h=msgbox('Grafico anterior eliminado. Pronto para desenhar o proximo');
waitfor(h)
% Espera que ele seja eliminado
plot(rand(1,10)) %Desenha outro grafico

316

MATLAB 7 - Fundamentos

;j
j

Execuo:

cap6_waitfor_exemplo

Eliminar

3 c h a ; >::

b v. [ B 3

6.3. Utilitrio GUIDE


GUIDE - Graphic User Interface Design Environment um utilitrio do MATLAB 7 que
permite criar objetos de controle de interface com usurio, UlControl(mencionados no
tpico 5.2) em janelas grficas, com interao no estilo 'Visual Basic'.
As janelas grficas criadas pelo GUIDE so armazenadas como arquivos de figura
(*.fig), e so utilizadas como 'painis de entrada de dados' para funes callback,
conforme apresentado no Captulo 2.
Neste tpico, complementamos essas informaes com a apresentao dos outros
objetos UlControle de suas propriedades.
Para acionar o GUIDE, digite:

A janela do GUIDE composta por duas pastas:


[Create New GUI]: 4 opes para criao de uma nova janela.
GUIDE Q u ic k S ta rt

( Create New GUI j Open Existing G U I. |

[Blank GUI (Default)] - em bran


co (padro).

GUIDE tem plates


an-c Ou:
4k GUI with Uicontrols
GUI with Axes and Menu
Modal Q uestion Dialog

Save on startup as

Preview
M

;:

OK

|i

C a n c e l^ ]}

Help

GUJDF. Q u ic k S tart
Create New GUI j Open Existing OUI
GUIDE templates
Blank GUI (Default)______

[GUI with Uicontrols] - com


objetos Uicontrols (a janela
inicializada com os objetos exi
bidos).

4 X GUI wtlh Axes and Menu

< Cngfcsh u n i system

Modal Question Olalcg

M ^ V ,0

C SJ. un * system

0 .

Catc m * f.

OK

OK

Reset

I j Cancel | f

Help

GUIDE Q u ic k S ta rt
Create N ew GUI

j Open Existing GUI j

[GUI with Uicontrols] - com


objetos Axes (eixos) e a menu
(a janela inicializada com os
objetos exibidos).
Save on startup as: j

~] I

C ancel

][

H elp

MATLAB 7 - Fundamentos :

SUIOFiluidcSrt

GUIDE tem plates


3lank GUI (Default)
GUI with Uicontrols
:- 4 \ GUI with Axes ar.d Menu

<s> [Modal Question Dialog] - deter


mina perguntas.

Q<

j|

Cancel

|[

Help

j:

[Open E xisting GUI]: abre GUI existente (*.fig).


G U ID t Quick S ta rt ;
Create N ew GUI J

Open Existing G U I;

Recenfy opened files:

[Recently opened files]: arqui


vos *.fig recentemente usados
[Browse]: permite procurar ar
quivos *.fig

c:\m atIab7\worlAEx8m plo2.fig


<4*. c:\m atlab7\w orW E xem plol .fig
4 e:\matlab7\worW circuito02.iig
c:\matlab7\worW circuito.Iig
F:\m atlab6p5p1\w orW opcoBS.fig
^

f:\M ATLAB6p5p1 \worWgrafico.flg

f:\M ATLAB6p5p1 Iw ortcam inhos.fig

Browse...

Cancel

jj

Help

Para apresentar os recursos do GUIDE, trabalhamos com a opo [Blank GUI


(Default)], que exibe esta janela composta pelos elementos descritos a seguir:

1
I

Criao de Interface Grfica com o Usurio

A. [Menu Pop]: menu pop-up com opes de comandos.


B. [Toolbar]: barra de ferramenta de auxlio.
C. [Component Pallete]: barra dos cones de objeto de controle.
D. [Layout Area]: rea na qual os objetos grficos so criados.

6.3.1. Menu Pop-up do GUIDE


Os principais recursos dos menus pop-up do GUIDE so:
Menu

Opes
f f f ! ! E dit

File

View

Layout T ods

He^t

Hw

C tri-fN

O p e n ...

C trl-tO

Close

C tri-fW

S ave

etrf+s

S ave A s ,..

Contedo
Acesso a arquivos *.fig:
New/Open: cria/abre arquivos.
Close: fecha arquivos.
Save/Save As: armazena arquivos.
Export: exporta arquivos.

E x p o r t. ..
P re fe re n c e s ...
P r in t ..

C trl 4P

Preferences: configura preferncias.


Print: impresso.

Layout
U ndo
R e do

Edit

Tc

C tri+ Z
C tri+ Y

C u t:

C tri+ X

C o py

C trt+ C

P a s te

C tri+ V

Cut, Copy, Paste, Paste Special


Select All, Delete

Clear
S e le c t AS C trl4 A

Duplicate: duplica objeto.

D u plic a te C t)l4 D

la y o u t.

View

Tools

P ro p e rty In sp ector
O b je c t Browser
M -file Editor
Viev* Callbacks

dio 'padro Windows':


Undo, Redo

He

Visualizao de informaes:
Property Inspector: editor de propriedades.
Object Browser: browser da hierarquia dos
objetos criados.
M-file Editor: abre edit.
View Callbacks: lista funes callback.
Auxilia posicionamendo de objetos:
Snap to Grid: habilita/desabilita grade.

Layout

B rin g to F ro n t

C tri+ F

Send to Back
B ring Forw ard

C tri4 B

S en d Backw ard

Bring to Font/Send to Back/Bring Forward/Send


Backward: configura ordem de exibio dos
objetos.

MATLAB 7-Fundamentos

Menu

Opes

m m

Contedo
Ferramentas auxiliares:
Run: executa o programa.

ndp

Run

C tri+ T

Align Objects: alinha objetos.

Grid and Rulers: configura grade e rgua.

Menu Editor: editor de menus.

Tab Order Editor: editor de [TAB],

GUI Options: opes do GUIDE.

A5gn O b je c ts ,..

Tools

G rid a n d R u le rs ..
Menu E d ito r...
T ab O rd e r E d ito r...
GUI O p tio n s ...

pm
Help

Using the L a y o u t Editor

C reating GUIs

Textos de ajuda.

6.3.2. Barra de Ferramentas do GUIDE


Na barra de ferramentas temos os cones seguintes.

Icone

Nome

Ao

New figure

Cria nova figura

Open file

Abre arquivo

Save

Armazena arquivo

Cut/Copy/Paste/Redo/Undo

Edio padro 'Windows'

Align Objects

Alinha objetos
AlignO b jec ts

BBS

V e rtic a l

Os objetos podem ser alinhados vertical e


horizontalmente.
r
E possvel determinar:

rr I QfP13ns| Qpg|
Ia-: Ia-1

A lig n

DiStriDjte

Q Set spacing :

p;xels

H o rlz o rta f

[Align]: tipo de alinhamento;

[Distribute]: distncia entre os objetos.

Distribute

f l Set S p a c in g ;
[

Criao de Interface Grfica com o Usurio

^ F T I "li
qj}jppjo]|qq

Align

OK

J[

:pisreis
A u p ly

1[

C ancel

Menu Editor

Editor de menu

Define menus pop-up e contextuai na janela que est sendo criada no GUIDE.
A janela do Menu Editor dividida em duas partes:

[Menu Bar/Context Menus]: contm duas pastas nas quais podemos configurar a
hierarquia dos menus (ttulo, opes e subopes).

[UIMenu Properties]: configura propriedades do objeto do menu.


[Labei]: nome.
[Tag]: propriedade de identificao utilizada pelas funes callback.
[Accelerator]: tecla de acesso rpido.
[Separator above this item]: habilita/desabilita separador.
-

[Check mark this item]: habilita/desabilita marca no item.

[Enable this item]: habilita/desabilita acesso ao item.


[Callback]: configura funo callback do item.
[More options]: abre o editor de propriedades no qual possvel configurar
outras caractersticas como cor, fonte de texto, etc.
Pasta [Context Menus]

Pasta [Menu Bar]

'

rj e '"-i m

UtMenu Properties

t l

'

0
- I MC.orftxIMft*) Properties

.......
1

: \ \ Label: j Untitled 1

L IM P E I

la g : ; Untt>ed_4

Untitled 2

L - (] Untitled 3

Tag

CaDbatlc: % aU om atic

; U n title d j

A ccelerator: Ctrl +: None

V ie w

More o p tio n s

'j

Sear o r aoove nvs <

O-ieck

ys ^ c n

tn s b ie tfiis tem

Menu Bar p C o n t x t Menus

Caftftacic guKJsta(gcbo)) J View


I' CK ~]

1 Menu B a r !

[ Tfeb

Context Menus

\
(

Na barra de ferramenta do Menu Editor, esto os comandos de criao e


posicionamento dos objetos.

[New Menu]: cria novo menu pop-up.

[New Menu Item]: cria nova opo no menu.

[New Context Menu]: cria novo menu contextual.

[Move Selected Item Backward]: volta um nvel.

MATLABS 7 Fundamentos

[Move Selected Item Forward]: avana um nvel,

[Move Selected Item Up]: sobe uma linha.


[Move Selected Item Down]: desce uma linha.

[Delete Selected Item]: elimina item.

Por exemplo, a configurao no Menu Editor, esquerda, gera a interface direita.


Menu Editor

up- f ] Menu 1
j

-UlMenu Properties -

I ,

!Label: j Opcao2

Opcao 1

^ -ft.O p c a o t

j Tag:

- f ] Menu 2
*! Opcao 1

| Urrtrtled_5

: A c c e le ra to r : C trl +; N o n e
C

S e p a ra to r a b o v e th is item

jj G

C h e c k m a rk th is item

j! B

E n a b ie th is item

i . C aB baclcj %a>iomatic

Menu Bar j Context Menus

V ie w

)I

Editor 'Tab Order'

Tab Order Editor

&

Opca 1
Opcao 2

Define a ordem dos objetos que a tecla [TAB] deve seguir.


A configurao determinada na figura faz com que a tecla [TAB] siga a ordem indicada
pelas setas.
A ordem definida pelos cones: L ; __ Z

M-fiie Editor

Abre edit

Abre o edit com o cdigo do m-fiie gerado peio GUIDE.


Criao de Interface Grfica com o Usurio

Property Editor

Abre editor de propriedades

Abre o editor de propriedades do item selecionado.


^

r < *

U yjM l

20
r*i
IM

100

BO

ra I-

: &'

190

180

220

260

300

340

990

420

460

500

-540

M-

1 i M
,

ulcontiol (idlW 'Edit TxW)

>
Edit Text4

*
;
*
.....:..... .... j.....i 1 t ..... t .....
.....t..... ... j ......1.....[ *;.....t .....

BackgroundColor
BengDeleted
GS3 m
S;
BusyAcllon
fp
ButtonDownFcn
*;
CData
$'
* r ,

Callback
f t :: r..... 1....r p r
---- i ----*: Clipping
..... ....
CreateFcn
... .... T -.... .... 1.....
..... i
L.
DeieteFcn
Enable
i 1..... ... L
U-..
spExtent ::
i t j +
t t
i FontAngle
1 f i ' h - FontName

1 :
:
:

( f jl

I Edit Text2

[} queue

untitedCedlt.Cailback-.gcb
g on
untit!edCedit4_CreateFcrV.gc

Q on
,

() normal
MS Sans Serif
V

Podemos dividir as propriedades dos objetos de controle em dois grandes grupos:

Formato: abrange as propriedades que configuram a 'aparncia' do item. Por


exemplo, todos os parmetros de cor e tipo de texto.

Controle: abrange as propriedades que configuram o tipo de ao que o item vai


controlar. Por exemplo:
[Callback]: funo callback do objeto,
[String]: dado fornecido pelo usurio.
[Style]: define o tipo de objeto de controle.
-

[Tag]: identificao do objeto.

Object Browser
'

Exibe a hierarquia dos objetos

Object Browser

&H1 fig u r e (u n titled )

Wifeuimenu

(Menu 1)
uimenu (Henu 2)
u ic o n tro l ( e d i t l "Edit Textl")

KSBT u ic o n tro l (e d it2 "Edit Text2")


j - W u ic o n tro l (e d it3 "Edit Text3")

>-

Run

Executa o programa

MATLAEP 7 Fundamentos

6.3.3. Objetos de Controle


Na barra [Component Pallete], temos os cones de objeto de controle que vo ser
posicionados na rea de trabalho [Layout Area],
A opo [Show names in component palette], disponvel na opo GUIDE do comando
preference, configura o formato de exibio dos cones de objeto de controle.

GUIDE P referen ces

SB G e n e r a l
8 8 F o n ts

1*

C o lo r s
SB C o m m a n d V M n d o w

|rw i a n^l

f? 1

off

P I S h o w to o lb a r

C o m m a n d H is to r y
!S

E d ito r jD e b u g g e r
0

H e lp

p lf

im

W eb

ra j

W o rk s p a c e

|u n ia l
1it

S h o w n a m e s i n c o m p o n e n t p a tq t t g

| ( 3 S h o w f i le e x t e n s i o n in w i n d o w t itle

C u r r e n t D ir e c to r y
A r r a y E d ito r

C ] S h o w file p a t h in w i n d o w title

on

0 C heck Box

W E dit Text

3pop-up Menu
$Listbox
1 Toggle Button

I F ig u r e C o p y T e m p la te

i SS h o w aS fBes in file o p e n d ia lo g

In s tr u m e n t C o n t r o l

Iff; A x e s

\ x
p ) S h o w s a v e c o n fir m a tio n o n a c t iv a t e

S h o w s a v e c o n fir m a tio n o n e x p o r t

Button Group
X ActiveX C ontrol

Passaremos a usar a exibio dos cones com nomes para mostrar como configurar as
propriedades de controle de cada um desses objetos.
E lem entos do [C om ponent Pallete]
Seleciona objeto a ser editado
A criao de figuras (representaes dos objetos) no GUIDE segue a mesma interao
de outros editores grficos do Windows: clique do boto esquerdo do mouse indica
ponto, clique-arrasta define ou modifica dimenses.
Esta opo seleciona o objeto a ser editado tanto na aparncia (dimenses e
reposicionamento) quanto no contedo (o boto direito do mouse abre menu contextuai
de propriedades).

[0 Push Button

| . Boto de comando

Propriedades de controle:
Nome
Callback
String
Tag

Criao de Interface Grfica com o Usurio

Descrio
nome da funo callback
nome que aparece no boto
identificador do objeto

Exemplo: cap6_pushbutton_exemplo.m.
Objeto: Push Button
Propriedade Valor__________
Callback

figure;surf(peaks)

fiq u re ; s u r fip e a k s )

Arquivo gerado automaticamente pelo GUIDE: cap6_pushbutton.m

m
Rte

Edit

T ext

Cet

Tools

D ebug

D esktop

W in dow

H elp;

GS! ;

im it

J u n c tio n va ra r g o u t cap 6_p u sh bu tton_exem p lo(varargin)


% CAP6_PUSH8UTTON_XKFLO H - i i i e 2or cap 6_pushbutton_e
.'iii
%
C A P ^ P iT S is u r r a ^ E X E H P L O , by i t s e l , c r e a t e s new C A P 6

3r.\jltC-!*,
H -

CAF6_PUSKBi3TtOK_S:iEKPLO r e t u r n s t h e h a n d .Vs t o

e x i s t i n g s in g le t o n * .
CT'6_T';5H3TTCii_I'XH?LO(: CALLBACK ,h(^.-ject-,event-i)t.a,hs
... f ttBCCib n a d CALLBACK i n CA?6 PSHBOTfOM EXEHPLO. Il vjjj
5cap6_pushtouttori_exem p)o

Execuo:
>> cap6_pushbutton_exemplo

326

MATLAB 7- Fundamentos

fc? Si|::ier______ - Barra de valores.

Propriedades de controle:
Nome

Descrio

Callback

nome da funo callback

Max

valor mximo

Min

valor mnimo

Step

tamanho do cursor da barra (x,y)

Valor

valor retornado pelo objeto

Tag

identificador do objeto

Exemplo:
edit:

slider_callback.m________________________________________

function slider_callback ( )
h=gcf;
% Figura corrente
o b j = f i n d o b j ( h , 'Tag','s l i d e r l 1); % Localiza objeto 's l i d e r l 1
v a l m a x = g e t ( o b j , 'Max');
% Obtem
valor mximo
v a l m a x = g e t ( o b j , 'Min');
% Obtem
valor minimo
v a l u e = g e t ( o b j V a l u e ');
% Obtem
valor indicado
st r= n u m 2 s t r (value);
% Transforma em texto
o b j = f i n d o b j ( h , 'Tag','t e x t l ');
% Localiza objeto 't e x t l '
s e t (obj,'S t r i n g ',s t r ) ; % Exibe valor no objeto 'textl'

Objeto: Slider

Objeto: Static Text

Propriedade

Valor

Propriedade

Valor

Callback

slider_callback

StringO

1.5

Max

2.0

Tag

1.5

Min

1.0

Step

[0.01 1.0]

V a lo rf)

1.5

Tab

slide 1

(*) Este parmetro do objeto Static Text recebe o valor devolvido pelo Slider.

Execuo:

cap6_slider_exemplo

W W W

cap6_slider_exemplo

i i s i
*

Meng I Menu 2

SLIDER

SLIDER
jJ..
1.0

..t.....

0 CheckBox
I Toggle Button

jJ 1 Z I

.. 'i
2.0

J.0

-I

1.7267

1.5

f ) Radio Button

% |ft

Menu 1 Menu 2

Opo 0/1 (boto de rdio on/off)


Opo 0/1 (caixa on/off)
Opo 0/1 (boto on/off)

Esses trs objetos tm comportamento e interao semelhantes e so utilizados como


subitens do objeto ButtonGroup.
Propriedades de controle:
Nome

Descrio

Callback

nome da funo callback

Valor

valor retornado pelo objeto

Tag

identificador do objeto

Exemplo com objeto radiobutton:


edit: radio_callback.m___________________________
function radio_callback ( )
h=gcf;
% Figura corrente
o b j = f i n d o b j ( h , 'Tag', 1radi o b u t t o n l );
v a l u e = g e t ( o b j V a l u e '); % Obtem valor indicado
if value == 1
m s g b o x ('O N 1)
else
m s g b o x (1O F F ')
end

Objeto: Radio
Propriedade

Valor

Callback

radio_callback

String

BOTAO 1

Valor

Tag

radiobuttonl

MATLAEP 7 - Fundamentos I

Execuo:
I

cap6_button_exemplo

W E d it T e a -:

- Caixa de edio de texto.

Propriedades de controle:
Nome
Callback
String
Tag

nome da funo callback


contedo do texto
identificador do objeto

Exemplo:
edit:

edit

callb ack .m

function ed it_ callb ack ( )


% V e r if ic a se o te x to v a lo r num rico p o s itiv o
h=gcf;
% Figura co rrente
o b j = f i n d o b j ( h , 1T a g ' , 1 e d i t l ' ) ; % O b j e t o e d i t l
s t r = g e t ( o b j , 1S t r i n g ' ) ;
% Dado d i g i t a d o
v a l o r = s s c a n f ( s t r , ' % f ' ) ; % T e n t a o b t e r um n u m e ro
sw itch v a lo r
case 0
e r r o r d l g ( ' V a l o r NAO p o d e s e r Z E R O ' ) ;
c a s e ''
e r r o r d l g ( ' V a l o r NAO p o d e s e r A L F A N U M R I C O ' ) ;
otherw ise
if valor < 0
e r r o r d l g ( ' V a l o r NAO p o d e s e r MENOR QUE Z E R O ' )
else
w a r n d l g ( ' VALOR A C E I T O ! ' ) ;
end
end

Objeto: Edit Text


Propriedade
Callback
String
Tag

Valor
edit_callback
1
editl

Er-Property Inspector

queue

edit.caiiback;
capS_edit_exempiofein.

Criao de interface Grfica com o Usurio

329

Execuo:

cap6_edit_exemplo

Valor > 0

sacf

V^MOpode*wALrANUMERICO

;
r*---s "n *n

!SI Static Text

Texto esttico (de anotao).

Propriedades de controle:
Nome
String

Descrio
contedo do texto

Exemplo: veja o exemplo do objeto Slider.

H3 Pop-up Menu

Menu pop-up

Propriedades de controle:
Nome
CreateFcn
String
Tag
Value

Descrio
funo de criao em que as opes so definidas
cell array/icoluna, com os nomes das opes
identificador do objeto
ndice da opo escolhida

Exemplo: exibe surf(peaks) com mapa de cores definido no menu pop-up.


edit: popup_create,m ______________________________________
function p o p u p _ c r e a t e ( )
h=gcf;
% Figura corrente
obj = f indobj(h,'Tag', 'popupmenul'); % Objeto popupmenul
cores= { 'default'; 'autumn'; 'bone'; ...
'cool'; 'hot'; 'spring'; 1s u m m e r ';'w i n t e r };
s e t (o b j ,'S t r i n g ',c o r e s )

Objeto: Popupmenu
Propriedade
CreateFcn
String
Tag

Valor
popupcreate
1
popupmenul

edit: cap6_popup_callback.m
function cap6_popup_callback( )
h=gcf; % Figura corrente
obj=findobj(h,'Tag','popupmenul1); % Objeto popupmenul
cores=get(obj, String);
indice=get(obj, Value 1);
figure;
surf(peaks)
colormap(cores{indice))

Objeto: Push Button


Propriedade
Callback
String

Vaior
cap6_popup_callback
OK

spring
summer
winter

Execuo:

default
autumn

cap6_popup_exemplo

i l Listbox

- Menu de lista de opes.

Propriedades de controle:
Nome
CreateFcn
String
Tag
Value

Descrio
funo de criao em que as opes so definidas
cellarray coluna, com os nomes das opes
identificador do objeto
ndice da opo escolhida

Exemplo: exibe surf (peaks) com mapa de cores definido no menu pop-up e
sombreamento pelo listbox.
edit: list_create.m
function list_create( )
h=gcf; % Figura corrente
obj=findobj(h,'Tag', 'listboxl'); % Objeto listboxl
sh= { 'FLAT 1; 'FACETED'; 1INTERP1};
set(obj,'String',sh)

Criao de Interface Grfica com o Usurio

Objeto: Listbox

' cap6Jist_exemplo.fig
He

Propriedade
CreateFcn
String
Tag

Edit Vtew Layout Took

B B 8
Heip

D & W ' ' 5A

Valor
list_create
1
listboxl

140

!.

Jdefault

180

JFLAT
{f a c e t e d

% R adio Button

' jlNTERP

iiae

OK
jft A x e s

edit: cap6_list_callback.m
function c a p 6 _ l i s t _ c allback( )
h=gcf;
% Figura corrente
ob j = f indobj(h,'Tag', 'popupmenul' i; % Objeto popupmenul
cor e s = g e t ( o b j , 'String');
i n d c o r = g e t (o b j , 'V a l u e ');
ob j = f indobj(h,'Tag', 'listboxl'); % Objeto listboxl
sh=get(obj, 'String');
i n d s h = get(obj, 'Value');
figure;
surf(peaks)
co lormap(cores{indcor}) ;
shading(sh{indsh));

Objeto: Push Button


Propriedade
Callback
String

Valor
cap6_list_callback
OK

Execuo:

c a p 6 _ lis t _ e x e m p lo

j c ap 6 _ Iisr_ t X H n p [o

f^*i
jw
3 ;

Insert Tools Desktop W indow Help


t*

1 1

''

r -

iS f x l

m O

MATLAB 7-Fundamentos

li& fe:es_______ - Cria um objeto Axes (eixo) para exibio de grficos e imagens.

Propriedade de controle:
Nome

Descrio

Tag

identificao do objeto

Exemplo: em uma janela, exibir trs eixos com os grficos de f(x) = x*sin(x), f(x) e F(x)
integral de x.
Objetos: Axes
Propriedade
Tag

A xesl, Axes2, Axes3

Objetos: Push Button


Propriedade Valor
Callback

axes1_callback, axes2_callback, axes3_callback

Exemplo: axes1_callback.m
edit:

axesl_list_callback.m

function a x e s l _ c a l l b a c k ( )
h=gcf;
% Figura corrente
o b j = f i n d o b j ( h , 'Tag', 1a x e s l 1); % Objeto axesl
axes(obj);
% Configura eixo corrente
x = - 2 * p i :0.1:2 * p i ;
p l o t (x,x.*sin(x))

I Si3 f!.t!!EI
fi*

dt

View

La y o u t T c o k

Heip

& 0 P u s h B utton

f (x) = sin(x)+x*cos(x)

F{x) = sin(x>x*cos(x)

'S lid e r
# R a d io B utton
0

C h e c k Box

M r E d it Te xt
Static Text
S 3 P op-up M enu
jf Listbox
[ lU T o g g le Button

[j*3j Button G rou p


[sX* ActiveX Control

Execuo:

cap6_axes_exemplo

Criao de interface Grfica com o Usurio

333

-> cap6^sxes_eicefBp|o

f(x) = x sin(x)

f'(x) = sm(x)<-x*cos(x)

F(x) - sm(x)-x"cos(x)

l l Panel

Cria um 'painel', uma rea retangular para facilitar a visualizao


de grupos de dados.
Propriedade de controle:
Nome

Descrio

Title

ttulo

Objeto: Panei
Propriedade Valor
Title
Dados Primrios
Dados Secundrios

Exemplo: Desenhar grfico a partir de dois grupos de dados.


edit: p a n e l _ c a l l b a c k .m
function p a n e l _ c a l l b a c k ( )
h=gcf;
% Figura corrente
ob j = f i n d o b j ( h , 'T a g ' i n i c i o '); % Objeto inicio
v_inicio=str2num(get(
o b j ,'S t r i n g '));
o b j = f i n d o b j ( h , 'T a g f i n a l '); % Objeto final
v _ f i n a l = s t r 2num(get(obj,'S tring'));
o b j = f i n d o b j ( h , 'Tag', 'amplitude'); % Objeto inicio
v_ a m p l i t u d e = str2num(get(obj,'S tring'));
ob j = f i n d o b j ( h , 'Tag','frequencia'); % Objeto final
v _ f r e q uencia=str2num(get(obj, 'String'));
% Grafico
x = l i n s p ace(v_inicio,v_final,200);
y=v_amplitude*(sin(5*x*v_frequencia)+3*cos(x*v_frequencia) !
p l o t (x,y)

Execuo:

cap6_panel_exemplo

MATLAB 7-Fundamentos

3 Button Group

- Cria um ButtonGroup, objeto que agrupa subobjetos do tipo


radiobutton, checkbox, togglebutton.

Esse objeto formado por um conjunto de subobjetos do tipo radiobutton, checkbox ou


togglebutton.
Para criar um ButtonGroup, necessrio que os
subobjetos j estejam definidos na rea de layout. O objeto
ButtonGroup agrupa os subobjetos que forem envolvidos
pelo retngulo indicado.

>Fiat :
O Faceted

No exemplo, o ButtonGroup composto por trs


radiobuttons.

C Interpolated

As funes callback dos subobjetos so substitudas pela


funo S e le c t io n C h a n g e F u n c t io n do ButtonGroup.
A chamada dessa funo automaticamente criada pelo GUIDE, por meio da opo
[S e le c t io n C h a n g e F u n c t io n ] disponvel no menu PopU[ [View]
[View Callbacks],
Porm o 'corpo' da funo S e le c t io n C h a n g e F u n c t io n deve ser codificado pelo usurio
nesse arquivo, gerado automaticamente.
A codificao deve implementar as aes a serem executadas na seleo de cada
subobjeto que compe o ButtonGroup.

Criao de Interface Grfica com o Usurio

Nesse exemplo:

0 arquivo armazenado com o nome: cap6_buttongroup_exemplo.m.

Os subobjetos radiobuttons esto definidos com TAGs: radiobuttonl, radiobutton2 e


radiobutton3.

As aes so: exibir surf (peaks) no grfico com o tipo de sombreamento indicado
pelos radiobuttons.

Propriedade de controle:
Nome

Descrio

Title

ttulo

Objeto: ButtonGroup
Propriedade Valor
Sombreamento
Title
Selecione o objeto ButtonGroup e chame a opo [S electionC hangeFunction] para
salvar o arquivo ,cap6_buttongroup_exemplo.m'.
O GUIDE cria o arquivo e abre o editor, exibindo a funo que deve ser completada
pelo usurio.
He dit j|jj|||S Layouts-Tods:7Hefc
D Gr 1 Property Inspector
................ObjectBrowser
0
^ Sefecj M-file Editor
[SD Push
[b=u Sfider

P~ ] p]

5 Radio Button

.... j.... \ "1

felfeVat*
100 : 140

180

CreateFcn
DdeteFcnButonDovsnFcn
ResizeFcn

Editor - c;\n5atlab7\wofk\c3p6_h!ittongroup_jexemptQ.m *
Fe

Edit

Text

Cell

Tools D ebug

Desktop

W indow

Help

Dwcr rSruHbrron~varargDur^~capb~W'C'ogt'ou:p
O5
MriT
exeii,ipio3)acpuc'ircnThcei3:ect7~'gv-is:
69
70
71
72

k vsrargout

hCbjeet
% ventdata
* handles

s m:irae s.
io

ce Ii array for returning output arg s {.Tee


V&RARGOUT) ;
handle c c figure
reserved to be definedir. a. fucuire version of HkTLAB
structure 1th. handles arid set data (see
GCIDATA)

i Set. default eonsand line output irony handles structure


v a r a r g o u t { 1}
h a n d le s . o u tp u t;

% hObject
% eventdatf

handle to uipaneii {see GCBO)


reserved .~ to be defined in a
structure sith handles and us

version of HTLAB
{see GUID.TA)

cap6_button9foup_exempio/gipa.. Ln 79

Col 55

<OVR

Este o cdigo que deve ser editado para implementar o funcionamento dos
radiobuttons.

MATLAEP 7 - Fundamentos

edit: cap6_buttongroup_exemplo.m
% ----------------------------------- -------------------------------------------------function uipanell_SelectionChangeFcn(hobject, eventdata, handles)
% hobject
handle to uipanell (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
H=get ( h o b j e c t ) ;
bgObj e c t = H .Parent ;
selection = g e t ( b gO b j e c t , 1SelectedObject');
switch get(selection, 1T a g ')
case 'r a d i o b u t t o n l 1
% S O M B R E A MENTO: FLAT
surf(peaks)
s h a d i n g ('FLAT 1)
case 'r a d i o b u tton21
% SOMBREAMENTO: FACETED
surf(peaks)
s h a d i n g ('F A C E T E D ')
case 1r a d i o b u t t o n 3 '
% SOMBREAMENTO: INTERP
surf(peaks)
s h a d i n g ('IN T E R P ')
end

Execuo:
I

cap6_buttongroup_exemplo

ActiveX Control

Cria objeto ActiveX.

Abre lista de opes de objetos ActiveX. As propriedades variam de acordo com o


objeto selecionado.
Exemplo: inserir ActiveX 'Microsoft Office Spreadsheedt 10.0'.

Criao de Interface Grfica com o Usurio

337

Select do ActiveX Control


;: ActiveX Control U s t::

W SSM m m
\ D rM
k S ele ct

i-iM icroso ft
iMicrosoft
: M ic ros o ft
iMicrosoft
iMicrosoft
: iMicrosoft
; iMicrosoft
iMicrosoft
!: iMicrosoft
jMicrosoft
iMicrosoft
iMicrosoft
: iMicrosoft

ImageList Control 6 ,0 (SP4)


ImageList Control, version 5.C:"
Internet Transfer Control, v e r
U s tV ie w Control 6.0 (SP4) !.
Lis tV ie w Control, v ersion 5.CJ
MAPI M essages Control, vers
MAPI S ession Control, versio:
Masked Edit Control, v ers ion
M onthV iew Control, version
Multimedia Control, version 6:i
O ffice Chart 10.0
O ffice C hart 9.0
O ffice Data S ou rce Control 1:
O flic e Data S ource Control 9
O ffice Expand Control 9.0
:
O ffic e PivotTable 10.0
O ffice PivotTable 9 .0 .
O ffice R ecord Navigation Cor

St - SJ - 1

\ F-0S-3 !

6 3 P o p -u g M enu

ill

>k V ie w Control
ft Picture Clip Control, v ersion E
ft P rogressBar Control 6.0 (SP<
ar Control, versions*

Listbox

| E H T o g g le Button

!iAxe

Program ID: CAC10.Spreadsheei.10


Locatlcn: C: iPROGRA-1 COMMON-1 WSCROS-IV BCO
M-1\10'OWC1Q.DLL

;*$ Button G roup


I U f ActiveX Control

Create

Cancel

Help

Execuo:
I

cap6_activex_exemplo

Objeto ActiveX - MS-Exce! Spreadsheet

2 5 5 l= S O M A (D 2 D 7 )

i 10 I

;11 1
: 12 I
13 I
: 14

'\F*,1

-/

MATLAB 7- Fundamentos

C a p t u l o

Introduo ao
Symbolic Math Toolbox
A The Mathworks, com o apoio de empresas e consultorias especializadas, desenvolve
e comercializa bibliotecas de rotinas MATLAB, denominadas Toolbox, aplicadas a
reas especficas, como, por exemplo, estatstica, otimizao, controle, redes neurais,
totalizando cerca de 75 ttulos diferentes.
Como informao complementar ao MATLAB, este livro traz uma introduo ao
Symbolic Math Toolbox 3.1, aplicativo para matemtica simblica.
O ncleo do Symbolic Math Toolbox baseado no Maple, um sistema desenvolvido
inicialmente pela Universidade de Waterloo (Waterloo/Canad) e, posteriormente, pelo
Instituto Suo Federal de Tecnologia (Eidegenssiche Technische Hochschule,
Zurique/Sua). Atualmente, o Maple comercializado pela empresa canadense
Maplesoft, Inc.
O Symbolic Math Toolbox constitudo de quase duzentas funes que executam
operaes de matemtica algbrica e simblica dentro do ambiente MATLAB,
separadas nas seguintes reas:
Areas

Tpicos

Clculo

Funes, derivao, integrao, limites.

lgebra

Simplificaes, substituies.

lgebra Linear

Determinante, inversa, autovalor, autovetor, decomposies.

Solues de Equaes

Equaes algbricas, simblicas, diferenciais.

Transformadas

Fourier, Laplace, Z, inversas.

Aritmtica de preciso
variada e converses

Avaliao numrica de expresses matemticas com preciso


variada, e converses.

Funes especiais

Funes especficas.

Aps sua correta instalao, o Symbolic Math Toolbox fica disponvel, de forma
transparente, como qualquer outra funo do ncleo do MATLAB.

;, Introduo ao Symbolic Math Toolbox

A presena (ou disponibilidade) do Symbolic Math Toolbox pode ser verificada na opo
[Toolbox] do boto [Start], no canto inferior esquerdo da tela, ou digitando-se
ver s y m b o lic 1 na linha de comando:

ve r symbolic

MATLAB Version 7.0.0.19920

Symbolic M a t h Toolbox

(R14)

Version 3.1

(R14)

7 .1 . C o n c e it o s
Neste tpico, apresentamos os conceitos bsicos do Symbolic Math Toolbox, por meio
de exemplos como no Captulo 2; portanto, da mesma forma, na medida do possvel,
use o MATLAB 7 com Symbolic Math Toolbox e repita os exerccios descritos a seguir.

7.1.1. Smbolos
No Symbolic Math Toolbox, smbolos podem ser trabalhados de duas formas:

Cadeia de caracteres: neste caso, a cadeia interpretada pelo Symbolic Math


Toolbox, que identifica as variveis e as funes utilizadas.

Exemplo: clculo da integral de x, utilizando a funo int do Symbolic Math Toolbox


com uma cadeia de caracteres.

Objeto symbol definido pelo comando syms ou criado pela funo sym: neste
caso, o smbolo fornecido como parmetro de entrada para as funes do
Symbolic Math Toolbox.

Exemplo: clculo da integral de x utilizando a funo int do Symbolic Math Toolbox com
uma varivel simblica.

syms x
int(x)
ans =
l / 2 * x /s2

Nos dois casos, o retorno da funo um objeto symbol.


Smbolos podem ser utilizados como parmetros de entrada para as funes trigono
mtricas, exponenciais e matriciais bsicas mostradas no tpico 3.2.

MATLAEP 7 - Fundamentos

0 MATLAB consegue identificar automaticamente o tipo de varivel e chamar a rotina


adequada: biblioteca matemtica numrica para variveis numricas e biblioteca do
Symbolic Math Toolbox para variveis simblicas.
Por exemplo, podemos definir uma matriz A a partir de operaes efetuadas com os
smbolos x e y.

syms x y
A=[sin(x)
A =
[ sin(x),
[ cos (y) ,

y;cos(y)

x]

y]
x]

A varivel A contm uma matriz simblica, que pode ser usada com funes matriciais
bsicas. Podemos calcular o determinante e a inversa de A.
det(A)
ans =
s i n (x)*x-y*cos(y)
B=inv(A)
B =
[
x / ( s in(x)*x-y*cos(y)),
[ - c o s (y)/(sin(x)*x-y*cos(y)),

- y / sin(x)*x-y*cos(y))]
sin(x)/ sin(x)*x-y*cos(y))]

As funes matemticas podem ser compostas com as funes do Symbolic Math


Toolbox.
A funo simplify (simplificao) do Symbolic Math Toolbox pode ser utilizada para
verificarmos se B inversa de A (isto , se A*B = B*A = identidade):

C=A*B
C =
[sin(x)*x/(sin(x)*x-y*cos(y))-y*cos(y)/ (sin(x)*x-y*cos(y)) , 0]
[0,
sin(x)*x/(sin(x)*x-y*cos(y))-y*cos(y)/ (sin(x)*x-y*cos(y))]

s i m p l i f y (C)
ans =
[ 1, 0]
[ 0, 1]

s i m p l i f y (B*A)
ans =
[ 1, 0]
[ 0, 1

% A*B

% B*A

7.1.2. Criao de Variveis e Expresses Simblicas


Variveis e expresses simblicas podem ser criadas pela funo sym.
As variveis simblicas x e y, utilizadas no tpico anterior, tambm poderiam ter sido
definidas da seguinte forma:

Introduo ao Symbolic Math Toolbox


S

|| 11

ih m

te M
I Name

'

1
1 " : ~
1 Value

<1x1 s ym >
!<1x1 s y m > j

l U

x=sym('x ');
y=sym(1y');

jHy

<

1
1 '

'

>:

I Current Directory | Workspace j

A funo sym tambm transforma nmeros em smbolos. Isto essencial para tratar
com constantes como expresses simblicas.

Por exemplo, se tentarmos resolver F(x) = 5 dx com a funo int, int(5)', retorna
erro, pois 5 um double (nmero com preciso dupla) e a funo int no est
definida para este tipo de dado.
>> F=int{5)
??? Function

'int'

is not defined for values of class

d o u b l e 1.

Para podermos utilizar a funao int, temos que criar o smbolo 5 com a funo syms.

cinco = sym(5)
cinco =
5
F=int(cinco)
F =
5*x

A funo sym tambm define expresses, como, por exemplo, uma equao de 2grau:

e q 2 = s y m ( 1a * x A2 + b * x + c )
eq2 =
a * x A2+b*x+c

Podemos utilizar a funo solve para resolver essa equao de 22 grau e obter a
Frmula de Bscara:

s=solve(eq2)
s =
1/2/a*(-b+(b"2-4*a*c) (1/2))
1/2/a*(-b-(b~2-4*a*c) ^ (1/2))

Os resultados esto apresentados no formato padro de expresses do MATLAB.


A funo pretty do Symbolic Math Toolbox exibe como frmula uma expresso forne
cida nesse formato:

MATLAEP 7 - Fundamentos

7.1.3. Substituio de Variveis Simblicas por Nmeros


A funo subs permite calcular o valor numrico de uma expresso simblica por meio
da substituio da varivel simblica por um nmero.
Por exemplo, considere a matriz m definida com o smbolo x e as expresses de sua
determinante e sua inversa.
>> syms x
m=[sin{x) x;x cos(x ]
m =
% Expresso
[ sin(x),
x]
[
x, c o s ( x ) ]
dm=det (m)
dm =
% Expresso
sin (x) *cos (x )-x~2
mi=inv(m)
mi=
% Expresso
[ -cos(x)/(-sin(x)*cos(x)+xA2) ,
[
x /(-sin(x)*cos(x)+xA2 ),

em x da matriz m

em x do determinante de m

em x da inversa de m
x/(-sin(x)*cos(x)+xA2 )]
sin(x)/ (-sin(x)*cos(x)+x~2)]

Para x = 1, temos que a matriz, seu determinante e sua inversa assumem os seguintes
valores:

subs(m,x,l)
ans =
0.8415
1.0000
1.0000
0.5403

% matriz m, para x=l

s u b s (dm, x ,1)
ans =
-0.5454

% determinante de m, para x=l

s u b s (ml
ans =
-0.9907
1.8337

% inversa de m, para x=l

X ,

1)
1.8337
-1.5430

7.1.4. Grficos de Expresses Simblicas


Quando o Symbolic Math Toolbox est instalado, todas as funes de frmulas
matemticas do MATLAB 7 (apresentadas no tpico 5.1.7), alm de aceitarem
frmulas em cadeias de caracteres, tambm aceitam expresses simblicas.

Por exemplo:

syms x
f= log(x);
s u b p l o t (1,2,1)
ezplot(f)
s u b p l o t (1,2,2)
e z p l o t ( i n t (f ))

syms x y
e z s u r f (sin(x)+ l o g (y))

7.2. Funes por Categoria


Neste tpico, descrevemos as principais funes do Symbolic Math Toolbox, divididas
por disciplinas.

7.2.1. Clculo
Considere x e y as variveis simblicas definidas para os exemplos.

MATLAB 7 - Fundamentos

diff

Derivada e derivada parcial de funes.


Sintaxes tpicas:
r = diff(F)
r = diff(F,var)

Parmetros:
Entrada
F: funo
var: varivel a ser considerada

______________________________________________

Exemplo:
dif f (x"'2*cos (x) )
ans =
2*x*cos(x)-x~2*sin(x)
d i ff(xA2*cos(y),x)
ans =
2*x*cos(y)

% f (x) = x A2*cos(x)
% derivada de f(x)
% derivada parcial em x de f(x,y)

= X~2*cos(y)

diff(xA2*cos ( y ) ,y) % derivada parcial em y de f(x,y)


ans =

= X A2*cos(y)

A funo tambm pode ser composta para obter derivadas de ordens superiores.

Integral de funes.
Sintaxes tpicas:
r = int(F) / int(F,a,b)
r = int(F, var) / r = int(F, var,

a, b)

Parmetros:
Entrada_________________________________________________________________
F: funo
var: varivel a ser considerada
a, b: intervalo de integrao_______________________________________________________

Exemplo:
int(x~2*cos(x))
% integral de f(x)=xA2*cos(x)
ans x''2*sin(x)-2*sin(x)+2*x*cos(x)
int(xA2 * c os(x),0,pi)
ans =
-2*pi

% integral de f (x) =x /'2*cos (x) entre 0 e pi

int(xA2 * c os(y),y)
% integral em y de f(x,y)=xA2*cos(y)
ans =
x~2*sin(y)
int(xA2*cos(y),y,0,pi/2) % integral em y de f(x,y) entre 0 e pi/2
ans =
x A2

S limit
Limite de funes.

Sintaxes tpicas:
r
r
r
r

=
=
=
=

l i m i t (F)
l i m i t (F,vl)
l i m i t (F,var,vl)
l i m i t (F,var,vl,lado)

Parmetros:
Entrada
F: funo
vl: valor limite
var: varivel a ser considerada
lado: 'right' (limite pela direita) / 'left' (limite pela esquerda)
Observao: se o valor limite for omitido, a funo assume 0 (zero).
Exemplo:
l i m i t (sin(x)/x)
% limite (sin(x)/x) com x->0
ans =
1
limit(sin(x)/x,Inf) % limite (sin(x)/x) com x->Inf
ans =
0
limit(1/x,x,0, 'r i g h t 1) % limite (1/x) com x->0 pela direita
ans =
Inf
limit(1/x,x,0 l e f t 1) % limite (1/x) com x->0 pela esquerda
ans =
-Inf

taylor

Expanso da srie de Taylor de uma funo.


Sintaxes tpicas:
r
r
r
r

=
=
=
=

taylor(F)
taylor(F,n)
taylor(F,a)
taylor(F,var)

% quinta ordem
% ordem n
% valor da sride em a
% para a varivel var

Parmetros:
Entrada
F: funo

Introduo ao Symbolic Math Toolbox

Exemplo:
r = t a ylor(sin(x)) % quinta ordem
r =
x - l / 6 * x A3+l/120*xA5
e z p l o t (s i n ( x ) ,[-pi pi])
% grafico
sin(x)
hold
Current plot h e l d
% grafico da serie
________
ezplot(r,[-pi pi])

jacobian

Matriz jacobiana de derivadas parciais.


Sintaxe tpica:
r = jacobian(F,var)

Parmetros:
Entrada_____________________
F: funo de mais de uma varivel
var: vetor de variveis

Exemplo:
>> f=xA2 * c o s ( y ) ;
>> j a c o b i a n ([f f ] , [x y ] )
ans =
[ 2*x*cos(y), -xA2*sin(y)]
[ 2*x*cos(y), - x A2*sin(y)]

7.2.2. Simplificao e Substituio


y

simplify

Simplifica expresses.
Sintaxe tpica:
r = s i m p l i f y (expr)

Parmetro:
Entrada
expr: expresso

Exemplo:
m=[sin(x) c o s (x);-cos(x)
det(m)
ans =
sin(x)A2 +c o s ( x ) A2
simplify(det(m))
ans =
1

sin(x)];

expand

Expande expresses.
Sintaxe tpica:
r = e x p a n d (expr)

Parmetro:
Entrada
expr: expresso

Exemplo:
s=(x+l)A5
s =
(x+l)A 5
e x p a n d (s )
ans =
x A5+5*xA4+10*xA3+10*x's2 + 5 * x + l m=[sin(x)

S factor
Retorna os fatores de uma expresso.
Sintaxe tpica:
r = factor(expr)

cos (x) ;-cos (x) sin ( x ) ] ;

Exemplo:
e x p r = e x p a n d ( (exp(x)+x)* (x+1)A2)
expr =
exp(x)*x'~2 + 2*exp(x)*x+exp(x)+xA3+2*x~2+x
factor(expr)
ans =
(exp(x) +x) * (x+1) ~ 2 s=(x+l)~5

collect

Identifica coeficientes de termos de um polinmio.


Sintaxe tpica:
r = collect(expr,var)

Parmetros:
Entrada_________________________________
expr: expresso
var: varivel do polinmio______________________

Exemplo: polinmio de grau trs em x.


e xpr=y*xA3+y*x~2+x*y-y+x,'3+xA2 + x - l ;
collect(expr)
ans =
(y+1)*x"3+(y+1)*xA2+(y+1)*x-y-l

numden

Retorna expresso na forma: numerador /denominador.


Sintaxe tpica:
[n u m ,d e n ] = n u m d e n (e x p r )

Parmetros:
Entrada___________________
expr: expresso
var: varivel do polinmio

Exemplo: polinmio

[num, den] =numden (1/ (x+1) *x/'2-l/ (x+1) *x+3/ (x+1) )


num =
x~2-x+3
den =
x+1

MATLAB 7-Fundamentos

horner
Retorna o polinmio na forma polinomial de Horner.
Sintaxe tpica:
r = horner(expr)

Parmetro:
Entrada
expr: expresso

Exemplo: polinmio
exp r = x A54*x's4+2*xA3-5*xA2-x+3
expr =
x~ 5 - 4 * x~4+2*x/'3-5*x~2-x+3
horner(expr)
ans =
3+ ( - 1 + ( - 5 + ( 2 + (-4+x)*x)*x)*x)*x

coeffs

Dado um polinmio, retorna os coeficientes (da ordem menor para maior).


Sintaxe tpica:
r = coeffs(expr)

Parmetro:
Entrada______
expr: expresso

Exemplo:
expr=expand( ((x-2)~ 2 ) * (exp(x)-3))
expr =
x ~ 2 * e x p ( x ) -3 *x^2-4*x*exp(x)+12*x+4*exp(x)-12
coeffs(expr)
ans =
[ -12,
12,
-3,
1,
-4,
4]

sort

Ordena vetor simblico.

Sintaxe tpica:
r = s o r t (vetor)

Parmetro:
Entrada__________
vetor: vetor simblico

Exemplo:

subs

Substitui smbolos em expresses.


Sintaxe tpica:
r = subs(expr,

old, new)

Parmetros:
Entrada
expr: expresso
old: smbolo velho
new: smbolo novo

Exemplo:
expr=expand( ((x-2)~2)* (exp(x)-3))
expr =
x~2*exp(x)-3*x~2-4*x*exp(x)+12*x+4*exp(x)-12
subs(expr,x,y)
ans =
y ,'2*exp (y) -3*y''2-4*y*exp (y) +12*y+4*exp (y) -12

7.2.3. Aritmtica de Preciso Variada


s

vpa

Interpreta um valor numrico e retorna-o como smbolo com a preciso numrica


solicitada.

MATLAB 7 - Fundamentos

Sintaxe tpica:
r = v p a ( e x p r ,prec)

Parmetros:
Entrada____________
expr: expresso
prec: preciso numrica
Exemplo:
>> p i 3 = v p a ( p i ,3)
P i3 =
3 .14

digits

Configura preciso numrica para efeito de clculo simblico.


Sintaxes tpicas:
digits
digits(prec)

Parmetro:
Entrada
prec: preciso numrica
Exemplo:
digits
Digits = 32
d i g i t s (5)
digits
Digits = 5

% Exibe configuracao atual


% Modifica configuracao

7.2.4. lgebra Linear


Funes de lgebra linear do MATLAB que valem para smbolos:
Funo
diag
triu
tril
inv
det
11

II Introduo ao Symbolic Math Toolbox

Descrio
cria ou extrai diagonal
matriz triangular superior
matriz triangula inferior
inversa
determinante

Funo
rank
rref
null
colspace
eig
svd
jordan
poly

Descrio
posto
forma reduzida
base do espao nulo
base do espao coluna
autovalores e autovetores
valores e vetores singulares
forma cannica de Jordan
polinmio caracterstico

Exemplo:

m=[x y+1; x+1 y]

m =
[

X,

y+1]

x+1,
y]
diag(m)
ans =
x
y
det(m)
ans =
-y-x-1
mi=inv(m)
mi =
[
- y / ( y+x+l), (y+1)/(y+x+l)]
[ (x+1) / (y+x+l),
-x/(y+x+l) ]

[v,lambda]=eig (m)
V

-(y+1)/(x+1),
1,
lambda =
[
-1,
0]
[
0, y+x+l]

1]
1]

7.2.5. Soluo de Equaes


s

solve

Resolve equaes simblicas.


Sintaxe tpica:
r = solve(equl,

equ2,

...)

MATLAEP 7 - Fundamentos

Parmetro:
Entrada______________
equ: equaes simblicas

Exemplo: resolver uma equao de 33 grau.


>> r=solve (xA3-6*x,'2+ll*x-6)
r =
1

2
3

Exemplo: achar as interseces entre uma circunferncia de centro (0,0) e raio 1, com a
reta identidade, ou seja, x e y, tais que x2+y2=1 e x=y.

dsolve

Resolve equaes diferenciais simblicas fornecidas como cadeia de caracteres.


Sintaxe tpica:
r = dsolve(equl,

equ2,

...)

Parmetro:
Entrada___________________________________________________________
equ: equaes diferenciais simblicas em formato de cadeia de caracteres.
Observao: 'D' indica derivada e 'D2' indica segunda derivada.

Introduo ao Symbolic Math Toolbox

-xem plo: resolver

dv

= cos(t) + 1.

r = d s o l v e (D 2 y = c o s {t)+t ')
r =

-cos (t)+l/6*t/'3+Cl*t+C2

% Cl e C2 constantes

Resolver a mesma equao com duas condies iniciais (para y de Dy) para determinar
os valores das constantes C1 e C2.

^
dt

= cos(t) + t, y(0) = 1 e y ,(0) = 1

r = d s o l v e (' D2y=cos(t)+t ' 'y (0)=1'


r =
- c o s (t)+l/6*tA3+2

'Dy(O)=0 ')

finverse

Calcula funo inversa (se existir).


Sintaxes tpicas:
r = f i n v e r s e (funcao)
r = finverse(funcao,var)

Parmetros:
Entrada
funcao: funo a ser invertida
var: varivel a ser considerada para a inverso

MATLAEP 7 - Fundamentos

Exemplos:
finverse
ans =
l/(x-l)
>> r=dsolve

( x + U / x)

'D y = c o s ( t ) + t 1)

finverse c o s ( x + 1 ))
ans =
-1+acos(x
>> finverse abs(x))
% nao existe inversa para funcao valor absoluto
Warning: fi n v e r s e (abs(x)) cannot be found.
> In sym.finverse at 38
ans =
0

/ compose
Dadas as funes f e g, retoma funo composta f(g).
Sintaxe tpica:
r = compose(f,g)

Parmetros:
Entrada
f, g: funes

Exemplos:

f=sin(x) ;
g = ( x + 2 )/x;

c o m p o s e (f,g) % f (g)
ans =
s i n ((x+2)/x)
>> compose(g,f)
% g(f)
ans =
(sin(x)+2)/sin(x)

7.2.6. Funes de Converso


S

double

Converte matriz simblica em numrica de preciso dupla.


Sintaxe tpica:
r = double (m)

I Introduo ao Symbolic Math Toolbox

Parmetro:
Entrada_________
m: matriz simblica
Exemplos:
>> m = [ x -y;y -x] ;
m=sinnplify (m*inv(m) )
m =
[ 1, 0]
[ 0, 1]
r=double<m)
r =
1
0
0
1

Demais funes de converses smbolo/nmero


Funo
single
char
int8
int16
int32
int64
uint8
uint16
uint32
uint64

Converte matriz simblica em numrica de:


preciso simples
cadeia de caracteres
inteiros de 8 bits
inteiros de 16 bits
inteiros de 32 bits
inteiros de 16 bits
inteiros de 8 bits sem sinal
inteiros de 16 bits sem sinal
inteiros de 32 bits sem sinal
inteiros de 16 bits sem sinal

s poly2sym
Converte vetor numrico de coeficientes em polinmio simblico.
Sintaxes tpicas:
r = poly2sym(v)
r = poly2sym(v,var)

Parmetro:
Entrada
v: vetor numrico de coeficientes
var: varivel

MATLAB 87-Fundamentos

Exemplos:
v = [2 5 6 -1 4] ;
pl=poly2sym(v)
pl =
2 * x A4+5*xA3+6*xA2-x+4
p 2 = p o l y 2 s y m ( v ( l :3) , 't ')
p2 =
2 * t A2+5*t+6

S sym2poly
Converte polinmio simblico em vetor numrico de coeficientes.
Sintaxe tpica:
r = s y m2poly(pol)

Parmetro:
Entrada
pol: polinmio simblico
Exemplos:
pol=expan d ( ( x - 2)A5)
pol =
x A5-10*xA4+4 0 * x A3-80*x,'2 + 80*x-32
v=sym2poly(pol)
v 1
-10
40
-80
80
-32

7 .2 .7 .
S

Transformadas

fourier/ifourier

fourier: retorna Transformada de Fourier.


ifourier: retorna inversa da Transformada de Fourier.
Sintaxes tpicas:
tf = fourier(expr) / fourier(expr,var)
expr = ifourier(tf) / ifourier(tf,var)

H 9 M

Parmetros:
Entrada
expr: funo
var: varivel
Introduo ao Symbolic Math Toolbox

( 359

Exemplo:
f = e x p (~x*2);

t f = f o u r i e r (f )
tf =
pi"' (1/2) *exp (-l/4*ws2 )

p r e t t y (tf)
1/2
pi

2
exp(- 1/4 w )

ifourier(tf)
ans =
e x p (- x ^ 2 )

O b s e rv a o : a Trasformada de Fourier utilizada para anlise de dados, principalmente na


rea de processamento de sinais para identificao de freqncias.

laplace/ilaplace

laplace: retorna Transformada de Laplace.


ilaplace: retorna inversa da Transformada de Laplace.
Sintaxes tpicas:
tl = laplace(expr) / laplace(expr,var)
/ ilaplace(tl,var)
expr = ilaplace(tl

Parmetros:
E n trad a

expr: funo
var: varivel
Retorna Transformada de Laplace.

ff

Sintaxes tpicas:
tl = laplace(expr)
tl = laplace(expr, var)

Parmetros:
E n trad a

expr: funo
var: varivel

MATLAB 7 - Fundamentos

Exemplo:

r=sin(x);
t r = l a p lace(r);
p r e t t y (tr)
1
2
s

+1

ilaplace(tr)
ans =
s i n (t )

O b s erva o : a Trasformada de Laplace utilizada na rea de controle para anlise de


sistemas dinmicos.

ztrans/iztrans
ztrans: retorna Transformada Z (domnio da freqncia),
iztrans: retorna a inversa da Transformada Z (domnio da freqncia).
Sintaxes tpicas:
tz = ztrans(expr) / ztrans(expr,var)
expr = iztrans(tz) / iztrans(tz.var)

Parmetros:
E n trad a

expr: funo
var: varivel

Exemplo:

7.2.8. Funes de Formatao


S

findsym

Retorna as variveis simblicas em uma expresso.

Introduo ao Symbolic Math Toolbox____________________________________^361^

Sintaxe tpica:
v a r = findsym(expr)

Parmetro:
E n trad a________

expr: expresso

Exemplo:
syms a b x y

f=a*(x-2) - exp(b/y);

findsym(f)
ans =
a, b, x, y

pretty

Retorna a expresso em representao de frmula.


Sintaxe tpica:
pretty(expr)

Parmetro:
Entrada
expr: expresso

Exemplo:
syms a b c x
s=a*x~2-b*x+c;
s o l v e (s)
ans =
1/2/a*(b+(b~2-4*a*c)*(1/2) )
1/2/a* (b- (b''2-4*a*c)'s(l/2) )

p r e t t y (solve(s))
2
1/2]
[
b + (b - 4 a c)
]
[
[ 1/2
a
]
[
[
2
1/2]
[
b - (b - 4 a c)
]
[
[1/2
a
]
[

MATLAB 7-Fundamentos

Funes de converso de formato:


Funo

Formato

f=a*(x-2)

latex

latex

texlabel

tex

ccode

linguagem C

fortran

linguagem Fortran

- exp(b/y);

>> l a t e x (f)
ans =
a \left( x-2 \right) -{eA {{\frac {b}{y}}}}
texlabel(f)
ans =
{a} ({x} - {2} )- {exp} ({b} / {y} )
ccode(f)
ans =
tO = a * ( x - 2 .0)-exp(b/y);
fortran(f)
ans =
tO = a * ( x - 2 )-exp(b/y)

7.2.9. Funes Especiais

Tratamento de casos onde a soluo algbrica no existe:


Funo

Exempio

Descrio

erf

funo erro

sinint

integral de seno

cosint

integral de co-seno

exp(-x2)

int(exp(-xA2 ))
ans =
l/2*pi's (1/2)*erf(x)
i n t (sin(x)/x)
ans =
sinint(x)
i n t (cos(x)/x)
ans =
cosint(x)

M M C /M D C :
Funo

Descrio

Icm

mmimo mltiplo comum

gcd

mximo divisor comum

Exemplo
pl=x~3-3*x~2+3*x- 1 ;
p 2 = x ,'2-5*x+4 ;
lcm(pl,p2)
ans =
(xA2-2*x+l)* (xA2-5*x+4)
pl=x~3-3*x~2+3*x-l;
p 2 = x A2-5 * x + 4 ;
gcd(pl,p2)
ans =
X 1

Funes 'Exemplo'
Funo
rsums
funtool
taylortool
symintro

Introduo ao Symbolic Math Toolbox

Descrio
soma de Riemann
calculadora de funes
calculadora de sries de Taylor
introduo ao Symbolic Math Toolbox

( 363

Funo
symcalcdemo
symlindemo
symvpademo
symrotdemo
symeqndemo

Descrio
demonstrao de clculo simblico
demonstrao de lgebra linear simblica
demonstrao de preciso numrica
estudo de planos de rotao
demonstrao de soluo de equaes simblicas

Exemplos:
|

r s u m s ('s i n ( x ) / x ',0,2* p i ) ]

funtool

taylortool

l(x) :x-cosfx)

0
N=7

~0
S

- pi

< x ' -D!

C=D

MATLAB 7-Fundamentos

A p n d ic e

Exerccios Propostos

1.

No exerccio 2, do tpico 2.3.1., o que significa a multiplicaco matricial das


matrizes a e c (a*c)?
Qual a condio necessria para que duas matrizes A n e B pxq possam ser
multiplicadas matricialmente?
A resposta n = p, ou seja, que o nmero de colunas de A seja igual ao nmero
de linhas de B. Isto faz sentido? Por qu?
O que aconteceria se as tabelas tivessem informaes dos meses de Maro e
Abril, ou de outros tipos de carros e peas?
(Fonte: programao 'Vestibulando Digital1exibido pela TV Cultura - So Paulo.)

2.

Carlos, Lus e Slvio tinham, juntos, 100 mil reais para investir por um ano.Carlos
escolheu uma aplicao que rendia 15% ao ano. Lus, umaque rendia 20% por
ano. Slvio aplicou metade de seu dinheiro em um fundo que rendia 20% ao ano,
investindo a outra metade numa aplicao de risco, com rendimento anual ps-fixado. Depois de um ano, Carlos e Luis tinham, juntos, 59 mil reais; Carlos e
Slvio, 93 mil reais; Luis e Slvio, 106 mil reais.
I. Quantos reais cada um tinha inicialmente?
II. Qual foi o rendimento da aplicao de risco?
(Fonte: Questo 1 da Prova de Matemtica da 2a fase da Fuvest 2002 (08/01/2002)).

3.

No exerccio 7, do tpico 2.7.2:


Calcule o coeficiente de determinao da regresso (coeficiente R2).
O R2 da regresso -0.9311. Qual o significado desse valor?

4.

Abra arquivo triangulo_pascal.m no edit:

Faa o acompanhamento da execuo de ,a2=triangulo_pascal(2).

Faa um programa que calcule o tringulo de pascal pela frmula.

Apndice A Exerccios Propostos

5.

Para facilitar a entrada de parmetros, experimente criar uma interface grfica por
meio do GUIDE como esta exibida a seguir para o problema do 'bungie jump':

Deslocamento :r

200;

l!
\
I \

iso;
100
50

0
.50
100:

100

200

300

400

I K (elastic)

500

600

700

300

01

O arquivo 'questao8.xls' contm duas sries tem


porais, uma com 30 observaes, armazenada
nas colunas A e B da pasta [Pianl], e outra, com
100, armazenada nas colunas A e B da pasta
[Plan2],

SOO

1000

1O

I E (Iracao)

Ifj3 Arquivo
!

Editar

Exbif

- 10 y

! Arial

f*:

A1

As duas sries apresentam missing data nos


dados da coluna B,
Problema proposto:
I. Criar uma funo que, dados os vetores X e Y,
com Y contendo missing vaiues, constri uma
curva spline a partir dos pares de pontos
vlidos; e utilizar a curva spline para interpolar
os missing values.

1 13 U 3 4u:

2
_3

m
6
*7
8
j . 9.
To
j ii

Insenr
L V

Sl

1.62069
1931034
2.241379
2 551724
2 86206S
3,172414
3,432759
3,793103
4.103448

li,m

Por
s.fb Lr=

1
c

77,625
74,5
73,125
73,125
73
72,875
74.375
75,25

II. Ler os dados da planilha 'questao8.xls'.


III. Aplicar a funo nos dados da planilha e exibir os resultados em grficos (veja

a seguir).
IV. Criar uma coluna C em cada pasta da planilha com os missing values da
coluna B, substitudos pelos valores interpolados pela funo.

MATLAB 7 - Fundamentos

7.

Crie uma verso do programa cap4Jmage_exempIo.m que aceite nmeros


diferentes de parmetros de entrada, usando a funo nargin:
a. dois parmetros: aceita os parmetros.
b. um parmetro: pede arquivo de sada com a funo inputdlg.
c. nenhum parmetro: pede os nomes dos arquivos com a funo inputdlg.
Nomes cios Arquivos

j5 ? j

Entrada.......................................
;:j NGJuly2002.jpg

.................... ,

Sada
i s cap3.jpg

1
j ; OK

8.

I : 1 Cancel j

Considere o problema de circuito eltrico apresentado no exerccio 4.


R
-jWWvVv-

-WWAV-

R,

-A/WvWvU
+

PT

Tente criar interfaces grficas dos tipos indicados a seguir.

Apndice A - Exerccios Propostos

9.

Uma empresa fabrica um produto que vendido em dois pases no estrangeiro.


Sejam x e y as quantidades vendidas nesses dois mercados.
Sabe-se que as equaes de demanda nos dois mercados so dadas por:
p1 = 6 0 0 0 - 2 *x e p 2 = 9 0 0 0 - 4*y.
A funo custo total desta firma C(z) = 60000 + 500*z, onde z a quantidade
produzida.
Obtenha os valores de x e y que maximizam o iucro total da firma:
L(x,y) = p1*x + p2*y - C(x,y), e ache esse lucro.
(Fonte: Lista de Exerccio do Curso de Derivativos da BM&F de So Paulo).

10. Crie a seguinte representao com o Symbolic Math Toolbox:


E1(x,y) = x' * sin(x) + y1* co s(y),
onde: x1 1 derivada de x, y1 2- derivada de y no tempo.
Obtenha a derivada de E1(x,y) no tempo, onde x e y so funes desconhecidas
no domnio do tempo.

MATLAIP 7 Fundamentos

Indice Remissivo
!, 24
,32
%%, 71
%, 70,74
& (and), 81,200
*,31
-3 1
',32
.*,31
7,31
A 32
/, 31
A, 32
I (or), 81,200
- (not), 81,200
~= (ne), 81, 200
+,31
< (It), 81,200
<= (le), 81,200
== (eq), 81,200
> (gt), 81,200
>= (ge), 81,200

abs, 122
acos, 121
acosd, 121
acosh, 121
acot, 121
acotd, 121
acoth, 121
acsc, 121
acscd, 121
acsch, 121
addframe, 245
addtodate, 205
ajuste de curvas, 268
lgebra linear, 353
alpha, 290
alse, 81
Alt+S, 117
analisador para verificao de erros
sintticos, 210
angle, 122
annotations, 262
ans, 27
area, 274
arndlg, 313
array editor, 30,113
asec, 121
asecd,121
asech, 121
asin, 121
asind, 121
asinh, 121
atan, 121
atan2,121

atand, 121
atanh, 121
A U ,222
auread, 222
autovalores, 145
autovetores, 145
AVI, 222
avifile, 245
aviinfo, 245
aviread, 222,246
axes, 91,264,299,333
axis, 264

B
balanceamento de expresses, 71
bar, 274
bar3,280
barh, 274
barh3,280
base2dec, 197
bin2dec, 197
bitand, 199
bitcmp, 199
bitget, 199
bitmax, 199
bitor, 199
bitset, 199
bitshift, 199
bitxor, 199
bkldiag, 133
blanks, 183
BMP, 222
boto
direito do mouse, 21
esquerdo do mouse, 20
break, 209
breakpoint, 72
brighten, 291
built-in function), 35
buttongroup, 328,335

cadeia de caracteres, 46,183


calendar, 205
camdolly, 296
camera, 295
camlookat, 296
camorbit, 296
campan,296
campos, 296
camproj, 296
camproll, 296
camtarget, 296
camva, 296
camzoom, 296
caracteres especiais, 229

cart2pol, 164
cart2sph, 164
casa decimal, 27
case, 209,214
catch, 209,218
ccode, 363
c d ,219
cd, 24
CDF*, 222
cdfread, 222
ceil, 122
cell, 47,74,194
cell array, 47
cell mode, 69
cell2mat, 195
cell2str, 191
celldisp, 195
cellfun, 194
cellplot, 196
cellstr, 184
chamada de funo, 76
char, 184,198
char array, 46
checkbox, 335
class, 181
classe do dado, 181
clear, 30
clock, 205
codh ,121
coeffs, 351
coeficiente de correlao, 150
collect, 350
colordef, 292
colormap, 291
colspace, 354
comet, 271
comet3,278
command history, 116
command window, 99
compan, 137
compass, 275
complex, 122
component pallete, 325
compose, 357
cond, 138
conj, 122
context menus, 322
continue, 209
contour, 286
contour3,286
contourf, 286
conv, 151
converso de coordenada, 164
corrcoef, 151
cos, 121
cosd, 121
cosh, 121

Indice Remissivo

cosint, 363
cot, 121
cotd, 121
cov, 151
covarincia, 151
cplxpair, 122
cputime, 206
csc, 121
cscd, 121
csch, 121
CSV, 221
C trl+0,117
C trl+1,117
C trl+2,117
C trl+3,117
C trl+4,117
Ctrl+A, 117
Ctrl+C, 117
Ctrl+D, 117
Ctrl+F, 117
Ctrl+1,117
Ctrl+N, 117
C trl+ 0 ,117
Ctrl+P, 117
Ctrl+Q, 117
Ctrl+S, 117
Ctrl+Shift+0,117
Ctrl+V, 117
Ctrl+W, 117
Ctrl+X, 117
Ctrl+Y, 117
Ctrl+Z, 117
cumprod, 124
cumsum, 125
cumtrapz, 147
CUR, 222
current directory, 110
cvsread, 221,233
cvswrite, 234
cylinder, 281

LJ

dados estatsticos, 269


DAT, 221
data cursor, 259
date, 206
datenum, 206
datestr, 184,207
datetick, 264
datevec, 207
dbclear, 73
dbcont, 73
dblquad, 174
dbquit, 73
dbstack, 73
dbstatus, 73
dbstep, 73
dbstop, 73
dbtype, 73
dbup,73
deal, 191

deblank, 185
debug mode, 69
dec2base, 198
dec2bin, 198
dec2hex, 198
decomposio, 143
em valores singulares, 146
deconv, 152
definio de funo, 75
delete, 300
delimited file, 63
derivada, 345
parcial de funes, 345
desktop layout, 23
desvio padro, 147
det, 45,139, 353
determinante de matriz, 45,139
diag, 125,353
diagonal de matriz, 125
diferenas finitas, 149
diferente, 81
diff, 149,345
digits, 353
dir, 24
diviso
escalar, 31
matricial, 31
DLM.221
dlmread, 63, 221,234
dlmwrite, 63, 234
dock, 23
double, 51, 357
dsolve, 355

E
E, 81
echo,211
edit, 69,105,209
edit text, 93,329
editor de programas, 105,209
eig, 145,354
ellipsoid, 281
else, 82,209,213
else if, 82,209,213
end, 209,213
eps, 27
equaes
diferenciais, 165,354
diferenciais simblicas, 355
lineares, 143
erf, 363
errodlg, 217
error, 217
errorbar, 271
errordlg, 305
ESC, 117
escalar, 26
escopo
de funes, 80
de variveis, 78

estruturas de
programao, 81
repetio, 83,215
seleo, 82,213
etxor, 203
eval, 185
e x p ,121
expand,349
expm l, 121
export setup, 266
expresses booleanas, 81
eye, 44,133
ezcontour, 287
ezcontourf, 287
ezmesh, 287
ezmeshc, 287
ezplot, 288
ezplof, 288
ezpolar, 289
ezsurf, 290
ezsurfc, 290

F
F 1 0,117
F 1 1 ,117
F11+Shift, 117
F 5 ,117
factor, 122, 349
factorial, 122
fatorao, 122
fclose, 227
feather, 276
feof, 227
ferror, 227
fft, 153
fgetl, 227
fgets, 228
fieldnames, 50,192
fields, 49
FIG, 223
figure, 299
figure palettes, 261
figure window, 54
fileparts, 220
filesep, 219
filter, 152
find files, 119
find, 126
findobj, 300
findobj, 93
findsym, 362
finverse, 356
FITS*, 222
fitsread, 222
fix, 122
fliplr, 126
flipup, 126
floor, 122
fminbnd, 169
fopen, 228
for, 83,209,216

format, 28
formato
de arquivo, 221
delimitado, 63
MAT, 62
MS-Excel, 67
fortran, 363
fourier, 359
fprintf, 228
fread, 230
frewind, 230
fscanf, 230
fseek, 231
ftell, 231
ftp, 248
full, 177
fullfile, 220
func2str, 198
funo, 35
callback, 90
composta, 357
de arredondamento e resto, 122
de nmeros complexos, 122
de teste lgico, 123
exponencial elementar, 121
inversa, 356
trigonomtrica elementar, 121
function, 70,76,208,209
funtool, 363
fwrite, 232
fzero, 170

G
gbo, 302
gca, 301
gcbf, 302
gcbo, 302
gcd, 122,363
gcf, 59,93
generate m-file, 263
gerao de grficos, 53
get, 94,303
getframe, 246
GIF, 222
ginput, 314
global, 79,209
gradient, 150
grid, 57,264
griddata, 159
gtext, 315
GUIDE Graphic User Interface
Design Environment, 89,317

H
handle graphics, 296
HDF*, 222
HDF, 222
hdfread, 222
help browser, 102
helpdlg, 306

Indice Remissivo

hex2dec, 197
hidden, 292
hide / show plot tools, 259
hold, 272
homer, 351
HTML, 223

ICO, 222
if, 82,209,213 .
ifft, 154
ifourier, 359
igual, 81
ilaplace, 360
imag, 122
image, 60,243,299
imageview, 306
iminfo, 242
importdata, 68,221
imread, 60,222,243
imwrite, 243
indexao, 39
inf, 28
input, 87
inputdlg, 88,307
inputname, 212
Insert colorbar, 259
Insert legend, 259
int, 346
int16,51
int2str, 198
int32,51
int64,51
int8,51
integrao numrica, 173
integral de funes, 346
inteiro
8 bits com sinal, 51
8 bits sem sinal, 51
16 bits com sinal, 51
16 bits sem sinal, 51
32 bits com sinal, 51
32 bits sem sinal, 51
64 bits com sinal, 51
64 bits sem sinal, 51
interface com usurio, 98
interpl, 160
interp2,161
interpft, 162
interpolao, 158
intersect, 200
intmax, 50
intmin, 50
inv, 45,142,353
inversa de matriz, 45
isa, 182
iscell, 82,182
iscellstr, 82,183
ischar, 81,183
isempty, 81,123
isequal, 81,123,182

isfield, 82,182
isfinite, 82
isfloat, 123,182
isglobal, 79
ishandle, 302
isinf, 82
isinteger, 124,182
iskeyword, 182,209
isletter, 183
islogical, 124,182
ismember, 201
isnan, 82
isnumeric, 81,124,182
ispersistent, 79
isprime, 122
isreal, 82,122,182
isscalar, 124,182
issorted, 202
isspace, 183
issparse, 81,124,178
isstruct, 82
istruct, 182
isvarname, 182
isvector, 124,182
iztrans, 361

J
jacobian, 348
Java Virtual Machine, 20
JIT accelerator, 69
jordan, 354
JPEG, 222

K
kron, 127

L
label, 322
laplace, 360
lasterr, 217
lastwarn, 217
latex, 363
layout area, 325
Icm, 122,363
legend, 264
length, 124
light, 293,299
lighting, 293
limit, 347
limite de funes, 346
line, 257
linsolve, 143
linspace, 43,134
listbox, 332
listdlg, 307
load, 62,221,222
log, 121
log 10,121
loglp, 121

lo g2 ,121
logical, 181,198
logspace, 134
lower, 186
Is, 24
lu, 143

maior ou igual, 81
maiorque, 81
marker, 257
MAT, 221
mat2cell, 197
mat2str, 198
matemtica
algbrica e simblica, 339
discreta, 122
material, 293
mat-file, 62
matlab.mat, 223
MATLAB 7 Desktop, 19
MATLAB Desktop, 99
MATLAB Help Browser, 119
matlabrc.m, 120
matlabroot, 219
matriz
bidimensional, 26
de clula, 47
esparsa, 175
identidade, 133
inversa, 142
jacobiana, 348
ortogonal, 140
pseudo-inversa, 144
simblica, 341
tridimensional, 27
max, 128
MDL, 223
mean, 147
mdia, 147
median, 147
mediana, 147
menor
ou igual, 81
que, 81
menu
Bar, 322
contextual, 105
flutuante, 105
mesh, 282
meshc, 282
meshgrid, 60,134,282
m-file, 207
mfilename, 208
min, 128
mlint, 210
M-Lint, 69, 74
mlintrpt, 210
mod, 122
modelo do Simulink, 223
movie, 246

-3

movie2avi, 246
moving tools within the desktop, 22
msgbox, 309
multiplicao
escalar, 31
matricial, 31

namelengthmax, 29,208
N aN ,28
nargin, 208
nargout, 209
nchoosek, 122
ndims, 124
negao,81
nested function, 80
nextpow2,121
nil, 81
nnz, 178
nome
da funo, 35,208
de varivel, 29
nondouble, 51
nonzeros, 178
norm ,139
notao cientfica, 27
now, 206
null, 140,354
num2cell, 197
num2str, 198
numden, 350
numel, 44,124
nmero, 27
complexo, 27
negativo, 27
primo, 122

objeto ActiveX, 337


ode113,165,167
ode15s, 165
ode23,165
ode23s, 165
ode23t, 165
ode23tb, 165
ode45,165
ones, 44,135
oom in, 258
open, 223
operadores
bitwise, 199
de conjunto, 200
de data e hora, 204
relacionais, 200
optimget, 173
optimset, 171
orderfields, 192
orth, 140
otherwise, 209,214

otimizao, 169
OU, 81

page setup, 266


palavras reservadas da linguagem
MATLAB, 209
pa n,258
panel, 334
parmetros
de entrada, 35,208
de sada, 35,208
pascal, 138
path, 299
pathdef.m, 120
pathtool, 118
pause, 212
PBM, 222
pcode,211
PCX, 222
peaks, 283
perms, 123
persistent, 78,209
PGM, 222
pi, 27
pie, 275
pie3,280
pinv, 144
plot, 54
plot browser, 260
plot tools, 57,256
plot type, 257
plot3,278
plotyy, 273
PNG, 222
pol2cart, 164
polar, 272
polinmio, 155
caracterstico, 146
poly, 145,155,354
poly2sym, 358
polyder, 156
polyeig, 146
polyfit, 65,156
polyint, 157
polyval, 65,157
Popupmenu, 330
posto de matriz, 45,141
potncia
(matrizAescalar), 32
escalar, 32
p o w 2,121
PPM, 222
ppval, 163
precedncia, 32
preciso
dupla, 51
simples, 51
preferences, 118
pretty, 362
primes, 123

MATLAEP 7 - Fundamentos \:

print, 267
preview, 267
setup, 267
print, 59
private function, 80
prod, 128
produto de Kron, 127
profile, 84
profiler, 102
prompt K ', 72
properties editor, 262
propriedades de exibio da curva
do grfico, 56
proteger cdigo fonte, 211
publish to HTML, 102
push button, 91, 326
pwd, 24,219

Q
qr, 144
quad, 173
quadl, 173
questdlg, 310
quiver, 277
quiver3,284

R
radiobutton, 335
rand, 44,135
ran dn ,44 ,136
rank, 45,141,354
RAS, 222

rat, 123
rats, 123
real, 122
reallog, 121
realmax, 27
realmin, 27
realpow, 121
rectangle, 300
rem, 122
repmat, 129
reshape, 129
resizing tools, 21
restoredefaultpath.m, 120
return, 209
ribbon, 279
rmfield, 192
roots, 158
rot90,130
rotate 3D, 259
round, 122
rref, 354
rsums, 363

s
save, 62,224
script, 70,208,214
sec, 121

I ndice Remissivo

seed, 121
s ech ,121
selectionchangefunction, 335
sendmail, 249
serial, 252
srie de Taylor, 347
set, 303
setdiff, 202
shading, 294
shortcut, 100
sign, 122
smbolo, 340
simplify, 348
sin, 121
sind, 121
single, 51
sinh, 121
sinint, 363
sistema linear, 41
size, 44,124
slider, 327
SND, 222
solve, 354
solvers, 165
soma, 31
sort, 130,352
sortrows, 131
sound, 239
soundview, 310
sparse, 177
spdiags, 175
speye,176
spfun, 179
sphere, 283
spline, 163
spones, 179
sprand, 176
sprandn, 176
sprintf, 186
spy, 180
sqrt, 121
sscanf, 187
stairs, 278
start button, 99
startup.m, 120
static text, 93
std, 147
stem, 278
str2double, 198
str2func, 198
str2num, 94,198
strcat, 187
strcmp, 183
strcmpi, 183
strfind, 190
strjust, 187
strncmp, 183
strncmpi, 183
strread, 188
strrep, 188
strtok, 190

strtrim, 189
struct, 49,193
struct2cell, 193
strvcat, 47,189
subfunctions, 80
subplot, 58,264
subs, 343,352
subspace, 141
subtrao, 31
sum, 131
surf, 60,282
surface, 300
surfc, 282
surfnorm, 285
svd, 146, 354
switch, 82,214
sym, 340,342
sym2poly, 359
symbol, 340
symcalcdemo, 364
symeqndemo, 364
symintro, 363
symlindemo, 364
symrotdemo, 364
syms, 340
symvpademo, 364

T
tab, 117,221
tab+ctrl, 117
tag, 93,322
tan, 121
tand, 121
tanh, 121
taylor, 347
taylortooi, 363
tecias de atalho, 117
tempdir, 219
tempname, 219
texlabel, 363
text, 264,300
textread, 235
textscan, 235
tic, 207
TIFF, 222
title, 257,264
toe, 207
toggiebutton, 335
toolbox, 339
trace, 142
transformada
de Fourier, 359
de Laplace, 360
discreta de Fourier, 153
Z, 361
transposta, 32
trapz, 148
tratamento de erros, 217
tril, 132,353
triu, 132,353
true, 81

373

try, 209,218
TXT, 221

u
Ul Objects, 297
Ul Control, 297, 317
uigetdir, 311
uigetfile, 311
uiimport, 224
uiload, 225
UlMenu Properties, 322
uint16,51
uint32,51
uint64,51
uint8,51
uiopen, 225
uiputfile, 312
undock, 23
union, 203
unique, 204
unzip, 249
upper, 186
uriread, 250
uriwrite, 250
user usability, 98

V
var, 147
varincia, 147
varivel
global, 79
local, 78
persistente, 78
vetor
coluna, 26
linha, 26
multi-dimensional, 27
seqencial, 42
vpa, 353

w
waitbar, 312
waitfor, 316
waitforbuttonpress, 316
waterfall, 282
WAV, 222
wavplay, 239
wavread, 222,240
wavrecord, 241
wavwrite, 241
web browser, 101
which, 221
while, 83,209,215
who, 30
winopen, 226

m i,

222

wk1 read, 222


wklsread, 238
wk1 write, 239
workspace, 30,111

x
X Axis, 258
XDW, 222
xlabel, 264
XLS, 222
xlsfinfo, 236
xlsread, 67,222,237
xlswrite, 67,237
XML, 252
xmlread, 252
xmlwrite, 253
xslt, 253

Y
Y Axis, 258
ylabel, 264

z
Z Axis, 258
zeros, 44,137
zip, 251
zlabel, 264
zoom out, 258
7tranc

MATLAB 7 Fundamentos

Referncias Bibliogrficas
HANSELMAN, D.; LITTLEFIELD B. The Student Edition of MATLAB Version 5. User's
Guide. Prentice Hail, 1997.
MATSUMOTO, E. Y. MATLAB 6: Fundamentos de Programao. So Paulo: rica,
2001 .
______ . MATLAB 6.5: Fundamentos de Programao. So Paulo: rica, 2002.
THE MATHWORKS. Getting Started with MATLAB Version 7,2004.
______ . Using MATLAB Graphics Version 7 , 2004.
______ . Using MATLAB Version 7,2004.

Sugestes de Leitura:
MANZANO, J. A. N. G. Estudo Dirigido de Visual Basic 6. So Paulo: rica, 1999.
______ . Estudo Dirigido de C++ Builder 6. So Paulo: rica, 2003.
______ . C++: Programao de Computadores: Guia Prtico de Orientao e
Desenvolvimento. So Paulo: rica, 2003.
MANZANO, J. A. N. G.; MENDES, S. S. V. Estudo Dirigido de Delphi 8. So Paulo:
rica, 1999.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: Lgica para Desenvolvimento de
Programao. So Paulo: rica, 2000.

Referncias Bibliogrficas

MATLAB* 7
FUNDAMENTOS
MATLAB: inteligncia e tecnologia aplicadas conquista de inovaes

esde a sua primeira verso, o MATLAB vem sendo utilizado por diversos
profissionais como ambiente de trabalho bsico para criao, anlise e
simulao de modelos matemticos aplicados s mais diversas reas,
desde automao e controle industrial, passando por gerenciamento de risco
financeiro, at pesquisas avanadas em biotecnologia e bioinformtica.

Com exemplos, exerccios prticos, tutorials e uma abordagem objetiva e didtica,


este livro apresenta os principais conceitos de utilizao dessa fantstica linguagem.
Organizado em sete captulos, aborda o ambiente interativo do MATLAB 7 na
plataforma PC/Windows XP, conceitos bsicos, principais comandos e funes da
linguagem, sintaxes tpicas, leitura e gravao de arquivos, recursos grficos e as
funes Handle Graphics que gerenciam objetos grficos. Mostra como desenvolver
Mplementao de interface com usurio utilizando as funes de caixa de dilogo
predefnidas e os recursos do GUIDE do MATLAB ,
alm da introduo ao uso do Symbolic Math Toolbox,
aplicativo para matemtica simblica.
Destinado a estudantes e profissionais da rea,
tambm pode ser utilizado como material
de apoio para cursos tcnico, superior
ou ps-graduao, treinamentos
empresariais e at em escolas
de segundo grau.

Invista em voc.

IS B N :

M ___

www.editoraerica.com.br

85-365-U U 3Z -

llll

788536 500324