Sunteți pe pagina 1din 46

LCEE

Laboratrio de Computao da Engenharia Eltrica - UFES

MANUAL ! MA"LA#
Cur$o de MA"LA#
Projeto REENGE - DEL

Elaborao% &edao' Leonardo (ereira #a$to$ &e)i$o' (ro*+ Cel$o Munaro ata' maro de ,--. E$ta apo$tila *oi elaborada dentro do pro/eto &EEN0E% EL1 cu/o ob/eti)o melhorar a$ condi2e$ de en$ino do cur$o de Engenharia Eltrica )ia $uporte computacional ade3uado+

ndice:
PARTE I:
,+ 4n*orma2e$ 4niciai$ ,+ 5+ 5+ 4niciando ,+ 5+ 7+ 8+ ;+ <+ .+ >+ -+ Linha de Comando Matri6e$ Simple$ Elemento$ da Matri6 Linha$ de Comando e 9ari:)ei$ do MA"LA# !btendo 4n*orma2e$ do E$pao de "rabalho ! Comando =elp Finali6ando e Sal)ando o E$pao de "rabalho N?mero$ e E@pre$$2e$ Aritmtica$ N?mero$ Comple@o$ e Matri6e$ 4n$talao iretrio

,A+ Formato$ de SaBda ,,+ Fun2e$ 7+ 8+ !pera2e$ com Matri6e$ !pera2e$ com 9etore$ ,+ 5+ 7+ ;+ !pera2e$ &elacionai$ !pera2e$ Lgica$ Fun2e$ Matem:tica$

Manipulao de 9etore$ e Matri6e$ ,+ 5+ 7+ 0erando 9etore$ Matri6e$ E$peciai$ Manipulao de Matri6e$

<+

4ntroduo ao$ 0r:*ico$ ,+ 5+ 7+ 8+ ;+ <+ .+ Fun2e$ Elementare$ de (lotagem Criando um 0r:*ico E$tilo$ de Linha1 Marcadore$ e Cor Adicionando Linha$ a um 0r:*ico E@i$tente ado$ 4magin:rio$ e Comple@o$ (lotando Matri6e$ Copiando 0r:*ico$

PARTE II: Informaes Avanadas


,+ 5+ ,+ 5+ 7+ 7+ ,+ 5+ 7+ 8+ ,+ 5+ 7+ ;+ ,+ 5+ 7+ <+ ,+ 5+ 7+ 8+ ;+ .+ ,+ ,+ 5+ >+ -+ ,+ 5+ 7+ 8+ ;+ An:li$e de ado$ Fun2e$ de Matri6 Fatorao "riangular Fatorao !rtogonal ecompo$io do$ Auto)alore$ (olinCmio$ e (roce$$amento de Sinai$ &epre$entao (olinomial (roce$$amento de Sinai$ Filtro de ado$ Fun2e$ de Funo 4ntegrao Numrica E3ua2e$ No-Lineare$ e Fun2e$ de !timi6ao Fun2e$ de E3ua2e$ i*erenciai$ Flu@o de Controle Loop F!& Loop D=4LE Comando$ 4F e #&EAE Ar3ui)o$-M' Script$ e Fun2e$ Ar3ui)o$ Script Ar3ui)o$ Funo 9ari:)ei$ 0lobai$ String$ de "e@to A Funo e)al Ar3ui)o$ de i$co 4mportando e E@portando ado$ 4mportando ado$ E@portando ado$ do MA"LA# ! ebugger do MA"LA# Ar3ui)o$ E%S Abrindo e Fechando Ar3ui)o$ Leitura de Ar3ui)o$ com ado$ em #in:rio E$cre)endo em Ar3ui)o$ com ado$ em #in:rio E$cre)endo Ar3ui)o$ de "e@to Formatado$ e String$ Lendo Ar3ui)o$ de "e@to Formatado$ e String$

PARTE III: Grficos Avanados


,+ ,+ ,+ 5+ 7+ 8+ 5+ ,+ 5+ 7+ 8+ ;+ <+ .+ >+ 7+ ,+ 5+ 7+ 8+ ;+ 8+ ,+ 5+ ;+ ,+ 5+ 7+ 8+ ;+ <+ 0r:*ico$ A)anado$ 0r:*ico$ 54mportando ado$ Fun2e$ E$peciai$ para 0r:*ico$ 5(olBgono$ (reenchido$ (lotando Fun2e$ Matem:tica$ 0r:*ico$ 70r:*ico$ de Linha$ Me$hgrid 0r:*ico$ de Contorno 0r:*ico$ de ($eudocore$ 0r:*ico$ de Super*Bcie$ e Me$h Matri6e$ de Core$ Super*Bcie$ (aramtrica$ 9aria2e$ de $ur* e me$h Fun2e$ 0r:*ica$ de (rop$ito 0eral (onto de 9i$ta Controlando o$ Ei@o$ com a *uno a@i$ "ornando 9i$B)el Linha$ e Super*Bcie$ E$condida$ Subgr:*ico$ Figura Mapa$ de Core$ e Controle de Core$ Mo$trando Mapa$ de Core$ Alterando o$ Mapa$ de Core$ Manu$eamento de 0r:*ico$ !b/eto$ 0r:*ico$ =andle de !b/eto$ Fun2e$ de Criao de !b/eto$ (ropriedade$ do$ !b/eto$ E$peci*icando e Alterando a$ (ropriedade$ do$ !b/eto$ Utili6ando a$ Fun2e$ $et e get >5

PARTE I
Informaes Bsicas
Esta primeira parte traz os captulos de 1 a 6, e contm as informaes necessrias para se comear a trabalhar com MAT A!" Ap#s esta parte o leitor de$e estar apto a declarar $ari$eis no prompt, se%a do tipo $etor ou matriz, realizar operaes com estas $ari$eis, utilizar o comando &elp e plotar 'rficos"

a!"t#$o %

Informaes Iniciais
E$te capBtulo po$$ui in*orma2e$ para a in$talao do MA"LA# )er$o 8+5A no $eu computador +

1.1 Instalao
A in$talao do MA"LA# no computador *eita da $eguinte *orma' 4n$ira o di$co , e chame o ar3ui)o $etup+e@e+ ! programa de in$talao o in*ormar: $obre o e$pao di$ponB)el no di$co rBgido e o e$pao nece$$:rio para a in$talao do programaF ca$o o e$pao di$ponB)el $e/a $u*iciente para a in$talao1 $er: perguntado um nome para o diretrio onde o programa $er: in$talado Go nome padro do diretrio MA"LA#H+I medida 3ue a in$talao *or $endo reali6ada1 o programa de in$talao pedir: o pr@imo di$co Gat o di$co ;H+ No *inal da in$talao1 perguntado $e de$e/a-$e in$talar alguma toolbo@+ &e$ponda no+ A me$ma re$po$ta de)e $er dada com re$peito ao$ compiladore$+ Juando a in$talao terminar1 in$ira o di$co < e copie o diretrio control para o caminho c:/matlab/toolbox/matlab/+ e$ta *orma1 a toolbo@ de controle *icar: di$ponB)el no caminho c:/matlab/toolbox/matlab/control/ E@i$te um ar3ui)o no diretrio principal 3ue de*ine o$ caminho$ 3ue o MA"LA# $egue Gem 3uai$ $ubdiretrio$ o MA"LA# procura o$ ar3ui)o$ ou *un2e$ nece$$:ria$HF e$te ar3ui)o uma e$pcie de autoexec.bat do MA"LA#+ E$te ar3ui)o o matlabrc+mF ele pode $er modi*icado em 3ual3uer editor de te@to de modo a de*inir o caminho para o diretrio da toolbo@ de controle+ !$ caminho$ $o de*inido$ na $eguinte parte do ar3ui)o matlabpathGK+++ LC'MMA"LA#Mtoolbo@MlocalN1+++ LFC'MMA"LA#Mtoolbo@MmatlabMcontrolN1+++ (linha adicionada) LFC'MMA"LA#Mtoolbo@MmatlabMdata*unN1+++ LFC'MMA"LA#Mtoolbo@MmatlabMelmatN1+++ OHF onde a linha 3ue de)e $er adicionada e$t: indicada acima+

&'s+' ! MA"LA# utili6a1 geralmente1 o #loco de Nota$ do DindoP$ para 3ue $e po$$a criar ou alterar ar3ui)o$ +m+ (or i$$o1 3uando a in$talao do MA"LA# terminar1 de)e-$e *a6er o $eguinte' - No DindoP$ 7+@ No gerenciador de ar3ui)o$1 cli3ue uma )e6 $obre 3ual3uer ar3ui)o com e@ten$o +m e1 no menu Arquivo1 e$colha Associar+ No item Arquivos com extenso colo3ue m Ge@ten$o do$ ar3ui)o$ 3ue o MA"LA# utili6aH+ No item Associar com e$colha o #loco de Nota$+ Cli3ue em OK e pronto+ - No DindoP$ -; No E@plorer1 cli3ue no menu Exibir e e$colha Opes+ E$colha em tipo$ de ar3ui)o o Bcone Novo tipo+ !nde e$ti)er Descrio do tipo e$cre)a MA"LA#F onde e$ti)er e$crito Extenso associada e$cre)a m+ Em $eguida e$colha Novo e preencha da $eguinte *orma' Aes: Abrir Aplicativo utili ado para executar a ao: c'MPindoP$Mnotepad+e@e Cli3ue em OK at 3ue toda$ a$ /anela$ $e/am *echada$+

1.2 Diretrio
! diretrio MA"LA# compo$to de ):rio$ $ubdiretrio$+ !$ doi$ 3ue po$$uem maior importQncia a nB)el de conhecimento do aluno $o o$ de$crito$ abai@o' %bin %toolbo@%matlab iretrio em 3ue $e encontra o ar3ui)o matlab+e@e1 ar3ui)o de e@ecuo do MA"LA#+ iretrio onde e$to locali6ado$ o$ $ubdiretrio$ de toolbo@e$ G%matlab1 %control1 etc+H+

Captulo 2

Iniciando
Ne$te capBtulo apre$entado o e$pao de trabalho do MA"LA#+ R mo$trado como $e lidar com matri6e$ e como utili6ar o comando =elp para obter in*orma2e$ de utili6ao da$ *un2e$+

2.1 Linha de Comando


(ara editar comando$ digitado$ erroneamente ou para chamar linha$ de comando$ anteriore$1 pode-$e *a6er u$o da$ $eta$+ (or e@emplo1 $e *oi digitado errado a *uno s(rt no comando

>> log(sqt(atan(2*(3+4))))
MA"LA# re$ponde com uma men$agem de erro do tipo

??? Undefined function or variable sqt+


Ao in)$ de $e digitar a linha de comando no)amente1 tecla-$e + ! ?ltimo comando 3ue *oi entrado mo$trado+ (ode-$e teclar para mo)er o cur$or e in$erir o r+ !$ comando$ 3ue MA"LA# e@ecutou durante uma $e$$o $o arma6enado$ at um certo limite+ (ode $er utili6ada uma chamada r:pida ao in)$ da digitao do$ comando$ pre)iamente digitado$1 atra)$ da e$peci*icao do$ primeiro$ caractere$ $eguido$ pela tecla + No e@emplo abai@o1 a$ letra$ plo $o u$ada$ para encontrar uma linha de comando 3ue inicie com o comando plot e@ecutado anteriormente

>> plo
A tabela abai@o li$ta a$ tecla$ 3ue podem $er u$ada$ para edio na linha de comando$' tr$-P tr$-N tr$-( tr$-) De$ete tr$-L tr$-R tr$-A tr$-E tr$-* tr$-D tr$-+ Chama uma linha de comando anterior+ Chama uma linha de comando po$terior+ Mo)e o cur$or um caractere S e$3uerda+ Mo)e o cur$or um caractere S direita+ Mo)e o cur$or S e$3uerda1 apagando um caractere+ Mo)e o cur$or uma pala)ra S e$3uerda+ Mo)e o cur$or uma pala)ra S direita+ Mo)e o cur$or para o comeo da linha+ Mo)e o cur$or para o *inal da linha+ Cancela a linha+ Apaga o caractere 3ue e$t: $obre o cur$or+ Apaga at o *inal da linha+

2.2 Matri es !im"les


MA"LA# trabalha e$$encialmente com um tipo de ob/eto1 uma matri6 retangular numrica Greal ou comple@aH+ Em alguma$ $itua2e$1 denomina2e$ e$pecB*ica$ $o atribuBda$ a matri6e$ , por ,1 3ue $o o$ e$calare$1 e a matri6e$ com $omente uma linha ou coluna1 3ue $o o$ )etore$+ !pera2e$ e comando$ no MA"LA# $o aplicado$ de maneira natural1 utili6ando o conceito de matri61 como $o indicado$ no papel+ (ode-$e entrar com matri6e$ no MA"LA# de di)er$a$ maneira$' Entrar com uma lista e)plcita de elementos" *erar matrizes utilizando funes e linhas de comando do MAT A!" +riar matrizes em ar(ui$os,M" +hamar matrizes de um ar(ui$o de dados e)terno"

A maneira mai$ *:cil de $e declarar matri6e$ *a6endo a e@plicitao da li$ta de elemento$ na linha de comando1 $eguindo a$ con)en2e$ abai@o' -eparar os elementos da lista de elementos atra$s de espaos ou $r'ulas" +olocar os elementos entre colchetes, . /" 0sar 123 ponto,e,$r'ula para indicar o fim de uma linha" (or e@emplo1 entrando com a linha de comando

>> A= ! 2 3" 4 # $" % & '(


re$ulta em

>> A = ! 2 3 4 # $ % & '


MA"LA# $al)a a matri6 A para 3ue po$$a $er utili6ada po$teriormente+ (ode-$e1 tambm1 entrar matri6e$ de ar3ui)o$ de e@ten$o "m+ Se um ar3ui)o com o nome de matriz"m contm a$ trT$ linha$ de te@to

A = ! 2 3 4 # $ % & ' (
ento o comando

>> )atri*
atribui S matri6 A o$ dado$ corre$pondente$+

2.# $lementos da Matri


Elemento$ de matri6 podem $er 3uai$3uer e@pre$$2e$ 3ue o MA"LA# permiteF por e@emplo

>> + =
re$ulta em

,!-3 sqrt(3) (!+2+3)*4.#(

>> + = ,!-3/// !-%32! 4-&///


Elemento$ indi)iduai$ de matri6e$ podem $er re*erenciado$ indi)idualmente com Bndice$ dentro de parTnte$e$1 G H+ Continuando o e@emplo anterior

>> +(#) = abs(+(!)) >> + = ,!-3/// !-%32! 4-&/// / !-3///


(erceba 3ue o tamanho de ) aumenta automaticamente para acomodar o no)o elemento1 e o$ elemento$ inde*inido$ $o a$$umido$ como $endo 6ero+

(ode-$e con$truir grande$ matri6e$ utili6ando matri6e$ menore$ como elemento$+ (or e@emplo1 para acre$centar uma no)a linha S matri6 A'

>> r = >> A = >> A = ! 2 3 4 # $ % & ' !/ !! !2

!/ !! !2(" A" r(

4$to re$ulta em

Matri6e$ menore$ podem $er e@traBda$ de matri6e$ grande$ utili6ando o$ doi$ ponto$ G'H+ (or e@emplo

>> A = A(!0310)"
3ue *ornece a $eguinte matri6

>> A = ! 2 3 4 # $ % & '


*a6 com 3ue retorne a$ trT$ primeira$ linha$ e toda$ a$ coluna$ da matri6 original A para a matri6 A+

2.% Linhas de Comando e &ari'eis do M()L(B


A$ linha$ de comando do MA"LA# *re3uentemente $o da *orma

$ari$el 4 e)press5o
ou $imple$mente

e)press5o
(odem $er compo$ta$ e@pre$$2e$ com operadore$ e outro$ caractere$ e$peciai$1 com *un2e$1 e com nome$ de )ari:)ei$+ A e@ecuo da e@pre$$o produ6 uma matri6+ A matri6 mo$trada na tela e a$$ume o nome da )ari:)el de*inida na linha de comando para 3ue po$$a $er utili6ada em uma outra $ituao+ Se *or omitido o nome da )ari:)el e o $inal 41 MA"LA# cria automaticamente uma )ari:)el com o nome ans+ (or e@emplo1 digitando a e@pre$$o

>> !'//.&! >> ans = 23-4#$&


Uma linha de comando normalmente termina com a tecla Enter+ Entretanto1 $e o ?ltimo caractere *or um ponto-e-)Brgula GFH1 a )ari:)el 3ue produ6ida no mo$trada na tela+ Se a e@pre$$o complicada de tal *orma 3ue no cabe em uma linha1 utili6a-$e o$ trT$ ponto$ G+++H $eguido$ pela tecla Enter para indicar 3ue a linha de comando continua na pr@ima linha+ (ode-$e *ormar nome de *un2e$ e )ari:)ei$ com uma letra $eguida por um n?mero 3ual3uer de letra$ e dBgito$+ No entanto1 MA"LA# guarda $omente o$ primeiro$ caractere$ de um nome+ MA"LA# entende de *orma di*erente letra$ mai?$cula$ e min?$cula$+ A e a no $o a me$ma )ari:)el+ !$ nome$ da$ *un2e$ de)em $er digitado$ em letra$ min?$cula$+

2.* +,tendo Informaes do $s"ao de )ra,alho


!$ e@emplo$ pre)iamente e@ecutado$ criaram )ari:)ei$ 3ue $o arma6enada$ do e$pao de trabalho do MA"LA#+ (ara li$tar a$ )ari:)ei$ arma6enada$ u$e o comando

>> 23o
(ara )eri*icar uma li$tagem mai$ completa$ $obre a$ )ari:)ei$ arma6enada$ de)e-$e utili6ar o comando 6hos1 o 3ual tra6 in*orma2e$ $obre o nome1 a dimen$o da matri6 corre$pondente1 o n?mero de elemento$ de$$a matri61 entre outro$+

2.- + Comando .el"


! comando help pro)T in*ormao para a grande parte do$ tpico$ do MA"LA#+ ! comando

>> 3elp
$em nenhum argumento mo$tra uma li$ta de diretrio$ 3ue contTm ar3ui)o$ relacionado$ com MA"LA#+ Cada linha mo$trada li$ta o nome de um diretrio $eguido por uma de$crio do conte?do do me$mo+ Algun$ diretrio$ $o a$$ociado$ com o$ comando$ b:$ico$ do MA"LA#+ !utro$ contTm toolbo@e$1 tai$ como control e si!nalF e$$e$ po$$uem *un2e$ adicionai$ do MA"LA# cobrindo :rea$ de aplica2e$ mai$ e$peciali6ada$+ (ara uma li$ta de *un2e$ relacionada$ a um determinado diretrio1 digita-$e help $eguido pelo nome do me$mo+ Aparece uma li$ta de comando$1 *un2e$ e $Bmbolo$ e$pecB*ico$ do MA"LA#+ ! comando help $eguido por e$te$ comando$ ou *un2e$ *ornece in*orma2e$ $obre como utili6:-lo$ em uma linha de comando+ Com o comando

>> 3elp topico


topico de)e $er um diretrio ou o nome de uma *uno ou comando do MA"LA#+ Se *or digitado

>> 3elp inverse


MA"LA# pro)a)elmente ir: re$ponder

inverse not found4$to ocorre por3ue in$erse no o nome de uma *uno do MA"LA#1 a meno$ 3ue tenha $ido adicionada a uma toolbo@ pe$$oal+

2./ 0inali ando e !al'ando o $s"ao de )ra,alho


(ara *inali6ar o MA"LA# digite (uit ou e)it+ "erminando uma $e$$o do MA"LA#1 )ocT apaga a$ )ari:)ei$ do e$pao de trabalho+ Ante$ de terminar1 pode-$e $al)ar a$ )ari:)ei$ digitando

>> save
E$te comando $al)a toda$ a$ )ari:)ei$ em um ar3ui)o em di$co chamado matlab"mat+ Na pr@ima )e6 3ue MA"LA# chamado1 pode-$e e@ecutar o comando load para re$taurar o e$pao de trabalho com a$ )ari:)ei$ de matlab"mat+ (odem $er utili6ado$ o$ comando$ sa$e e load em ar3ui)o$ com outro$ nome$1 ou $al)ar $omente alguma$ )ari:)ei$+ ! comando sa$e temp $al)a a$ )ari:)ei$ em um ar3ui)o de nome temp"mat+ ! comando

>> save te)p 4


$al)a $omente a )ari:)el 71 en3uanto 3ue

>> save te)p 4 5 6


$al)a a$ )ari:)ei$ 71 8 e 9+

2.1 23meros e $4"resses (ritm5ticas


MA"LA# utili6a a notao decimal con)encional1 com ponto decimal e $inal negati)o opcionai$1 para n?mero$+ (ode-$e incluir um *ator de e$cala em potTncia de de6 ou uma indicao de n?mero comple@o como $u*i@o+ Algun$ e@emplo$ de n?mero$ ):lido$ $o

,''
U V %

/-///! '-$3'%23&
adio $ubtrao multiplicao di)i$o por n?mero S direita

!-$/2!/7,2/

$-/22#2e23

2i

,3-!4!!#'i

3e#i

(odem $er con$truBda$ e@pre$$2e$ com o$ operadore$ de aritmtica u$uai$ e a$ regra$ de precedTncia'

M W

di)i$o por n?mero S e$3uerda potTncia

MA"LA# po$$ui tambm *un2e$ matem:tica$ elementare$ encontrada$ em calculadora$ cientB*ica$+ E$ta$ *un2e$ incluem abs, s(rt, lo' e sin+ 9ocT pode *acilmente adicionar mai$ *un2e$ atra)$ do$ ar3ui)o$-M+ Alguma$ *un2e$ $imple$mente retornam )alore$ e$peciai$ comumente utili6ado$1 como a *uno pi 3ue retorna o )alor da con$tante + A *uno :nf indica re$ultado in*initoF uma di)i$o por 6ero gera como re$po$ta :nf+ A )ari:)el ;a; GNot a NumberH po$$ui di*erente$ propriedade$ com relao S )ari:)el :nf+ Uma di)i$o <=< ou :nf=:nf produ6 ;a; como re$po$ta+

2.6 23meros Com"le4os e Matri es


MA"LA# permite n?mero$ comple@o$1 indicado$ pela *uno e$pecial i ou %1 em toda$ a$ opera2e$ ou *un2e$+ A$$im1 temo$'

>> z 4 ? @ ABi
Uma outra *orma

>> 6 4 rBe)p1iBtheta3
Juando *orem entrado$ n?mero$ comple@o$ como elemento$ de matri6 com o$ colchete$1 de)e $er e)itado 3ual3uer e$pao em branco+ Uma e@pre$$o como 1 @ CBi1 com e$pao$ em )olta do $inal @1 repre$enta doi$ n?mero$+ 4$to tambm ):lido para n?mero$ reai$F uma e$pao ante$ do e@ponencial1 como em 1"D? e,A1 cau$a um erro+ ! nome de uma *uno do MA"LA# tambm pode $er u$ada como o nome de uma )ari:)el+ Juando utili6ado como uma )ari:)el1 a *uno original $e torna indi$ponB)el no e$pao de trabalho at 3ue a )ari:)el $e/a apagada+

2.17 0ormatos de !a8da


MA"LA# mo$tra o re$ultado de uma linha de comando na tela1 e atribui e$te re$ultado a uma )ari:)el e$pecB*ica1 ou a ans $e a )ari:)el no dada+ 9ocT pode utili6ar o comando format para controlar o *ormato numrico mo$trado+ Se todo$ o$ elemento$ de uma matri6 *orem inteiro$ e@ato$1 a matri6 mo$trada em um *ormato $em ponto$ decimai$+ Se ao meno$ um elemento de uma matri6 no um inteiro e@ato1 ):rio$ *ormato$ de $aBda $o po$$B)ei$+ ! *ormato padro1 chamado de s"ort #ormat1 mo$tra apro@imadamente cinco dBgito$ decimai$ $igni*icati)o$+ !$ outro$ *ormato$ mo$tram mai$ dBgito$ $igni*icati)o$ ou utili6am notao decimal+ Como um e@emplo1 $uponha

>> + =

4.3 !-234#e,$(

!$ *ormato$ e a$ $aBda$ re$ultante$ para e$te )etor $o' format short 1"???? <"<<<< format short e 1"????e@<< 1"D?ACe,<6 format lon' 1"?????????????? <"<<<<<1D?AC6<<< format lon' e 1"???????????????e@<< 1"D?AC<<<<<<<<<<<e,<6 format banE 1"?? <"<< ! comando help format mo$tra mai$ algun$ tipo$ po$$B)ei$ de *ormato+

2.11 09nes
0rande parte do poder do MA"LA# : atribuBdo ao e@ten$i)o con/unto de *un2e$+ Alguma$ da$ *un2e$ $o intrBn$eca$ ao MA"LA#+ !utra$ *un2e$ e$to di$ponB)ei$ na biblioteca de ar3ui)o$-M di$tribuBdo$ com MA"LA# Ga toolbo@ do MA"LA#H+ Ainda e@i$tem outra$ 3ue $o adicionada$ por u$u:rio$ indi)iduai$ ou grupo$ de u$u:rio$1 para aplica2e$ mai$ e$peciali6ada$+ E$ta uma importante caracterB$tica do MA"LA#F todo 9s9rio "ode criar f9nes :9e at9am da mesma forma :9e 9ma f9no intr8nseca do M()L(B.

a!"t#$o ,

+"eraes com Matri es

A$ *un2e$ elementare$ de matri6e$ e a $inta@e da$ opera2e$ entre matri6e$ $o o a$$unto de$te capBtulo+ A linha de comando ! 4 AF indica 3ue a )ari:)el ! recebe a tran$po$ta da matri6 A+ (ara matri6e$ comple@a$1 teremo$ 3ue a linha de comando acima *ornece a tran$po$ta comple@a con/ugada+ A$$im1 para obtermo$ $omente a tran$po$ta de uma matri6 comple@a de)emo$ *a6er ! 4 con% 1AF3" A adio e $ubtrao de matri6e$ pode $er *eita entre matri6e$ de me$ma dimen$o ou entre um e$calar e uma matri6+ Na primeira1 cada elemento de uma matri6 $omado ou $ubtraBdo do corre$pondente na outra matri6+ Na $egunda *orma1 o e$calar adicionado ou $ubtraBdo de todo$ o$ elemento$ do outro operando+ A operao de multiplicao de*inida 3uando o n?mero de coluna$ da primeira matri6 *or igual ao n?mero de linha$ da $egunda matri6+ ependendo da$ dimen$2e$ en)ol)ida$1 o re$ultado pode $er uma matri61 um )etor ou1 at me$mo1 um e$calar+ ! produto de um e$calar por uma matri6 re$ulta em todo$ o$ elemento$ da matri6 multiplicado$ pelo e$calar+ Se A uma matri6 3uadrada no-$ingular1 ento AG! e !=A corre$ponde *ormalmente a multiplicao S e$3uerda e S direita de ! pela in)er$a de AF ou $e/a1 in$1A3B! e !Bin$1A31 ma$ o re$ultado obtido diretamente $em o c:lculo da in)er$a+ Em geral 7 4 AG! uma $oluo para AB7 4 ! 7 4 !=A uma $oluo para 7BA 4 ! A di)i$o S e$3uerda1 AG!1 de*inida $empre 3ue # ti)er o me$mo n?mero de linha$ 3ue A+ no1 de)e-$e u$ar algum mtodo de *atorao+ A di)i$o normal de um e$calar pelo outro *eita *a6endo-$e )=H+ A e@pre$$o AIp ele)a A a p-$ima potTncia e de*inida $e A uma matri6 3uadrada e p um e$calar+ MA"LA# trata e@pre$$2e$ como e)p1A3 e s(rt1A3 como opera2e$ de )etore$1 de*inida$ em cada elemento de A+ A$ *un2e$ elementare$ de matri6e$ incluem polH , polinJmio caracterstico det , determinante trace , trao da matriz e)p , e)ponencial de cada elemento da matriz lo' , lo'aritmo de cada elemento da matriz s(rt , raiz (uadrada de cada elemento da matriz MA"LA# tambm calcula *un2e$ tran$cendentai$1 tai$ como e@ponencial e logaritmo da matri6+ E$ta$ *un2e$ e$peciai$ $o de*inida$ $omente para matri6e$ 3uadrada$+ Uma *uno matem:tica tran$cendental interpretada como uma *uno da matri6 $e um m acre$centado ao nome da *uno+ A$ trT$ *un2e$ abai@o $o di$tribuBda$ /untamente com o MA"LA# e)pm , matriz e)ponencial lo'm , matriz lo'artmica s(rtm , matriz raiz (uadrada ependendo $e A *or 3uadrada ou

a!"t#$o -

+"eraes com &etores


Ne$te capBtulo $o mo$trada$ a$ opera2e$ lgica$ e relacionai$ e a$ *un2e$ matem:tica$ para )etore$+ ! termo opera2e$ )etoriai$ re*ere-$e a opera2e$ aritmtica$ de elemento-por-elemento1 ao in)$ da$ opera2e$ algbrica$ lineare$ u$uai$ de matri6e$ denotada$ pelo$ $Bmbolo$ B G = I e K+ Um ponto G+H precedendo um operador indica uma operao de elemento-por-elemento+ (ara adio e $ubtrao1 opera2e$ )etoriai$ e opera2e$ matriciai$ $o idTntica$+ ! $Bmbolo "B $igni*ica multiplicao de elemento-por-elemento+ Se A e ! po$$uem a me$ma dimen$o1 ento A"B! re$ulta em uma matri6 cu/o o$ elemento$ $o $imple$mente o$ produto$ do$ elemento$ indi)iduai$ de A e !+ A potTncia de elemento-por-elemento $imboli6ada por "I1 e *a6 com 3ue cada elemento de uma matri6 $e/a ele)ado ao elemento corre$pondente da outra matri6+

%.1 +"eraes ;elacionais


Sei$ operadore$ relacionai$ e$to di$ponB)ei$ para a comparao de dua$ matri6e$ de dimen$2e$ idTntica$+ L L4 > >4 44 M4 menor 3ue menor ou igual 3ue maior 3ue maior ou igual 3ue igual di*erente

MA"LA# compara o$ elemento$ corre$pondente$ de cada matri6+F o re$ultado uma matri6 de ,$ e A$1 com , repre$entando )erdadeiro e A repre$entando *al$o+

%.2 +"eraes L<icas


!$ operadore$ N1 O e M corre$pondem ao$ operadore$ lgico$ XeY1 XouY e XnoY+ + 4 A N ! uma matri6 cu/o o$ elemento$ $o ,$ onde amba$ a$ matri6e$ A e ! $o elemento$ no-nulo$1 e A$ onde uma da$ matri6e$ ou amba$ $o elemento$ nulo$+ + 4 A O ! uma matri6 cu/o o$ elemento$ $o ,$ onde tanto A ou ! po$$uem elemento$ no-nulo$1 e A$ onde amba$ po$$$uem elemento$ nulo$+ ! 4 MA uma matri6 cu/o o$ elemento$ $o ,$ onde a matri6 A um elemento nulo1 e A$ 3uando A um elemento no-nulo+ "oda$ a$ opera2e$ acima $o ):lida$ apena$ para 3uando A e ! po$$uem me$ma dimen$o1 ou 3uando uma da$ dua$ matri6e$ um e$calar+ A$ *un2e$ lgica$ e relacionai$ do MA"LA# $o' anH , condies l#'icas all , condies l#'icas find , encontra os ndices da matriz de $alores l#'icos e)ist , $erifica a e)istPncia de $ari$eis isnan , detecta se al'um elemento da matriz ;a; isinf , detecta se al'um elemento da matriz infinito finite , $erifica os $alores finitos da matriz isemptH , detecta matrizes $azias isstr , detecta $ari$eis strin' is'lobal , detecta $ari$eis 'lobais issparse , detecta matrizes esparsas

%.# 09nes Matemticas

A *un2e$ trigonomtrica$ incluBda$ no MA"LA# $o sin , seno cos , cosseno tan , tan'ente asin , arco,seno acos , arco,cosseno atan , arco,tan'ente atanD , arco,tan'ente para os (uatro (uadrantes sinh , seno hiperb#lico cosh , cosseno hiperb#lico tanh , tan'ente hiperb#lica asinh , arco,seno hiperb#lico acosh , arco,cosseno hiperb#lico atanh , arco,tan'ente hiperb#lico

MA"LA# inclui como *un2e$ elementare$ abs , $alor absoluto ou m#dulo de um nQmero comple)o an'le , Rn'ulo de fase s(rt , raiz (uadrada real , parte real ima' , parte ima'inria con% , comple)o con%u'ado round , arredondamento para o inteiro mais pr#)imo fi) , arredondamento para o inteiro mais pr#)imo de zero floor , arredondamento para o inteiro mais pr#)imo de , ceil , arredondamento para o inteiro mais pr#)imo de @ si'n , fun5o sinal rem , remanescente ou m#dulo 'cd , m)imo di$isor comum lcm , mnimo mQltiplo comum e)p , e)ponencial de base e lo' , lo'aritmo natural lo'1< , lo'aritmo de base 1<

a!"t#$o .

/ani!#$a0o de 1etores e /atri2es


Ne$te capBtulo $o mo$trado$ comando$ 3ue geram )etore$ e *un2e$ 3ue geram matri6e$+

*.1 =erando &etores


!$ doi$ ponto$ G'H repre$entam um caractere importante no MA"LA#+ A linha de comando

>> + = !0#
gera um )etor linha contendo o$ n?mero$ de , a ; com incremento de uma unidade+ e$ta *orma produ6ido o )etor

+ = ! 2 3 4 #
(ode-$e utili6ar incremento$ di*erente$ da unidade como em

>> 8 = /0 pi.40 pi
3ue re$ulta em um )etor linha comeando em 6ero e terminando em G7+,8,<H com incremento de %8 GA+.>;8H+ E$ta notao do doi$ ponto$ po$$ibilita a *:cil gerao de tabela$+ (ara $e obter um )etor coluna ba$ta tran$por o )etor linha gerado+ !utra$ *un2e$ para gerao de )etor incluem o lo'space1 o 3ual gera )etore$ e$paado$ logaritmicamente1 e o linspace1 3ue permite 3ue )ocT e$peci*i3ue o n?mero de ponto$ ao in)$ do incremento+

>> 9 = linspace (,pi1pi14) 9 = ,31!4!$ ,!-/4%2 !-/4%2 3-!4!$

*.2 Matri es $s"eciais


MA"LA# apre$enta alguma$ *un2e$ ?tei$ para gerar matri6e$' zeros , zeros ones , constante rand , elementos randJmicos uniformemente distribudos randn , elementos randJmicos normalmente distribudos eHe , identidade linspace , $etores espaados linearmente lo'space , $etores espaados lo'aritmicamente mesh'rid , utilizada com funes de duas $ari$eis

*.# Mani"9lao de Matri es


rotS< , rota5o fliplr , in$erte a matriz da es(uerda para a direita flipud , in$erte a matriz de cima para bai)o dia' , e)trai ou cria dia'onal tril , triRn'ulo inferior triu , triRn'ulo superior reshape , altera o formato K , transposi5o T , rearran%amento 'eral

a!"t#$o 3

Introd9o aos =rficos


E$te capBtulo mo$tra como )i$uali6ar dado$ em gr:*ico$ 5- + A$ *un2e$ elementare$ de plotagem comentada$ no inBcio $o de$crita$ no capBtulo ,<+

-.1 09nes $lementares de >lota<em


A li$ta a $eguir relaciona a$ *un2e$ 3ue produ6em gr:*ico$ $imple$+ E$ta$ *un2e$ $e di*erem apena$ na maneira como apre$entam a$ e$cala$ do$ ei@o$ do$ gr:*ico$+ Cada uma aceita a entrada na *orma de )etore$ ou matri6e$ e1 automaticamente1 de*inem a$ e$cala$ do$ ei@o$ de modo 3ue o$ dado$ de entrada *i3uem bem acomodado$+ plot , cria um 'rfico de $etores ou de colunas de matrizes lo'lo' , cria um 'rfico utilizando escalas lo'artmicas para ambos os ei)os semilo') , cria um 'rfico utilizando escala lo'artmica no ei)o ) e escala linear no ei)o H semilo'H , cria um 'rfico utilizando escala lo'artmica no ei)o H e escala linear no ei)o ) (ode-$e adicionar tBtulo1 nome ao$ ei@o$1 linha$ de grade e te@to$ a 3ual3uer gr:*ico utili6ando title , adiciona um ttulo ao 'rfico )label , define um nome para a $ari$el do ei)o ) Hlabel , define um nome para a $ari$el do ei)o H te)t , adiciona um te)to em lu'ar especfico 'te)t , adiciona um te)to ao 'rfico utilizando o mouse 'rid , ati$a as linhas de 'rade

-.2 Criando 9m =rfico


Se H um )etor1 o comando plot1H3 produ6 um gr:*ico linear do$ elemento$ de H )er$u$ o Bndice do$ elemento$ de H+ Se $o e$peci*icado$ doi$ )etore$ como argumento$1 o comando plot1),H3 produ6 um gr:*ico de H )er$u$ )+ (ode-$e1 tambm1 e$peci*icar ):rio$ grupo$ de dado$ e de*inir o e$tilo de linha e a cor 3ue $ero u$ado$ em cada grupo em uma ?nica chamada ao comando plot'

>> >> >> >> >>

t = /0pi.!//02*pi" + = sin(t)" 8! = sin(t+-2#)" 82 = sin(t+-#)" plot(+18!1:r,;1+1821:g<;)

plot produ6 um gr:*ico de H1 )er$u$ ) e HD )er$u$ ) no me$mo ei@o+ ! primeiro grupo de dado$ GH1H plotado com uma linha )ermelha $lida e o $egundo grupo GHDH plotado com uma linha trace/ada )erde+ A linha de comando abai@o adiciona um tBtulo ao gr:*ico e nome ao$ ei@o$'

>> title(;=3ase >3ift:) >> +label(;+=sin(t):) >> 8label(;8=sin(t+):)

-.# $stilos de Linha? Marcadores e Cor


Como *oi citado1 pode $er pa$$ada uma $tring de caractere$ como um argumento para a *uno plot de modo a e$peci*icar ):rio$ e$tilo$ de linha$1 $Bmbolo$ de traado e core$+ Na linha de comando1

>> plot(4151>)
- uma $tring en)ol)ida por a$pa$ e con$truBda com o$ caractere$ mo$trado$ na tabela abai@o' 4"m'o$o H m c r ' b 6 E or amarelo ma'enta ciano $ermelho $erde azul branco preto 4"m'o$o " o ) @ B , T ," ,, (or e@emplo1 plot17,8,FbBF3 plota um a$teri$co a6ul em cada ponto de dado+ Se no *or e$peci*icada uma cor1 a *uno plot automaticamente utili6a a$ core$ na ordem em 3ue $e apre$entam na tabela acima+ e$ta *orma1 para uma linha $omente1 o gr:*ico traado em amarelo+ Esti$o de Lin5a ponto crculo ) sinal positi$o asterisco s#lida pontilhada trao e ponto trace%ada

-.% (dicionando Linhas a 9m =rfico $4istente


(odem $er adicionada$ linha$ a um gr:*ico /: e@i$tente utili6ando o comando hold+ Juando hold ati)ado1 MA"LA# no remo)e a$ linha$ /: e@i$tente$F ao in)$ di$to1 adiciona no)a$ linha$ ao$ ei@o$ e@i$tente$+ (ode $er 3ue o$ ei@o$ $e/am rede*inido$ $e o$ no)o$ dado$ $e encontrarem *ora da e$cala do antigo ei@o+ (or e@emplo1 a linha de comando abai@o traa a$ trT$ cur)a$ em uma me$ma *igura'

>> >> >> >> >>

plot(+) 3old on plot(8!1:<;) plot(821:,-:) 3old off

-.* Dados Ima<inrios e Com"le4os


Juando o$ argumento$ a $erem plotado$ $o comple@o$1 a parte imagin:ria ignorada e@ceto 3uando o comando plot dado $imple$mente com um argumento comple@o+ (ara e$te ca$o e$pecial1 o comando um atalho para um gr:*ico da parte real em *uno da parte imagin:ria+ (ortanto

>> plot(6)
onde 9 um )etor ou uma matri6 comple@a1 e3ui)alente a

>> plot(real(6)1i)ag(6))

-.- >lotando Matri es


Um ar3ui)o-M 3ue po$$ui uma *uno para gerar uma matri6 de dado$ o peaEs+ !$ dado$ $o ba$eado$ em uma *uno de dua$ )ari:)ei$1 tendo trT$ ponto$ de m:@imo e mBnimo'

! ar3ui)o-M cria uma matri6 3ue po$$ui o$ )alore$ da *uno para ) e H na *ai@a de -7 a 7+ !$ )alore$ de ) )ariam ao longo da$ coluna$ e o$ de H ao longo da$ linha$+ 9ocT pode e$peci*icar o tamanho da matri6 3uadrada 3ue retornada pa$$ando como argumento S *uno peaEs+ (or e@emplo1

>> ? = pea9s(2/)
cria uma matri6 de dado$ de dimen$o 5A por 5A+ Se )ocT omitir o argumento de entrada1 o )alor utili6ado o padro1 3ue 8-+ A *uno plot pode ter um ?nico argumento 3ue pode $er uma matri6'

>> plot(5)
4$to *a6 com 3ue $e/a traada uma linha no gr:*ico para cada coluna de 8+ ! ei@o ) a$$umido como $endo o Bndice do )etor linha1 1Tm1 onde m o n?mero de linha$ de 8+ (or e@emplo1 a linha de comando

>> plot(pea9s)
produ6 um gr:*ico com 8- linha$+ A *uno plot tambm aceita doi$ )etore$ ou matri6e$ como argumento$+ (or e@emplo1

>> plot(pea9s1rot'/(pea9s:))
produ6 um gr:*ico da *uno peaEs em *uno da tran$po$ta de$locada de -AZdegF da me$ma *uno peaEs+ Em geral1 $e plot utili6ada com doi$ argumento$1 e $e 7 ou 8 po$$uem mai$ de uma linha ou coluna1 ento' - Se 8 uma matri61 e ) um )etor1 plot1),83 plota $uce$$i)amente a$ linha$ ou coluna$ de 81 utili6ando di*erente$ core$ ou tipo$ de linha para cada1 em *uno do )etor )+ A orientao de linha$ ou coluna$ $elecionada de *orma a po$$uir o me$mo n?mero de elemento$ de )+ Se 8 3uadrada1 $ua$ coluna$ 3ue $o u$ada$+ - Se 7 uma matri6 e H um )etor1 plot17,H3 plota cada linha ou coluna de 7 em *uno do )etor H+ - Se ambo$ 7 e 8 $o matri6e$ de me$ma dimen$o1 plot17,83 plota a$ coluna$ de 7 em *uno da$ coluna$ de 8+ "ambm pode $er utili6ada a *uno plot com ):rio$ pare$ de matri6e$ no argumento+

>> plot(4!15!1421521---)
Cada par 7,8 plotado1 gerando m?ltipla$ linha$+ !$ di*erente$ pare$ podem $er de dimen$2e$ di*erente$+

-./ Co"iando =rficos


!$ gr:*ico$ criado$ no MA"LA# no podem $er $al)o$ como *eito com o e$pao de trabalho+ (ode-$e1 entretanto1 copi:-lo$ como ar3ui)o bitmap G#M(H para a :rea de tran$*erTncia e depoi$ col:-lo no Dord ou no (aintbru$h1 por e@emplo+ (ara tanto1 e$colha1 na *igura1 o menu Edit e cli3ue em $op%F a *igura *oi copiada para a :rea de tran$*erTncia+ #a$ta1 agora1 entrar no Dord ou no (aintbru$h e e$colher a opo $olar do menu Editar+

PARTE II
Informaes Avanadas

A se'unda parte traz os captulos de U a 1C, e contm t#picos mais a$anados" Vara a$anar nesta parte o leitor de$e ter compreendido a primeira parte" Ws t#picos mais importantes e (ue o usurio de$e ter o controle ao final desta parte dizem respeito a representa5o polinomial, a utiliza5o das opes de flu)o de controle e a cria5o de ar(ui$os,M, se%am nas formas script ou fun5o"

a!"t#$o 6

(nlise de Dados
E$te capBtulo apre$enta um grupo de *un2e$ 3ue po$$uem a capacidade de an:li$e de dado$+ Um grupo de *un2e$ 3ue po$$ui a capacidade de an:li$e de dado$ mo$trado abai@o' ma) , $alor m)imo min , $alor mnimo mean , $alor mdio std , des$io mdio sort , ordenar sum , soma dos elementos prod , produto dos elementos cumsum , soma acumulati$a dos elementos cumprod , produto acumulati$o dos elementos hist , histo'rama

Juando o$ argumento$ *orem )etore$1 no ir: importar $e o )etor orientado por linha ou por coluna+ Se o argumento *or uma matri61 a$ *un2e$ operaro orientada$ por coluna+ e$ta *orma1 $e )ocT aplicar a *uno ma) a uma matri61 o re$ultado um )etor linha contendo o )alor m:@imo de cada coluna+

a!"t#$o 7

09nes de Matri
Ne$te capBtulo $o de$crita$ alguma$ *un2e$ e$peciai$ para aplica2e$ em matri6e$1 tai$ como *atorao e decompo$io+

1.1 0atorao )rian<9lar


! mtodo de *atorao mai$ b:$ico e@pre$$a uma matri6 3ual3uer como o produto de dua$ matri6e$ e$$encialmente triangulare$1 $endo uma dela$ a permutao de uma matri6 triangular in*erior e a outra uma matri6 triangular $uperior+ E$ta *atorao *re3uentemente chamada de 01 ou1 em alguma$ )e6e$1 de X+ A linha de comando de$crita como

>>
onde

@1U( = lu(A)
a permutao da matri6 triangular in*erior e 0 a matri6 triangular $uperior+

1.2 0atorao +rto<onal


A *atorao YX utili6ada tanto para matri6e$ 3uadrada$ como retangulare$+ E$ta *atorao e@pre$$a a matri6 como o produto de uma matri6 ortonormal e uma matri6 triangular $uperior+ A linha de comando para e$ta *atorao de$crita como

>>

A1B( = qr(A)

onde Y a matri6 ortonormal e X a matri6 triangular $uperior+

1.# Decom"osio dos (9to'alores


Se A uma matri6 n-por-n1 o$ n n?mero$ 3ue $ati$*a6em Ax = x $o o$ auto)alore$ de A+ Ele$ $o encontrado$ utili6ando

>> eig(A)
3ue retorna o$ auto)alore$ em uma )etor coluna+ Se A real e $imtrica1 o$ auto)alore$ $o reai$+ Ma$ $e A no $imtrica1 o$ auto)alore$ *re3uentemente $o n?mero$ comple@o$+ (ara $e obter o$ auto)alore$ e o$ auto)etore$ de uma )e6 ba$ta utili6ar a $eguinte linha de comando'

>>

41C( = eig(A)

onde o$ elemento$ da diagonal de Z $o o$ auto)alore$ e a$ coluna$ de 7 $o o$ auto)etore$ corre$pondente$ tai$ 3ue A7 4 7Z+

a!"t#$o 8

Po$in9mios e Processamento de 4inais


A repre$entao polinomial e o tratamento doi$ polinCmio$ $o tratado$ ne$te capBtulo +

6.1 ;e"resentao >olinomial


MA"LA# repre$enta polinCmio$ como )etore$ linha contendo o$ coe*iciente$ na ordem decre$cente de potTncia+ (or e@emplo1 a e3uao caracterB$tica da matri6

A ! 4 %

= 2 3 # $ & /

computada atra)$ de

>> p = pol8(A) p = ! ,$ ,%2 ,2%


E$ta a repre$entao do MA"LA# para o polinCmio s, : 3s; : 6;s -;6+ A$ raB6e$ de$ta e3uao $o dada$ por

>> r = roots(p) r = !2-!22' ,#-%34# ,/-3&&4


A$ raB6e$ da e3uao caracterB$tica $o o$ auto)alore$ da matri6 A+ (ode-$e obter o polinCmio original atra)$ da$ raB6e$ encontrada$ acima

>> p2 = pol8D p2 = ! ,$ ,%2 ,2%


Con$idere o$ polinCmio$ a<s= > s; ? ;s ? , e '<s= > -s; ? .s ? 3+ ! produto do$ polinCmio$ *eito atra)$ da con)oluo do$ coe*iciente$

>> a = ! 2 3(" b = >> c = conv(a1b) c = 4 !3 2& 2% !&

4 # $("

Uma li$ta completa da$ *un2e$ polinomiai$ inclui polH , polinJmio caracterstico roots , razes do polinJmio polH$al , a$alia o polinJmio com o ar'umento substituindo a $ari$el polH$alm , a$alia o polinJmio com o ar'umento sendo uma matriz con$ , multiplica5o decon$ , di$is5o

residue , e)pans5o em fraes parciais polHder , deri$ada do polinJmio polHfit , a%uste do polinJmio

6.2 >rocessamento de !inais


9etore$ $o utili6ado$ para guardar $inai$ amo$trado$ ou $e3uTncia$ em proce$$amento de $inai$+ (ara $i$tema$ de ):ria$ entrada$1 cada linha de uma matri6 corre$ponde a um ponto de amo$tra onde a$ coluna$ repre$entam o$ di)er$o$ canai$+ MA"LA# po$$ui alguma$ *un2e$ de proce$$amento de $inai$' abs , m#dulo de um nQmero comple)o an'le , Rn'ulo de fase de um nQmero comple)o con$ , con$olu5o decon$ , descon$olu5o fft , transformada de [ourier ifft , transformada de [ourier in$ersa fftshift - troca o$ 3uadrante$ da matri6 Vara ar'umentos bidimensionais, como matrizes, usam,se as funes modificadasT fftD , fft bidimensional ifftD , ifft bidimensional con$D , con$olu5o bidimensional

6.# 0iltro de Dados


A *uno

>> 8 = filter(b1 a1 +)
*iltra o$ dado$ contido$ no )etor ) com o *iltro de$crito pelo$ )etore$ a e b1 criando o$ dado$ *iltrado$ H+ A e$trutura do *iltro pode $er de$crita pela e3uao di*erencial

@<n= > '<%=A<n= ? '<;=A<n : %= ? BBB ? '<n'=A<n : n' ? %= : a<;=@<n : %= : BBB : a<na=@<n : na ? %=
ou de modo e3ui)alente1 pela tran$*ormada 9

C<2= > D<2= > '<%= ? '<;=2 : % ?BBB?'<n'=2 : <na : %= E<2= % ? a<;=2 : % ?BBB?a<na=2 : <na : %=
A *uno fre(z retorna a re$po$ta comple@a em *re3uTncia de *iltro$ digitai$+

a!"t#$o %F

09nes de 09no
Ne$te capBtulo $o tratada$ a$ *un2e$ do MA"LA# 3ue no trabalham com matri6e$ numrica$1 ma$ com *un2e$ matem:tica$+ A$ #unes de #uno $o de$crita$ como $endo' 4ntegrao numrica - E3ua2e$ no-lineare$ - Soluo de e3ua2e$ di*erenciai$ MA"LA# repre$enta *un2e$ matem:tica$ atra)$ de ar3ui)o$ de *uno-M+ (or e@emplo1 a *uno

f<A= >

% ? % - 3 ; ; <A : FB,= ? FBF%= <A : FB8= ? FBF-

pode $er encontrada no MA"LA#1 poi$ *oi criada atra)$ de um ar3ui)o-M chamado humps"m+

17.1 Inte<rao 29m5rica


A :rea $ob uma *uno #&x' pode $er determinada *a6endo-$e a integrao numrica de #&x'. (ara integrar a *uno de*inida por humps"m de A a ,

>> q = quad(;3u)ps:1/1!) q = 2'-&#&3


(ode-$e notar 3ue o primeiro argumento da *uno (uad o nome de uma *uno entre a$pa$+ 4$to por3ue (uad chamada uma *uno de *uno - uma *uno 3ue opera em outra *uno+ Uma gr:*ico da *uno obtido atra)$ de

>> + = ,!0-/!02" >> plot(+13u)ps(+))

17.2 $:9aes 2o@Lineares e 09nes de +timi ao


A$ *un2e$ de *uno para e3ua2e$ no-lineare$ e otimi6ao incluem fmin , mnimo de uma fun5o de uma $ari$el fmins , mnimo de uma fun5o de $rias $ari$eis fzero , zero de uma fun5o de uma $ari$el Continuando o e@emplo de*inido por humps"m1 a locali6ao do mBnimo na regio de A+; a , computado com fmin'

>> +) = f)in(;3u)ps:1-#1!) +) = /-$3%/


! )alor de$te mBnimo

>> 8 = 3u)ps(+)) 8 = !!-2#2&

(elo gr:*ico1 pode-$e ob$er)ar 3ue a *uno humps apre$enta doi$ 6ero$+ A locali6ao do 6ero pr@imo a ) 4 <

>> +*! = f*ero(;3u)ps:1/) +*! = ,/-!3!$


! 6ero perto de ) 4 1 e$t: em

>> +*2 = f*ero(;3u)ps:1!) +*2 = !-2''#

17.# 09nes de $:9aes Diferenciais


A$ *un2e$ do MA"LA# para $oluo de e3ua2e$ di*erenciai$ ordin:ria$ $o odeD? , mtodo de Xun'e,\utta para Da e ?a ordens odeAC , mtodo de Xun'e,\utta,[ehlber' para Aa e Ca ordens

a!"t#$o %%
)$#Ao de ontro$e !$ *lu@o$ de controle encontrado$ na maioria da$ linguagen$ de programao $o tratado$ ne$te capBtulo+ A$ linha$ de comando de *lu@o de controle permitem 3ue MA"LA# $e/a utili6ado como uma linguagem de programao completa de alto-nB)el+

11.1 Loo" [WX


MA"LA# po$$ui $ua prpria )er$o do$ loop$ [WX e ZW encontrado$ em linguagen$ de programao+ 4$to permite 3ue um grupo de linha$ de comando $e/a repetido por um n?mero *i@o e predeterminado de )e6e$+ (or e@emplo1

>> for i = !0n1 +(i) = /1 end


atribui A ao$ n primeiro$ elemento$ de )+ Se n menor do 3ue ,1 a con$truo ainda ):lida1 ma$ MA"LA# no e@ecuta a linha de comando interna+ Se ) no e@i$te ou po$$ui meno$ de n elemento$1 ento o e$pao adicional alocado automaticamente+ Uma importante ob$er)ao 3ue $e de)e $empre *inali6ar um loop *or com um end+ Se *or digitado

>> for i = !0n1 +(i) = /


o $i$tema e$pera 3ue $e/am entrada$ o re$tante da$ linha$ de comando no corpo do loop+ Nada acontece at 3ue $e/a digitado end+ A *orma geral do loop for for $ 4 e)press5o linhas de comando end (ode-$e utili6ar mai$ de um loop dentro de um loop1 ma$ no $e pode e$3uecer 3ue cada for de)e ter $eu prprio end+ (ode-$e1 tambm1 *a6er com 3ue o loop decre$a1 de acordo com a e@pre$$o de$crita+ (or e@emplo1

>> for E = n,!0,!0! A(01 E) = t-*A(01 E+!)" end

11.2 Loo" ]&: E


MA"LA# po$$ui $ua prpria )er$o do loop 6hile1 o 3ual permite 3ue uma linha de comando1 ou um grupo de linha$ de comando1 $e/a repetida um n?mero inde*inido de )e6e$1 atra)$ do controle de uma condio lgica+ A *orma geral de um loop 6hile ' >> 6hile e)press5o linhas de comando end A$ linha$ de comando $o e@ecutada$ repetidamente en3uanto o$ elemento$ da e@pre$$o no a$$umam )alor 6ero+ A matri6 da e@pre$$o 3ua$e $empre uma e@pre$$o relacional , por ,1 ento n?mero$ no-nulo$ corre$pondem a uma e@pre$$o )erdadeira+ Juando a matri6 da e@pre$$o no um e$calar1 pode-$e redu6i-la atra)$ da$ *un2e$ anH e all+

11.# Comandos :[ e !XEA\


! e@emplo abai@o ilu$tra a utili6ao do$ comando$ 6hile e if+ Ele tambm mo$tra a *uno input e o comando breaE+ E$te e@emplo trabalha com 3ual3uer n?mero inteiro po$iti)o+ Se ele par1 *a6-$e a di)i$o por 5F $e ele Bmpar1 *a6-$e a multiplicao por 7 e $oma com ,+ E$te proce$$o repetido at 3ue o re$ultado $e/a ,+ n 4 input1KEnter n, ne'ati$e (uits" K32 if n AC4 <, breaE, end 6hile n > 1 if rem1n,D3 44 < n 4 n=D else n 4 ?Bn@1 end end end

a!"t#$o %;

(r:9i'os@MA !cri"ts e 09nes


Um do$ a$$unto$ mai$ importante$1 a criao de ar3ui)o$-M de$crita ne$te capBtulo+ MA"LA# u$ualmente acionado por um comandoF 3uando $e entra com uma $imple$ linha de comando1 MA"LA# a proce$$a imediatamente e mo$tra o re$ultado+ MA"LA# tambm pode e@ecutar uma $e3uTncia de comando$ 3ue e$t: arma6enada em um ar3ui)o+ Ar3ui)o$ de di$co 3ue po$$uem linha$ de comando para MA"LA# $o chamado$ ar3ui)o$-M em )irtude de $ua e@ten$o $er do tipo "m+ (or e@emplo1 o ar3ui)o bessel"m contm linha$ de comando do MA"LA# para a)aliar *un2e$ #e$$el+ Um ar3ui)o-M con$i$te de uma $e3uTncia normal de linha$ de comando do MA"LA#1 a 3ual pode *a6er uma chamada a outro$ ar3ui)o$-M+ Um ar3ui)o-M pode chamar a $i me$mo de modo recur$i)o+ (ode-$e criar e$te$ ar3ui)o$ com um editor de te@to$ como o Notepad ou o Dord+ oi$ tipo$ de ar3ui)o$-M podem $er u$ado$' $cript$ e *un2e$+ Script$1 ou ar3ui)o$ $cript1 reali6am longa$ $e3uTncia$ de comando$+ Fun2e$1 ou ar3ui)o$ *uno1 permitem adicionar no)a$ *un2e$ S *un2e$ /: e@i$tente$+ A maior parte do poder do MA"LA# $e de)e ao *ato de $e poder criar no)a$ *un2e$ 3ue re$ol)am problema$ e$pecB*ico$+

12.1 (r:9i'os !cri"t


Juando um $cript chamado1 MA"LA# $imple$mente e@ecuta o$ comando$ encontrado$ no ar3ui)o+ A$ linha$ de comando de um ar3ui)o $cript operam globalmente com o$ dado$ 3ue e$to no e$pao de trabalho+ Script$ $o ?tei$ na reali6ao de an:li$e1 $oluo de problema$1 ou no pro/eto de longa$ $e3uTncia$ de comando1 o 3ue $e torna can$ati)o para $er *eito interati)amente+ Como um e@emplo1 $uponha um ar3ui)o chamado fibno"m 3ue po$$ui o$ comando$' f 4 .1 1/2 i 4 12 6hile f1i3 @ f1i@13 L 1<<< f1i@D3 4 f1i3 @ f1i@132 i 4 i @ 12 end plot1f3 igitando a linha de comando fibno *a6 com 3ue MA"LA# e@ecute o$ comando$1 calculando o$ ,< primeiro$ n?mero$ da $rie de Fibonacci1 e crie um gr:*ico+ Ap$ a e@ecuo do ar3ui)o e$tar completa1 a$ )ari:)ei$ * e i *icam mantida$ no e$pao de trabalho+ !$ demo$ *ornecido$ pelo MA"LA# $o bon$ e@emplo$ de como $e utili6ar $cript$ para reali6ar tare*a$ mai$ complicada$+ (ara u$:-lo$1 ba$ta digitar demo$ no prompt do MA"LA#+

12.2 (r:9i'os 09no


Um ar3ui)o-M 3ue contm a pala)ra function no Bnicio da primeira linha um ar3ui)o *uno+ Uma *uno di*ere de um $cript pelo$ argumento$ 3ue de)em $er pa$$ado$ e pela$ )ari:)ei$ 3ue $o de*inida$ e manipulada$1 3ue $o locai$ S *uno e no podem $er operada$ globalmente no e$pao de trabalho+ ! ar3ui)o mean"m um e@emplo de um ar3ui)o *uno 3ue po$$ui a$ linha$ de comando' function H 4 mean1)3 ^ MEA; A$era'e or mean $alue ^ [or $ectors, Mean1)3 returns the mean $alue ^ [or matrices, MEA;1)3 is a ro6 $ector ^ containin' the mean $alue of each column" .m,n/ 4 size1)32 if m 44 1 m 4 n2 end H 4 sum1)3=m2 A e@i$tTncia de$te ar3ui)o de*ine uma no)a *uno chamada mean+ A no)a *uno mean u$ada como 3ual3uer outra *uno do MA"LA#+ (or e@emplo1 $e z um )etor de inteiro$ de , a --1

>> * = !0''"
o )alor mdio de$te encontrado atra)$ do comando

>> )ean(*)
3ue re$ulta em

ans = #/

A$ in*orma2e$ abai@o $o para o ar3ui)o mean"m1 ma$ o princBpio ):lido para todo$ o$ ar3ui)o$ *uno' A primeira linha declara o nome da fun5o e os ar'umentos de entrada e sada" -em esta linha, o ar(ui$o um ar(ui$o script, e n5o um ar(ui$o fun5o" W smbolo ^ indica (ue o restante da linha um comentrio e de$e ser i'norado" As primeiras linhas descre$em o ar(ui$o,M e s5o mostradas (uando $ocP di'ita help mean" As $ari$eis m, n e H s5o locais a mean e n5o aparecem no espao de trabalho ap#s mean ter terminado" 1Wu, se elas e)istem, permanecem inalteradas"3 ;5o necessrio definir os inteiros de 1 a SS em uma $ari$el de nome )" ;o e)emplo, a fun5o mean foi usada com uma $ari$el z" W $etor z (ue contm os inteiros de 1 a SS foi passado ou copiado para mean onde ele se tornou uma $ari$el local de nome )" (ode-$e criar uma a/uda online para o$ ar3ui)o$-M entrando com um te@to de uma ou mai$ linha$ de coment:rio$1 comeando pela $egunda linha do ar3ui)o+ (or e@emplo1 o ar3ui)o-M an'le"m contm function p 4 an'le1h3 ^A;* E Vhase an'le" A;* E1&3 returns the phase an'les, in radians, of a matri) 6ith comple) elements" -ee also A!-, 0;]XAV" Juando $e entra com help an'le1 a$ linha$ 51 7 e 8 $o mo$trada$+ #a$eado ni$to1 a primeira linha de coment:rio$ em 3ual3uer ar3ui)o-M de)e conter o maior n?mero de in*orma2e$ po$$B)ei$+

12.# &ari'eis =lo,ais


Cada *uno do MA"LA# de*inida por um ar3ui)o-M po$$ui $ua$ prpria$ )ari:)ei$ locai$1 a$ 3uai$ no tem relao com a$ de outra$ *un2e$ e com a$ do e$pao de trabalho+ Entretanto1 $e ):ria$ *un2e$ e tambm o plano de trabalho declararem uma )ari:)el particular como global1 ento todo$ ele$ di)idem a me$ma )ari:)el+ Jual3uer atribuio a e$ta )ari:)el1 em 3ual3uer *uno1 *ica di$ponB)el a toda$ a$ outra$ *un2e$ 3ue a declaram como global+ (ara *a6er com 3ue uma )ari:)el $e/a global1 ba$ta e$cre)er 'lobal 7 8 9 onde a$ )ari:)ei$ 71 8 e 9 iro trabalhar como $endo globai$+

12.% !trin<s de )e4to


String$ de te@to $o entrada$ no MA"LA# entre a$pa$ $imple$ G K H+ (or e@emplo1

>> s = ;Fello:
re$ulta em

s = Fello
! te@to arma6enado em um )etor1 $endo um caractere por elemento+ Ne$te ca$o1

>> si*e(s) ans = ! #


indica 3ue s po$$ui cinco elemento$+ !$ caractere$ $o arma6enado$ com $eu$ )alore$ ASC441 e a *uno abs mo$tra e$te$ )alore$'

>> abs(s) ans = %2 !/! !/& !/& !!!

Utili6a-$e colchete$ para /untar )ari:)ei$ de te@to em $tring$ maiore$'

>> s =

s1 ; Gorld ;(

s = Fello Gorld

( 09no eval
A *uno e$al trabalha com )ari:)ei$ do tipo te@to e implementa uma podero$a *acilidade de macro+ e$al1t3 *a6 com 3ue o te@to contido em t $e/a a)aliado+ (or e@emplo1 t 4 K1=1i@%,13F2 for i 4 1Tn for % 4 1Tn a1i,%3 4 e$al1t32 end end cria uma matri6 a de dimen$o n por n1 onde cada elemento a)aliado pela *uno 3ue e$t: de$crita por t+

a!"t#$o %,

(r:9i'os de Disco
!$ comando$ relacionado$ com ar3ui)o$ 3ue permitem a importao e a e@portao de dado$ $o o$ a$$unto$ de$te capBtulo+ !$ comando$ do MA"LA# sa$e e load1 gra)am e e@ecutam o conte?do do e$pao de trabalho1 re$pecti)amente+ !utro$ comando$ relacionado$ com ar3ui)o$ de di$co permitem e@ecutar programa$ e@terno$ e torna po$$B)el a importao e a e@portao de dado$+ Algun$ de$$e$ comando$ $o dir1 tHpe1 delete e cd+ Ele$ atuam de *orma idTntica como atuam no MS- !S+

1#.1 Im"ortando e $4"ortando Dados


(ode-$e introdu6ir dado$ de outro$ programa$ no MA"LA# de ):ria$ maneira$+ a me$ma *orma1 tambm pode-$e e@portar dado$ para outro$ programa$+ (ode acontecer1 ainda1 do programa manipular dado$ diretamente de ar3ui)o$-MA"1 o *ormato de ar3ui)o 3ue MA"LA# utili6a+

1#.1.1 Im"ortando Dados


! melhor mtodo de importar dado$ depende da 3uantidade de dado$ e@i$tente1 $e ele$ /: e$to em uma *orma de leitura con)eniente1 3ual e$ta *orma1 etc+ Abai@o e$to li$tada$ *orma$F de)e-$e $elecionar a mai$ apropriada+ Entrar os dados como uma lista e)plcita de elementos" -e pe(uena a (uantidade de dados, di'amos menos de 1< elementos, fcil de di'it,los e)plicitamente utilizando colchetes" Este mtodo se torna incon$eniente no caso de ter (ue se di'itar uma (uantidade 'rande de dados, pois n5o poss$el edit,los caso se cometa um erro" +riar os dados atra$s de um ar(ui$o,M" ;este caso, utiliza,se um editor de te)to para criar um ar(ui$o,M script (ue entra com os dados como uma lista e)plcita de elementos" Este mtodo Qtil (uando os dados n5o est5o em um formato apropriado de leitura e tPm (ue ser di'itados de (ual(uer maneira" Este mtodo apresenta $anta'em com rela5o ao primeiro, pois permite (ue os erros (ue possam ter acontecido durante a entrada dos dados, se%am corri'idos" er dados de um ar(ui$o A-+::" Este ar(ui$o armazena dados no formato A-+::, com linhas de comprimento fi)o terminadas com E;TEX e com espaos entre os nQmeros 1ar(ui$os A-+:: podem ser editados fazendo,se uso de um editor de te)to normal3" Ws ar(ui$os podem ser lidos diretamente no MAT A! atra$s do comando load" W resultado colocado em uma $ari$el cu%o nome o nome do ar(ui$o" er dados utilizando fopen, fread e outras funes de E=- de bai)o,n$el" Este mtodo Qtil (uando se (uer acessar ar(ui$os de dados de outras aplicaes (ue possuem seus pr#prios formatos" Zesen$ol$er um pro'rama em + para traduzir seus dados para o formato do ar(ui$o,MAT e depois ler este ar(ui$o no MAT A! atra$s do comando load"

1#.1.2 $4"ortando Dados do M()L(B


Algun$ mtodo$ para e@portao de dado$ e$to de$crito$ a $eguir' Vara pe(uenas matrizes, utiliza,se o comando diarH para criar um ar(ui$o diarH, para onde as $ari$eis s5o passadas" Vode,se utilizar um editor de te)to para manipular o ar(ui$o diarH ap#s ter sido criado" A sada de diarH inclui os comandos do MAT A! utilizados durante a sess5o" -al$ar os dados no formato A-+:: utilizando o comando sa$e com a op5o ,ascii" Vor e)emplo,

[[ A \ randG817HF [[ $a)e temp+dat A -a$cii


cria um ar3ui)o ASC44 chamado temp"dat+ *ra$ar os dados em um formato especial utilizando fopen, f6rite e outras funes de E=- de bai)o,n$el" Este mtodo Qtil (uando se (uer 'ra$ar os dados em um formato de ar(ui$o re(uerido por uma aplica5o"

*ra$ar os dados em um ar(ui$o,MAT utilizando o comando sa$e, e escre$er um pro'rama em + para traduzir este ar(ui$o,MAT para o formato (ue se dese%ar"

a!"t#$o %-

+ De,9<<er do M()L(B
E$te capBtulo de$cre)e comando 3ue au@iliam na de$coberta de erro$ 3ue ocorrem durante o tempo de e@ecuo+ Ape$ar da linguagem 3ue MA"LA# utili6a $er meno$ comple@a 3ue a$ outra$ linguagen$ de programao1 ele po$$ui $ua prpria $inta@e1 e tal)e6 $e/a nece$$:rio reparar algun$ erro$ 3ue )enham a acontecer+ MA"LA# encontra erro$ de $inta@e durante a compilao+ E$te$ erro$ u$ualmente $o *:cei$ de con$ertar+ MA"LA# tambm pode encontrar erro$ durante o tempo de e@ecuoF e$te$ erro$ tendem a $er mai$ di*Bcei$ de $erem repararado$1 poi$ o e$pao de trabalho local S *uno perdido 3uando um erro *ora o retorno ao prompt do MA"LA# e ao e$pao de trabalho principal+ Se utili6a-$e o ponto-e-)Brgula para 3ue o$ re$ultado$ imediato$ da$ linha$ de comando no $e/am mo$trado$1 no $e $aber: onde ocorreu o erro+ (ara $e mo$trar o$ re$ultado$ intermedi:rio$1 pode-$e utili6ar 3ual3uer um do$ mtodo$ abai@o' Xemo$er os ponto,e,$r'ulas de forma (ue se possa $isualizar os resultados imediatos" Adicionar o comando EeHboard para (ue se possa e)aminar a situa5o do espao de trabalho no ponto onde EeHboard foi inserido" Xetirar a declara5o de function para (ue os ar(ui$os,M possam ser e)ecutados como script, tornando os resultados intermedirios dispon$eis no espao de trabalho principal" 0tilizar o debu''er do MAT A!" !$ trT$ primeiro$ mtodo$ re3uerem a edio do ar3ui)o-M+ ! ?ltimo mtodo *oi introdu6ido a partir da )er$o 8+A do MA"LA#1 e o$ $eu$ comando$ $o dbstop dbclear dbcont dbdo6n dbstatus dbstep dbtHpe dbup db(uit 4ntrodu6 uma interrupo &emo)e a interrupo Continua a e@ecuo Muda o conte@to do e$pao de trabalho local Li$ta toda$ a$ interrup2e$ E@ecuta uma ou mai$ linha$ Li$ta o$ ar3ui)o$-M com o n?mero da$ linha$ Muda o conte@to do e$pao de trabalho local Finali6a o modo debug

a!"t#$o %.
ArG#ivos EH4
A$ *un2e$ de E%S de ar3ui)o do MA"LA# 3ue permitem a leitura e a e$crita em *ormato di*erente ao gerado$ pelo me$mo $o de$crita$ ne$te capBtulo+ A$ *un2e$ de E%S GEntrada%SaBdaH de ar3ui)o do MA"LA# permitem a leitura de dado$ coletado$ em outro *ormato diretamente pelo MA"LA#1 ou a e$crita de dado$ gerado$ pelo MA"LA# no *ormato re3uerido por outro programa ou di$po$iti)o+ A$ *un2e$ lTem e gra)am ar3ui)o$ de te@to *ormatado$ e ar3ui)o$ bin:rio$ de dado$+

1*.1 (,rindo e 0echando (r:9i'os


Ante$ de $e ler ou e$cre)er em um ar3ui)o1 de)e-$e abri-lo com o comando fopen1 e$peci*icando o ar3ui)o a $er aberto e a $tring de permi$$o+ (or e@emplo1

>> fid = fopen(;pen-dat:1:r:)


abre para leitura o ar3ui)o pen"dat+ A$ $tring$ de permi$$o di$ponB)ei$ $o' NrN para leitura L6N para gra)ao LaN para atribuio Lr@N tanto para leitura como para gra)ao

!utra$ $tring$ de permi$$o podem $er obtida$ com o comando help fopen+ A *uno fopen retorna um identi*icador de ar3ui)o1 3ue um inteiro po$iti)o atribuBdo ao ar3ui)o pelo $i$tema operacional+ E$te identi*icador de ar3ui)o ba$icamente um atalho para $e re*erenciar o ar3ui)o+ A$ *un2e$ de E%S de ar3ui)o do MA"LA# utili6am o identi*icador como argumento para identi*icar o ar3ui)o aberto para leitura1 e$crita ou encerramento+ Se o ar3ui)o no pode $er aberto1 fopen retorna -, como identi*icador+ R acon$elh:)el te$tar o identi*icador cada )e6 3ue um ar3ui)o aberto+ Um $egundo )alor 3ue retornado pode *ornecer in*ormao adicional $obre erro$+ (or e@emplo1 $e MA"LA# no encontra o ar3ui)o pen"dat1 o comando

>>

fid1 )essage( = fopen(;pen-dat:1:r:)

atribui -, para fid1 e messa'e recebe uma $tring com a *orma abai@o

Ho suc3 file or director8Uma )e6 aberto1 o ar3ui)o *ica di$ponB)el para leitura e gra)ao+ Juando $e termina a leitura ou a gra)ao1 u$a-$e fclose para *echar o ar3ui)o+ (or e@emplo1

>> status = fclose(fid)


*echa o ar3ui)o a$$ociado com o identi*icador fid1 e

>> status = fclose(;all:)


*echa todo$ o$ ar3ui)o$ aberto$+ Amba$ a$ *orma$ retornam A $e e$ta operao *or reali6ada com $uce$$o1 ou -, $e algo de errado acontecer+

1*.2 Leit9ra de (r:9i'os com Dados em Binrio


A *uno fread lT ar3ui)o$ de dado$ bin:rio$+ Na $ua *orma mai$ $imple$1 ele lT um ar3ui)o inteiro em uma matri6+ (or e@emplo1

>> fid = fopen(;pen-dat:1:r:)" >> A = fread(fid)" >> status = fclose(fid)"


lT todo$ o$ dado$ do demo pennH como caractere1 e o$ e$cre)e em uma matri6 A+ controle do n?mero de )alore$ lido$ e a preci$o de cada )alor+ oi$ argumento$ opcionai$ a fread *a6em o

>> fid = fopen(;pen-dat:1:r:)" >> A = fread(fid1!//)" >> status = fclose(fid)"


lT o$ ,AA primeiro$ )alore$ de dado$ em um )etor coluna A+ Sub$tituindo o n?mero ,AA pela$ dimen$2e$ de uma matri6 K,A1,AO1 *a6 com 3ue $e/am lido$ o$ me$mo$ ,AA elemento$1 arma6enando-o$ em uma matri6 ,A@,A+ E

>> A = fread(fid1Inf)
lT at o *inal do ar3ui)o1 preenchendo a matri6 A como um )etor coluna+ !mitir o tamanho do argumento produ6 o me$mo e*eito+ ! argumento de preci$o numrica controla o n?mero de bit$ lido$ em cada )alor e a interpretao de$te$ bit$ como )alore$ caractere1 inteiro ou ponto *lutuante+ Alguma$ preci$2e$ comun$ incluem KcharF e KucharF para caracteres com sinal e sem sinal 1tipicamente _ bits3 KshortF e Klon'F para inteiros curtos e lon'os 1tipicamente 16 e ?D bits, respecti$amente3 KfloatF e KdoubleF para $alores em ponto flutuante de precis5o simples e dupla 1tipicamente ?D e 6A bits, respecti$amente3 Se fid $e re*erir a um ar3ui)o aberto contendo )alore$ em ponto *lutuante1 ento

>> A = fread(fid1!/1:float:)
lT ,A )alore$ em ponto *lutuante preenchendo um )etor coluna A+

1*.# $scre'endo em (r:9i'os com Dados em Binrio


A *uno f6rite e$cre)e o$ elemento$ de uma matri6 em um ar3ui)o com uma preci$o numrica e$pecB*ica1 retornando o n?mero de )alore$ e$crito$+ (or e@emplo1

>> f2riteid = fopen(;)agic#-bin:1:2:)" >> count = f2rite(f2riteid1)agic(#)1:integer*4:)" >> status = fclose(f2riteid)"


cria um ar3ui)o bin:rio de ,AA b]te$ contendo o$ 5; elemento$ da matri6 3uadrada ;@;1 arma6enado$ em inteiro$ de 8 b]te$+ 4$to atribui 5; S )ari:)el count+

1*.% $scre'endo (r:9i'os de )e4to 0ormatados e !trin<s


A *uno fprintf con)erte dado$ em $tring$ de caractere e o$ mo$tra na tela ou em um ar3ui)o+ ! *ormato de $aBda de*inido por um e$peci*icador de con)er$o e por um te@to+ !$ e$peci*icadore$ de con)er$o controlam a $aBda do$ elemento$ de uma matri6+ !$ te@to$ $o copiado$ diretamente+ !$ e$peci*icadore$ $o precedido$ pelo caractere ^F con)er$2e$ comun$ incluem ^e para nota5o e)ponencial ^f para nota5o de ponto fi)o ^' (ue seleciona automaticamente o menor entre ^e e ^f Campo$ opcionai$ no e$peci*icador de *ormato controlam o tamanho e a preci$o do campo+ (or e@emplo1 [[ @ \ A' +,' ,F [[ ] \ K@F e@pG@HOF [[ *id \ *openGLe@ptable+t@tN1NPNHF [[ *print*G*id1NE@ponential FunctionMnMnNHF [[ *print*G*id1N^<+5* ^,5+>*MnN1]HF [[ $tatu$ \ *clo$eG*idHF cria um ar3ui)o de te@to contendo uma pe3uena tabela para a *uno e@ponencial+ A primeira chamada a fprintf e$cre)e o tBtulo1 $eguido por doi$ comando$ EN"E&1 o 3ual de*inido por Gn+ A $egunda chamada e$cre)e a tabela propriamente dita+ A$ $tring$ de controle de *ormato de*inem o *ormato de cada linha da tabela como' , um $alor de ponto fi)o de seis caracteres com duas casas decimais , dois espaos , um $alor de ponto fi)o de doze caracteres com oito casas decimais

1*.* Lendo (r:9i'os de )e4to 0ormatados e !trin<s


A *uno de entrada de te@to do MA"LA#1 fscanf1 $imilar S *uno fprintf+ fscanf po$$ui como argumento o identi*icador para o ar3ui)o de te@to aberto1 e uma $tring de controle do *ormato contendo caractere$ e e$peci*icadore$ de con)er$o1 ne$ta ordem+ !$ e$peci*icadore$ para fscanf $o precedido$ pelo caractere ^F con)er$2e$ comun$ incluem ^s para con$erter uma strin' ^d para con$erter um nQmero decimal ^f para con$erter um $alor em ponto flutuante ! e@emplo a $eguir *a6 a leitura do ar3ui)o com o$ dado$ e@ponenciai$ e$crito anteriormente'

>> fid = fopen(;e+ptable-t+t:1:r:)"


>> title = fscanf(fid1:Js:)" >> table1count( = fscanf(fid1: Jd Jf ;)" >> status = fclose(fid)" A linha do tBtulo combina com o e$peci*icador ^s na primeira chamada S fscanf+ A $egunda chamada entra com a tabela de )alore$1 combinando alternadamente um )alor decimal e um )alor em ponto *lutuante1 como lido em cada linha da tabela1 at 3ue o *im do ar3ui)o $e/a atingido+ count retorna o n?mero de )alore$ combinado$+ Um argumento opcional controla o n?mero de elemento$ lido$ da matri6+ (or e@emplo1 $e fid *a6 re*erTncia a um ar3ui)o aberto contendo o$ $tring$ de decimal ento

>> A = fscanf(fid1:J#d:1!//)"
*a6 a leitura de ,AA )alore$ decimai$ para um )etor coluna A1 e

>> A = fscanf(fid1:J#d:1 !/1!/()"


*a6 a leitura de ,AA )alore$ decimai$ para uma matri6 A ,A@,A+

PARTE III
Grf icos Avanados
A Qltima parte traz o captulo 16 (ue contm a parte a$anada de 'rficos" -5o descritas as funes especiais para 'rficos D,Z e a introdu5o e as funes especiais para 'rficos ?,Z" Ws recursos de altera5o de cores e plota'em de mais de um 'rfico em uma mesma fi'ura tambm s5o mostrados" Vor fim, s5o e)plicados os ob%etos de n$el inferior, essenciais ao entendimento da pro'rama5o no MAT A!"

a!"t#$o %3
Grficos Avanados
! $i$tema gr:*ico do MA"LA# incorpora uma )ariedade de tcnica$ $o*i$ticada$ para apre$entao e )i$uali6ao de dado$+ E$te $i$tema con$truBdo atra)$ de um con/unto de ob/eto$ gr:*ico$1 tai$ como linha$ e $uper*Bcie$1 cu/a pre$ena pode $er controlada pelo a/u$te do$ )alore$ da$ propriedade$ de cada ob/eto+ Entretanto1 em )irtude do MA"LA# po$$ibilitar um rico a/u$te na$ *un2e$ gr:*ica$ 5- e 7- 1 na maior parte do tempo no nece$$:rio ace$$ar e$te$ ob/eto$ gr:*ico$1 o$ 3uai$ $o con$iderado$ ob/eto$ de bai@o nB)el+

1-.1 =rficos 2@D 1-.1.1 Im"ortando Dados


MA"LA# permite 3ue $e/am importado$ e plotado$ dado$ gerado$ *ora dele+ Suponhando um ar3ui)o1 6eather"dat1 contendo a mdia de temperatura e precipitao do$ me$e$1 arma6enada$ em do6e linha$ de um te@to em ASC44' ?< A"< ?1 ?"U ?_ A"1 AS ?"U CS ?"C 6_ D"S UA D"U UD ?"U 6C ?"A CC ?"A AC A"D ?A A"S ! comando1

>> load 2eat3er-dat


produ6 uma matri6 ,5 por 5+ A linha de comando

>> te)p = 2eat3er(01!)" >> precip = 2eat3er(012)"


arma6ena a$ coluna$ de temperatura e precipitao em )etore$ indi)iduai$+ (ode-$e plotar tanto a temperatura como a precipitao em *uno do mT$ corre$pondente1 em uma me$ma *igura1 *a6endo-$e u$o do$ comando$ plot e subplot'

>> >> >> >>

subplot(21!!) plot(te)p) subplot(21!12) plot(precip)

Um gr:*ico $catter tambm um modo ?til de $e apre$entar o$ dado$+ A$ linha$ de comando a $eguir produ6em um gr:*ico $catter mo$trando a relao entre a temperatura e a precipitao em cada mT$'

>> )ont3 = :Kan:" ;Leb:" ;?ar:" ;Apr:" --;?a8:" ;Kun:" ;Kul:" ;Aug:" --;>ep:" ;Mct:" ;Hov:" ;Cec:(" >> plot(te)p1precip1:o:) >> a+is( 2& &/ 2-# #-2() >> +label(;te)p:) >> 8label(;precip:) >> title(;Noston:)
A linha de comando a)is1 do e@emplo1 acima introdu6 e$pao e@tra ao gr:*ico atra)$ do a/u$te da e$cala do$ ei@o$ a )alore$ maiore$ 3ue a *ai@a de dado$+ 4$to permite 3ue o te@to *i3ue dentro do gr:*ico+

1-.1.2 09nes $s"eciais "ara =rficos 2@D

MA"LA# inclui uma )ariedade de *un2e$ e$peciai$ para gr:*ico$1 nece$$:ria$ em muita$ aplica2e$+ A li$ta a $eguir de$cre)e alguma$ dela$+ bar , cria um 'rfico do tipo barra compass , cria um 'rfico de Rn'ulos e m#dulos de nQmeros comple)os onde a representa5o dos pontos feita por setas com incio na ori'em errorbar , cria um 'rfico com barras de erro feather , cria um 'rfico de Rn'ulos e m#dulos de nQmeros comple)os onde a representa5o dos pontos feita por setas com comeo em pontos i'ualmente espaados ao lon'o do ei)o horizontal fplot , a$alia uma fun5o e plota os resultados hist , cria um histo'rama polar , cria um 'rfico em coordenadas polares dos Rn'ulos em fun5o dos raios (ui$er , cria um 'rfico do 'radiente ou de outro campo do $etor rose , cria um histo'rama de Rn'ulo stairs , cria um 'rfico similar a um 'rfico de barra, mas sem as linhas internas fill , desenha um pol'ono e o preenche com cores s#lidas ou interpoladas

1-.1.# >ol8<onos >reenchidos


A *uno fill de*ine uma :rea polinomial cu/o interior preenchido com uma cor e$peci*icada+ Se e$peci*icada uma cor para cada ponto1 MA"LA# utili6a interpolao bilinear para determinar a cor da parte interna+ (or e@emplo1

>> t = /0-/#02*pi" >> + = sin(t)" >> fill(+1t1:b:)


produ6 um polBgono preenchido pela cor a6ul+ (ara criar uma :rea preenchida com uma interpolao de core$1 utili6a-$e o comando colormap da *orma de$crita abai@o'

>> color)ap(3ot) >> fill(+1t1+)


A $ombra )aria do e$curo para o claro S medida 3ue o )alor de sin1t3 )aria de um mBnimo at um m:@imo Go 3ue corre$ponde da e$3uerda para a direita no gr:*icoH+

1-.1.% >lotando 09nes Matemticas


E@i$tem ):ria$ maneira$ di*erente$ de $e plotar o$ gr:*ico$ de *un2e$1 y = f(x'+ Uma apro@imao 3ue $imple$mente a)alia a *uno em algun$ ponto$ no inter)alo de intere$$e de$crita pela$ linha$ de comando abai@o+ No ca$o1 a *uno o$cila in*initamente

no inter)alo

>> + = (/0!.2///0!):" >> plot(+1cos(tan(pi*+)))


E$$a$ linha$ de comando$ produ6em o gr:*ico da *uno na *ai@a de A a ,+ A *uno fplot uma apro@imao mai$ elegante1 )i$to 3ue ela amo$tra a *uno com um n?mero $u*iciente de ponto$ 3ue *ornea uma repre$entao gr:*ica decente+ En3uanto 3ue a repre$entao anterior a)alia)a a *uno em inter)alo$ e$paado$ con$tantemente1 fplot concentra a $ua a)aliao $obre regi2e$ onde a ta@a de )ariao da *uno maior+ (ara a)aliar uma *uno1 de)e-$e criar um ar3ui)o *uno e pa$$ar o nome do ar3ui)o para fplot+ (or e@emplo1 o ar3ui)o *uno a $eguir de*ine uma *uno1 chamada fof)1 do e@emplo anterior' function H 4 fof)1)3 H 4 cos1tan1piB)332 (a$$a-$e o nome de$ta *uno para fplot para 3ue $e/a a)aliada e plotada+ Em )irtude da *uno o$cilar in*initamente na *ai@a de a)aliao1 o n?mero de intera2e$ u$ada$ para preencher a regio onde ocorrem a$ r:pida$ )aria2e$ redu6ido com relao ao a/u$te padro para pre)enir de um tempo de computao e@ce$$i)amente longo+

>> fplot(;fof+:1

/ !(1 2#1 2/1 !/)

Ne$te e@emplo1 fplot utili6a meno$ ponto$ para a)aliar a me$ma *uno1 ma$ agora amo$tra a *uno em inter)alo$ menore$ em uma regio onde a ta@a de )ariao a maior1 gerando uma *igura mai$ preci$a na$ pro@imidade$ de @ \ A+;+

1-.2 =rficos #@D


MA"LA# po$$ui uma )ariedade de *un2e$ para e@ibir dado$ em 7- + Alguma$ plotam linha$ em trT$ dimen$2e$1 en3uanto outra$ de$enham $uper*Bcie$ e *igura$ utili6ando Xp$eudocore$Y para repre$entar uma 3uarta dimen$o+ A li$ta a $eguir mo$tra e$$a$ *un2e$' plot? , plota linhas e pontos em ?,Z contour, contour? , cria 'rficos de contorno pcolor , desenha uma matriz retan'ular de clulas cu%as cores s5o determinadas pelos elementos da matriz ima'e , mostra uma matriz como uma ima'em atra$s do mapeamento dos elementos da matriz pelo mapa de cores ati$o mesh, meshc, meshz , cria 'rficos ?,Z em perspecti$a dos elementos da matriz, mostrados como alturas acima de um plano delimitado surf, surfc, surfl , cria 'rficos ?,Z em perspecti$a dos elementos da matriz, mostrados como alturas acima de um plano delimitado" W 'rfico formado pela 'era5o de uma superfcie colorida utilizando os pontos como $rtices de um (uadriltero"

fill? , cria um pol'ono ?,Z a o preenche com cores s#lidas ou interpoladas !b$+' Ser: utili6ado o termo X$uper*Bcie me$hY para indicar o$ gr:*ico$ criado$ atra)$ do comando me$h+ Alm da$ *un2e$ de in$ero de coment:rio$ e nota$ mo$trada$ para o$ gr:*ico$ 5- 1 MA"LA# po$$ui a$ $eguinte$ *un2e$ para o$ gr:*ico$ 7- ' zlabel , define um nome para a $ari$el do ei)o z clabel , define identificaes para os contornos em 'rficos de contorno MA"LA# permite a e$peci*icao do ponto de )i$uali6ao do gr:*ico+ Em geral1 a$ )i$ta$ $o de*inida$ por uma matri6 de tran$*ormao 8 por 8 3ue o MA"LA# utili6a para tran$*ormar um gr:*ico 7- em uma tela 5- + Entretanto1 a *uno abai@o permite a e$peci*icao do ponto de )i$o de uma maneira $impli*icada' $ie6 , a%usta o ponto de $is5o atual onde os parRmetros de entrada podem ser o azimute 1rota5o horizontal3 e a ele$a5o $ertical, ambos em 'rau, ou as coordenadas cartesianas"

1-.2.1 =rficos de Linhas


! an:logo tridimen$ional da *uno plot a *uno plot?+ Se )1 H e z $o )etore$ de me$mo tamanho1

>> plot3(+181*)
gera uma linha no e$pao tridimen$ional 3ue pa$$a pelo$ ponto$ de coordenada$ dada$ pelo$ elemento$ do$ )etore$ )1 H e z1 e depoi$ produ6 uma pro/eo bidimen$ional de$ta linha na tela++ (or e@emplo

>> t = /0pi.#/0!/*pi" >> plot3(sin(t)1cos(t)1t)"


produ6 um helicide+ Se 71 8 e 9 $o trT$ matri6e$ de me$ma dimen$o1

>> plot3(41516)
plota a$ linha$ obtida$ pela$ coluna$ de 71 8 e 9+ (ara e$peci*icar ):rio$ tipo$ de linha$1 $Bmbolo$ gr:*ico$ e core$1 u$a-$e a linha de comando plot?17,8,9,s31 onde $ uma $tring de ,1 5 ou 7 caractere$ *ormada pelo$ caractere$ li$tado$ com a *uno plot+

>> plot3(+!18!1*!1s!1+21821*21s21+31831*3-s31---)
combina o$ gr:*ico$ de*inido$ por cada grupo de elemento$ 1), H, z, s31 onde )1 H e z $o )etore$ ou matri6e$ e s $o a$ $tring$+

1-.2.2 Mesh<rid
MA"LA# de*ine uma $uper*Bcie me$h pela$ coordenada$ 6 do$ ponto$1 $ituando-a acima de uma :rea retangular no plano ),H+ e$ta *orma1 um gr:*ico *ormado pela ligao do$ ponto$ ad/acente$ com linha$ reta$+ Super*Bcie$ me$h $o ?tei$ para )i$uali6ao de matri6e$ 3ue $o muito grande$ para $erem mo$trada$ na *orma numrica1 e *un2e$ gr:*ica$ de dua$ )ari:)ei$+ ! primeiro pa$$o para 3ue $e/a mo$trada uma *uno de dua$ )ari:)ei$1 z = f(x,y)1 gerar a$ matri6e$ 7 e 8 con$i$tindo de linha$ e coluna$ repetida$1 re$pecti)amente1 $obre o domBnio da *uno+ epoi$ utili6a-$e e$ta$ matri6e$ para a)aliar e plotar a *uno+ A *uno mesh'rid tran$*orma o domBnio e$peci*icado por doi$ )etore$1 ) e H1 em matri6e$1 7 e 8+ Utili6a-$e e$ta$ matri6e$ para a)aliar *un2e$ de dua$ )ari:)ei$+ A$ linha$ de 7 $o cpia$ do )etor @ e a$ coluna$ de 8 $o cpia$ do )etor H+ (ara ilu$trar o u$o da *uno mesh'rid1 con$idere a *uno sin`=r1 tambm chamada *uno sinc+ (ara a)aliar e$ta *uno entre -> e >1 tanto em @ como em ]1 pa$$a-$e como argumento doi$ )etore$ para a *uno mesh'rid criando a$ matri6e$ nece$$:ria$'

>> >> >> >> >> >>

+ = ,&0-#0&" 8 = +" 415( = )es3grid(+18)" B = sqrt(4-O2 + 5-O2) +eps" 6 = sinD-.B" )es3(6)

A matri6 X contm a di$tQncia do$ ponto$ ao centro da matri61 o 3ual a origem+ Adiconando eps e)ita a di)i$o por 6ero1 o 3ue produ6 ;a;s no dado$+

1-.2.# =rficos de Contorno


MA"LA# po$$ui *un2e$ para gerar gr:*ico$ de contorno tanto para 5- como para 7- + A$ *un2e$ contour e contour? geram gr:*ico$ compo$to$ de linha$ obtida$ da matri6 entrada como argumento+ E@i$te a opo de $e e$peci*icar o n?mero de linha$ de contorno1 a e$cala do$ ei@o$ e o )alor do$ dado$ com o$ 3uai$ $e de$enhar: a$ linha$ de contorno+ (or e@emplo1 a linha de comando abai@o cria um gr:*ico de contorno contendo 5A linha$ de contorno e u$ando o ar3ui)o-M peaEs para gerar o$ dado$ de entrada+

>> contour(pea9s12/)
!$ cBrculo$ de contorno agem da me$ma *orma 3ue a *uno plot com relao a e$tilo$ de linha1 marcadore$ e core$+ (ara criar um gr:*ico de contorno 7- com o$ me$mo dado$1 utili6a-$e a *uno contour?'

>> contour3(pea9s12/)

1-.2.% =rficos de >se9docores


A$ linha$ de comando1

>> * = pea9s" >> pcolor (*) >> color)ap(3ot)


criam uma *igura com a matri6 peaEs de*inida por um mapa de core$+ ! nome pcolor $igni*ica pseudocolor+ (ara cada ponto1 z1i,%31 um )alor em e$cala do elemento da matri61 z1i,%31 u$ado como Bndice no mapa de core$ para determinar a cor a $er mo$trada na3uele ponto+ ! mapa de core$ uma matri6 com trT$ coluna$ 3ue e$peci*icam a inten$idade da$ trT$ componente$ de )Bdeo' )ermelho1 )erde e a6ul+ Ne$te ca$o1 o mapa de core$ e$peci*icado mapeia o menor dado como preto e o maior dado como branco+ !$ )alore$ entre e$te$ doi$ )alore$ $o mapeado$ com $ombra$ de )ermelho1 laran/a e amarelo+ 4$to ?til poi$ a e$cala contBnua de core$ do preto ao branco *a6 repre$entar o contorno da *uno peaEs+ !$ po$$B)ei$ mapa$ de core$ podem $er obtido$ atra)$ da linha de comando help color+

1-.2.* =rficos de !9"erf8cies e Mesh


A$ *un2e$ mesh e surf mo$tram $uper*Bcie$ em trT$ dimen$2e$+ Se _ uma matri6 cu/o o$ elemento$ 91i,%3 de*inem a altura da $uper*Bcie com relao a uma :rea delimitada 1i,%31 ento

>> )es3(6)
gera uma *igura da $uper*Bcie1 colorida e de*inida por linha$1 e a mo$tra em uma pro/eo em per$pecti)a+ a me$ma *orma

>> surf(6)
gera uma *igura da $uper*Bcie1 colorida e de*inida por *ace$1 e a mo$tra em uma pro/eo em per$pecti)a+ !rdinariamente1 a$ *ace$ $o 3uadril:tero$ com core$ con$tante$1 delineada$ por linha$ me$h preta$1 ma$ a *uno shadin' permite 3ue $e/am eliminada$ e$ta$ linha$+ Juando mesh193 e surf193 $o u$ado$ com $imple$ matri6e$ como argumento$1 e$te argumento e$peci*ica tanto a altura 3uanto a$ core$ da $uper*Bcie+ (ara a matri6 peaEs utili6ada anteriormente

>> )es3(pea9s)
produ6 uma $uper*Bcie me$h para a *uno peaEs

Matri es de Cores
Utili6ando dua$ matri6e$ como argumento$1 a$ linha$ de comando1

>> )es3(61P)
ou

>> surf(61P)
e$peci*ica independentemente atra)$ do $egundo argumento1 a$ core$ a $erem mo$trada$ na $uper*Bcie+ Com pcolora, o$ )alore$ de + $o po$to$ em e$cala e u$ado$ como Bndice$ no mapa de core$ $elecionado+ No ca$o1 + chamada matri6 de core$+ Juando a $uper*Bcie de dado$ contm ;a;s1 e$te$ elemento$ no $o plotado$+ 4$to cria um *alha na $uper*Bcie no lugar corre$pondente+ e*inindo algun$ elemento$ na matri6 de core$ como ;a;s1 uma maneira ?til de tornar regi2e$ da $uper*Bcie in)i$B)ei$+ (or e@emplo1 a linha de comando abai@o produ6 uma *alha na $uper*Bcie de*inida pela matri6 peaEs'

>> p = pea9s"

>> p(3/04/12/03/) = nan*p(3/04/12/03/)" >> )es3(pea9s1p)

!9"erf8cies >aram5tricas
A$ *un2e$ mesh1 surf e pcolor podem ter doi$ )etore$ ou matri6e$ adicionai$ como argumento1 com a *uno de de$cre)er a $uper*Bcie com o$ dado$ ) e H+ Se 9 uma matri6 m por n1 e ) e H $o )etore$ de dimen$2e$ n e m re$pecti)amente1 ento

>> )es3(+1 81 61 P)
de$cre)e uma $uper*Bcie me$h cu/o o$ )rtice$ po$$uem core$ +1i,%3 e e$to locali6ado$ no$ ponto$ 1)1%3, H1i3, 91i, %33 (erceba 3ue ) corre$ponde S coluna e H S linha da matri6 9++ e maneira mai$ geral1 $e 71 81 9 e + $o matri6e$ de me$ma$ dimen$2e$1 ento

>> )es3(41 51 61 P)
de$cre)e uma $uper*Bcie me$h cu/o o$ )rtice$ po$$uem core$ +1i,%3 e e$to locali6ado$ no ponto$ 171i,%3, 81i,%3, 91i,%33 A$ me$ma$ con$idera2e$ podem $er aplicada$ para a *uno surf17, 8, 9, +3, etc+

&ariaes de s#rf e mes5


MA"LA# po$$ui *un2e$ 3ue produ6em combina2e$ no$ gr:*ico$ ba$eado$ na$ *un2e$ surf e mesh+ (or e@emplo1 surfc de$enha uma $uper*Bcie com contorno bidimen$ional no plano 6 \ A+ a me$ma *orma1 e@i$tem a$ *un2e$ surfl1 meshc e meshz+

1-.# 09nes =rficas de >ro"sito =eral


Sero de$crita$ abai@o *un2e$ para controle de aparTncia do$ gr:*ico$ criado$ com a$ *un2e$ de$crita$ anteriormente+

1-.#.1 >onto de &ista


MA"LA# permite 3ue $e/a e$peci*icado o Qngulo do 3ual )i$uali6a-$e um gr:*ico 7- + A *uno $ie6 de*ine o Qngulo de )i$o em coordenada$ e$*rica$ atra)$ da e$peci*icao do a6imute Grotao hori6ontalH e da ele)ao )ertical do ponto de )i$ta1 com relao a origem do$ ei@o$+ ! a6imute um Qngulo polar no plano x(%1 $endo po$iti)o 3uando a rotao *or no $entido hor:rio com relao ao ponto de )i$ta+ A ele)ao )ertical o Qngulo acima GQngulo po$iti)oH ou abai@o GQngulo negati)oH do plano x(%+ (or e@emplo1 a$ 3uatro linha$ de comando abai@o proporcionam 3uatro maneira$ di*erente$ de $e )i$uali6ar a *uno peaEs+

>> >> >> >>

vie2(,3%-#13/) vie2(,%1&/) vie2(,'/1/) vie2(,%1,!/)

1-.#.2 Controlando os $i4os com a f9no a)is


A *uno a)is po$$ui ):ria$ op2e$ 3ue permitem 3ue $e/am per$onali6ado$ e$cala e orientao+ !rdinariamente1 MA"LA# encontra o$ )alore$ de m:@imo e mBnimo da *uno a $er plotada e e$colhe uma :rea de plotagem apropriada+ (ode-$e rede*inir o$ limite$ pelo a/u$te do$ limite$ do ei@o$'

>> a+is( +)in +)a+ 8)in 8)a+()


!u para um gr:*ico 7- '

>> a+is( +)in +)a+ 8)in 8)a+ *)in *)a+()


a)is1KautoF3 retorna a e$cala do ei@o para $eu )alor padro1 o modo autom:tico+ $ 4 a)is $al)a a e$cala do$ ei@o$ do gr:*ico 3ue e$t: ati)o no )etor $+ (ara 3ue gr:*ico$ $ub$e3uente$ po$$uam o$ me$mo$ limite$1 ba$ta entrar com o comando a)is1$3" a)is1a)is3 congela a e$cala no$ )alore$ 3ue e$to $endo u$ado$+ a)is1Ki%F3 de*ine MA"LA# no $eu modo de ei@o matri6+ A origem do $i$tema de coordenada$ $e encontra no canto $uperior e$3uerdo+

! ei@o i )ertical e numerado de cima para bai@o+ o ei@o % hori6ontal e numerado da e$3uerda para a direita+ a)is1K)HF3 de*ine MA"LA# com o$ ei@o$ carte$iano$+ A origem do $i$tema de coordenada$ $e encontra no canto in*erior e$3uerdo+ ! ei@o ) hori6ontal e numerado da e$3uerda para a direita+ ! ei@o H )ertical e numerado de bai@o para cima+ a)is1KonF3 e a)is1KoffF3 *a6em com 3ue o nome do ei@o e o$ marcadore$ apaream ou no1 re$pecti)amente1 /unto com o gr:*ico+

1-.#.# )ornando &is8'el Linhas e !9"erf8cies $scondidas


! comando hidden permite 3ue $e en@ergue atra)$ de uma $uper*Bcie de modo a $e poder )i$uali6ar po$$B)ei$ *igura$ 3ue e$te/am atr:$ de$ta $uper*Bcie+ E$te comando $e *a6 ?til 3uando e$to $endo plotada$ ):ria$ *igura$ em um ?nico gr:*ico+ (or e@emplo1 a$ linha$ de comando a $eguir *a6em com 3ue o$ dado$ gerado$ por pcolor po$$am $er )i$uali6ado$ atra)$ do gr:*ico de peaEs+

>> >> >> >>

)es3(pea9s(2/)+%) 3old pcolor(pea9s(2/)) 3idden off

1-.#.% !9,<rficos
(odem $er mo$trado$ ):rio$ gr:*ico$ em uma me$ma /anela ou imprimi-lo$ em uma me$ma *olha de papel com a *uno subplot+ subplot1m,n,p3 di)ide a /anela em uma matri6 m por n de $ubregi2e$ e $eleciona a p-$ima $ubregio para o gr:*ico 3ue e$t: $endo plotado no momento+ !$ gr:*ico$ $o numerado$ comeando pela primeira linha na parte $uperior da /anelaF em $eguida1 a $egunda linha1 e a$$im $egue+ (or e@emplo1

>> t = /0pi.!/02*pi" >> 41516( = c8l8nder(4*cos(t))" >> subplot(2121!) >> )es3(4) >> subplot(21212) >> )es3(5) >> subpoot(21212) >>)es3(5) >> subplot(21213) >> )es3(6) >> subplot(21214) >> )es3(41516)
plota dado$ em 3uatro di*erente$ $ubregi2e$ na /anela de gr:*ico$+

1-.#.* 0i<9ra
Chamando a *uno fi'ure $em argumento$ *a6 com 3ue $e/a aberto uma no)a /anela gr:*ica+ fi'ure1;3 *a6 com 3ue a ;-$ima *igura $e torne a *igura atualF o re$ultado do$ comando$ gr:*ico$ $ub$e3uente$ $o mo$trado$ ne$ta /anela+ Se a *igura ; no e@i$te1 MA"LA# cria uma u$ando o pr@imo n?mero di$ponB)el Gno nece$$ariamente ;H+ A *uno 'input permite 3ue $e/am utili6ado$ o mou$e ou a$ tecla$ de $eta para $elecionar ponto$ no gr:*ico+ 4$to *ornece a$ coordenada$ da po$io do ponteiro+

1-.% Ma"as de Cores e Controle de Cores


MA"LA# de*ine o mapa de core$ como $endo uma matri6 de trT$ coluna$+ Cada linha da matri6 de*ine uma cor particular atra)$ de trT$ )alore$ dado$ na e$cala de A a ,+ E$te$ )alore$ e$peci*icam a inten$idade da$ componente$ de )Bdeo a6ul1 )erde e )ermelho+ Alguma$ core$ e$to li$tada$ na tabela abai@o' 1erme$5o 1erde A2#$ or

A , , A A , , A +; +;

A , A , A , A , +; A

A , A A , A , , +; A

preto branco )ermelho )erde a6ul amarelo magenta ciano cin6a )ermelho e$curo

!$ mapa$ de core$ podem $er *ornecido$ por tabela$1 ou gerado$ em opera2e$ de matri6e$+ ! diretrio color do toolbo@ do MA"LA# po$$ui ):ria$ *un2e$ 3ue geram mapa$ ?tei$1 incluindo hs$1 hot1 cool1 pinE1 copper e fla'+ Cada *uno po$$ui um parQmetro opcional1 m1 o 3ual e$peci*ica o n?mero de linha$ no mapa re$ultante+ (or e@emplo

>> 3ot())
uma matri6 m por 71 cu/a a$ linha$ e$peci*icam a inten$idade da$ core$ padr2e$ de um mapa 3ue )aria de preto1 pa$$ando por $ombra$ de )ermelho1 laran/a e amarelo1 at o branco+ Se o tamanho do mapa de core$ no e$peci*icado1 MA"LA# utili6a m \ <8 como )alor padro+ 4$to permite trT$ ou 3uatro *igura$1 onde cada uma po$$ui $ua tabela de 5;< core$+ A linha de comando1

>> color)ap(?)
*a6 com 3ue a matri6 de mapa de core$ M $e/a u$ada pela *igura ati)a+ (or e@emplo1

>> color)ap(3ot)
torna ati)o o mapa de core$ hot de tamanho <8+ e$de 3ue a$ *un2e$ mesh1 surf1 pcolor e ima'e utili6am mapa$ de core$1 toda$ a$ outra$ *un2e$ 3ue $o deri)ada$ de$ta$ 3uatro tambm o *a6em+ A$ *un2e$ plot1 plot?1 contour e contour? no *a6em u$o do$ mapa$ de core$+

1-.%.1 Mostrando Ma"as de Cores


A$ *un2e$ pcolor $o ?tei$ para mo$trar mapa$ de core$+ (or e@emplo1 para )i$uali6ar um mapa de core$ em ton$ de cin6a tendo oito entrada$1 utili6a-$e a$ $eguinte$ linha$ de comando'

>> color)ap(gra8(&)) >> pcolor( !0'"!0'(:)

1-.%.2 (lterando os Ma"as de Cores


! *ato de o$ mapa$ de core$ $erem matri6e$1 permite 3ue $e/am manipulado$ como 3ual3uer outra matri6+ A *uno bri'hten utili6a e$ta )antagem para a/u$tar um dado mapa de core$ de *orma 3ue a inten$idade da$ core$ e$cura$ aumente ou diminua+ (ode-$e combinar mapa$ de core$ aritmeticamente1 embora o$ re$ultado$ $e/am ine$perado$ em alguma$ )e6e$+

1-.* Man9seamento de =rficos


A$ caracterB$tica$ gr:*ica$ apre$entada$ at a3ui *a6em parte da inter*ace de alto-nB)el do $i$tema gr:*ico do MA"LA#+ Entretanto1 e$te $i$tema tambm *ornece um a/u$te da$ *un2e$ de bai@o-nB)el 3ue permitem 3ue $e/am criada$ e manipulada$ linha$1 $uper*Bcie$ e outro$ ob/eto$ gr:*ico$ 3ue MA"LA# utili6a para produ6ir gr:*ico$ $o*i$ticado$+ E$te $i$tema denominado )andle *rap"ics+

1-.*.1 +,Betos =rficos


MA"LA# de*ine o$ ob/eto$ gr:*ico$ como $endo o$ de$enho$ mai$ primiti)o$ de $eu $i$tema gr:*ico1 e o$ organi6a em uma

hierar3uia e$truturada em :r)ore+ E$te ob/eto$ incluem a tela rai6 Groot $creenH1 *igura$ G*igure$H1 ei@o$ Ga@e$H1 linha$ Gline$H1 patche$ Gpatche$H1 $uper*Bcie$ G$ur*ace$H1 imagen$ Gimage$H1 te@to Gte@tH1 e inter*ace de controle GuicontrolH e menu$ GuimenuH para o u$u:rio+ W ob%eto root a raiz da hierar(uia" Ele corresponde a tela do computador" E)iste somente um ob%eto raiz, sendo todos os outros ob%etos seus descendentes" Wb%etos figure correspondem bs %anelas indi$iduais na tela raiz" Vode e)istir (ual(uer nQmero de ob%etos fi'ura, onde cada (ual descendente do ob%eto raiz" Ws demais ob%etos 'rficos s5o descendentes das %anelas de fi'ura" Todos as funes de cria5o de ob%etos e todas as funes de alto,n$el criam uma fi'ura se ela n5o e)iste" Vode,se tambm criar uma fi'ura utilizando,se a fun5o fi'ure" Wb%etos axes definem uma re'i5o na %anela de fi'ura e orienta os seus descendentes nesta re'i5o" Ei)os s5o descendentes de fi'uras e s5o superiores a linhas, superfcies, te)to, ima'ens e patches" Todos as funes de cria5o de ob%etos e todas as funes de alto,n$el criam ob%etos ei)o se eles n5o e)istem" Vode,se criar ei)os diretamente utilizando,se a fun5o a)es" Wb%etos line s5o usados para criar a maioria dos 'rficos D,Z e al'uns ?,Z" Eles s5o descendentes dos ei)os e suas posies s5o definidas pelo sistema de coordenadas estabelecido pelo seus superiores 1ei)os3" Wb%etos linha s5o criados por plot, plot?, contour e contour?" Wb%etos patch s5o definidos pelos pol'onos preenchidos" Eles s5o descendentes dos ei)os e suas posies s5o definidas pelo sistema de coordenadas estabelecido pelo seus superiores 1ei)os3" Este ob%etos podem ser preenchidos com cores s#lidas ou interpoladas" fill e fill? cria ob%etos patch" Wb%etos surface s5o representaes ?,Z dos dados de uma matriz" Eles s5o compostos de (uadrilteros cu%o os $rtices s5o especificados pelos dados definidos" -uperfcies podem ser preenchidas com cores s#lidas ou interpoladas ou somente com uma rede de linhas li'ando os pontos" Eles s5o descendentes dos ei)os e suas posies s5o definidas pelo sistema de coordenadas estabelecido pelo seus superiores 1ei)os3" pcolor e o 'rupo de funes de mesh e surf criam os ob%etos superfcie" Wb%etos image dado pelo resultado do mapeamento dos elementos de uma matriz com o mapa de cores se encontra ati$o" :ma'ens, 'eralmente, possuem seu pr#prio mapa de cores (ue definem somente as cores usadas na(uela ima'em" :ma'ens s5o D,Z e, portanto, n5o podem ser $istas por nenhum Rn'ulo diferente do padr5o" Eles s5o descendentes dos ei)os e suas posies s5o definidas pelo sistema de coordenadas estabelecido pelo seus superiores 1ei)os3" Wb%etos ima'em s5o criados atra$s da fun5o ima'e" Wb%etos text s5o as strin's de caracteres" Eles s5o descendentes dos ei)os e suas posies s5o definidas pelo sistema de coordenadas estabelecido pelo seus superiores 1ei)os3" Wb%etos uicontrol s5o interfaces de controle (ue permitem ao usurio e)ecutar funes (uando selecionado um ob%eto com o mouse" Eles s5o descendentes das fi'uras e, portanto, s5o independentes dos ei)os" Wb%etos uimenu s5o interfaces de menu (ue permitem o usurio criar menus na parte superior da %anela de fi'ura" Eles s5o descendentes das fi'uras e, portanto, independentes dos ei)os"

.andle de +,Betos
Cada ob/eto gr:*ico indi)idual po$$ui um ?nico identi*icador Gchamado handleH 3ue atribuBdo ao ob/eto 3uando ele criado+ Algun$ gr:*ico$ tai$ como contour plot1 $o compo$to$ de m?ltiplo$ ob/eto$1 cada 3ual com $eu prprio handle+ ! handle do ob/eto rai6 $empre 6ero en3uanto 3ue o de uma *igura um inteiro+ ! handle de outro$ ob/eto$ $o n?mero$ decimai$ 3ue contm in*orma2e$ utili6ada$ pelo MA"LA#+ MA"LA# de*ine a$ $eguinte$ *un2e$ para $impli*icar o ace$$o ao$ handle$ do$ ob/eto$' 'cf , informa o handle da fi'ura ati$a 'ca , informa o handle do sistema de ei)os ati$o (ode-$e utili6ar e$ta$ *un2e$ como argumento$ de entrada de outra$ *un2e$ 3ue re3ueiram o$ handle$ de gr:*ico$ e ei@o$+ (ode-$e1 tambm1 remo)er 3ual3uer ob/eto utili6ando a *uno delete1 de$cre)endo como argumento o handle do ob/eto+ (or e@emplo1 o$ ei@o$ atuai$ podem $er apagado$ atra)$ da linha de comando'

>> delete(gca)
"oda$ a$ *un2e$ do MA"LA# 3ue criam ob/eto$1 criam handle$ para e$te$ ob/eto$+ 4$to inclui *un2e$ de alto-nB)el1 tai$ como surfc1 a 3ual cria tanto ob/eto linha como ob/eto $uper*Bcie+

09nes de Criao de +,Betos

"odo$ o$ ob/eto$ $o criado$ por *un2e$ de me$mo nome Ga *uno te)t cria um ob/eto te@to1 a *uno fi'ure cria um ob/eto *igura1 etc+H+ A$ *un2e$ gr:*ica$ de alto-nB)el do MA"LA# chamam a *uno de bai@o-nB)el apropriada para de$enhar $eu$ re$pecti)o$ gr:*ico$+ Muita$ *un2e$ de alto-nB)el a/u$tam a$ propriedade$ do ob/eto com a *inalidade de produ6irem um re$ultado particular+ A$ *un2e$ de bai@o-nB)el $imple$mente criam um do$ no)e ob/eto$ gr:*ico$ de*inido$ pelo MA"LA# Gno $e pode criar um no)o ob/eto rai6H e o$ coloca no ob/eto-me apropriado+ (or e@emplo1 chamando a *uno line1

>> line
MA"LA# de$enha a linha no ei@o 3ue e$t: ati)o u$ando o$ )alore$ de dado padro+ Se no hou)er ei@o1 MA"LA# cria um+ Se no hou)er uma /anela de *igura onde po$$am $er criado$ o$ ei@o$1 MA"LA# tambm cria uma /anela+ Se chamada a *uno line pela $egunda )e61 uma linha de$enhada no$ ei@o$ e@i$tente$ Gdi*erentemente com relao a *uno plot1 por e@emplo1 a 3ual $ub$titui o$ ei@o$ em cada chamadaH+ E$ta caracterB$tica ?til 3uando $e 3uer adicionar um ob/eto a uma *igura e@i$tente+ (ode-$e obter o me$mo re$ultado utili6ando o comando hold+

1-.*.2 >ro"riedades dos +,Betos


"odo$ o$ ob/eto$ po$$uem propriedade$ 3ue de*inem como ele$ $o mo$trado$+ E$ta$ propriedade$ incluem in*orma2e$ gerai$ tai$ como o tipo do ob/eto1 $eu$ de$cendente$ GchildrenH e $uperiore$ GparentH1 o 3ue e$t: ou no )i$B)el1 bem como in*orma2e$ ?nica$ de um determinado ob/eto tai$ como o$ dado$ utili6ado$ para $e determinar um ob/eto $uper*Bcie+ Juando $e cria um ob/eto1 ele iniciali6ado com o$ )alore$ padr2e$F de$te$1 algun$ podem $er alterado$ Goutro$ $o de*inido$ pelo MA"LA# como $endo $omente para leituraH+

$s"ecificando e (lterando as >ro"riedades dos +,Betos


MA"LA# po$$ui doi$ modo$ de a/u$te do$ )alore$ da$ propriedade$+ (ode-$e e$peci*icar a$ propriedade$ do ob/eto 3uando $e chama a *uno de criao do ob/eto1 ou depoi$ 3ue o ob/eto *oi criado *a6endo u$o da *uno set+ (or e@emplo1 a linha de comando1

>> fig3 = figure(;Polor:1:23ite:) >> a+3 = a+es(;Qie2:1 3%-#3/(1:4Polor:1:9:1:5Polor:1:9:1:6Polor:1:9:) >> surf3 = surface(pea9s11:LacePolor:1:none:1:@ine>t8le:1:-:)
cria trT$ ob/eto$ e atribui )alore$ S$ propriedade$ onde o$ )alore$ padr2e$ no $o de$e/ado$+ (ara o ca$o acima1 a /anela de *igura criada po$$ui *undo branco e a$ linha$ do$ ei@o$ $o de*inida$ como $endo preta$ GL`NH+ ! Qngulo de )i$o de*inido como tendo um a6imute de -7.+;ZdegF e uma ele)ao de 7AZdegF+ !$ dado$ para 3ue a $uper*Bcie $e/a gerada $o *ornecido$ pela *uno peaEs1 e e$ta $uper*Bcie de*inida por ponto$1 no po$$uindo nenhuma cor dentro do$ 3uadril:tero$ *ormado$ por e$te$ ponto$+

Ctili ando as 09nes set e Iet


Uma outra *orma de $e e$peci*icar a$ propriedade$ do$ ob/eto$ re*erenciando e$te ob/eto depoi$ de $ua criao+ (ode-$e *a6er i$to utili6ando o handle 3ue retornando pela *uno de criao+ A *uno set permite 3ue $e/a a/u$tada 3ual3uer propriedade do ob/eto pela e$peci*icao do handle do me$mo e pelo par propriedade%)alor+ (or e@emplo1 o e@emplo anterior de*ine uma $uper*Bcie e $al)a $eu handle em surfh+ (ode-$e alterar a propriedade do ob/eto re*erente ao e$tilo de linha GLineSt]leH1 de uma linha pontilhado para uma linha $lida1 atra)$ da linha de comando'

>> set(surf31:@ine>t8le:1:,;)
(ara $e ter uma li$ta da$ propriedade$ 3ue podem $er alterada$ de um ob/eto particular1 chama-$e a *uno set com o handle do ob/eto'

>> set(surf3)
(ara $e *a6er a alterao do )alor de uma propriedade1 utili6a-$e a *uno 'et+ Chamando-$e a *uno 'et com o handle do ob/eto1 obtTm-$e a li$ta de toda$ a$ propriedade$ para a3uele ob/eto com o )alore$ atuai$'

>> get(surf3)

S-ar putea să vă placă și