Вы находитесь на странице: 1из 43

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+

4ndice' PARTE I: ,
5n*orma2e$ 5niciai$

,+ 5n$talao 6+ iretrio 7+ 5niciando 8+ Linha de Comando 9+ Matri:e$ Simple$ ;+ Elemento$ da Matri: .+ Linha$ de Comando e <ari=)ei$ do MA"LA# >+ !btendo 5n*orma2e$ do E$pao de "rabalho -+ ! Comando ?elp ,@+ Finali:ando e Sal)ando o E$pao de "rabalho ,,+ NAmero$ e EBpre$$2e$ Aritmtica$ ,6+ NAmero$ CompleBo$ e Matri:e$ ,7+ Formato$ de SaCda ,8+ Fun2e$ 6 7
!pera2e$ com Matri:e$ !pera2e$ com <etore$

,+ 6+ 7+ 8

!pera2e$ &elacionai$ !pera2e$ Lgica$ Fun2e$ Matem=tica$

Manipulao de <etore$ e Matri:e$

,+ 0erando <etore$ 6+ Matri:e$ E$peciai$ 7+ Manipulao de Matri:e$ 8+ 5ntroduo ao$ 0r=*ico$ 9+ Fun2e$ Elementare$ de (lotagem ;+ Criando um 0r=*ico .+ E$tilo$ de Linha1 Marcadore$ e Cor >+ Adicionando Linha$ a um 0r=*ico EBi$tente -+ ado$ 5magin=rio$ e CompleBo$ ,@+ (lotando Matri:e$ ,,+ Copiando 0r=*ico$ PARTE II: Informaes Avanadas ,+
An=li$e de ado$

6+ ,+ 6+ 7+ 7+ ,+ 6+ 7+ 8+ ,+ 6+ 7+ 9+ ,+ 6+ 7+ ;+ ,+ 6+ 7+ 8+ 9+ .+ ,+ ,+ 6+ >+ -+ ,+ 6+ 7+ 8+ 9+

Fun2e$ de Matri: Fatorao "riangular Fatorao !rtogonal ecompo$io do$ Auto)alore$ (olinDmio$ e (roce$$amento de Sinai$ &epre$entao (olinomial (roce$$amento de Sinai$ Filtro de ado$ Fun2e$ de Funo 5ntegrao Numrica E3ua2e$ No-Lineare$ e Fun2e$ de !timi:ao Fun2e$ de E3ua2e$ i*erenciai$ FluBo de Controle Loop F!& Loop E?5LE Comando$ 5F e #&EAF Ar3ui)o$-M' Script$ e Fun2e$ Ar3ui)o$ Script Ar3ui)o$ Funo <ari=)ei$ 0lobai$ String$ de "eBto A Funo e)al Ar3ui)o$ de i$co 5mportando e EBportando ado$ 5mportando ado$ EBportando 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 "eBto Formatado$ e String$ Lendo Ar3ui)o$ de "eBto Formatado$ e String$

PARTE III: Grficos Avanados ,+ ,+ ,+


0r=*ico$ A)anado$ 0r=*ico$ 65mportando ado$

6+ 7+ 8+ 6+ ,+ 6+ 7+ 8+ 9+ ;+ .+ >+ 7+ ,+ 6+ 7+ 8+ 9+ 8+ ,+ 6+ 9+ ,+ 6+ 7+ 8+ 9+ ;+

Fun2e$ E$peciai$ para 0r=*ico$ 6(olCgono$ (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*Ccie$ e Me$h Matri:e$ de Core$ Super*Ccie$ (aramtrica$ <aria2e$ de $ur* e me$h Fun2e$ 0r=*ica$ de (rop$ito 0eral (onto de <i$ta Controlando o$ EiBo$ com a *uno aBi$ "ornando <i$C)el Linha$ e Super*Ccie$ 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$ Utili:ando a$ Fun2e$ $et e get

(A&"E 5
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"

Ca !t"#o $

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

,+, Instalao
A in$talao do MA"LA# no computador *eita da $eguinte *orma' 5n$ira o di$co , e chame o ar3ui)o $etup+eBe+ ! programa de in$talao o in*ormar= $obre o e$pao di$ponC)el no di$co rCgido e o e$pao nece$$=rio para a in$talao do programaG ca$o o e$pao di$ponC)el $e/a $u*iciente para a in$talao1 $er= perguntado um nome para o diretrio onde o programa $er= in$talado Ho nome padro do diretrio MA"LA#I+J medida 3ue a in$talao *or $endo reali:ada1 o programa de in$talao pedir= o prBimo di$co Hat o di$co 9I+ No *inal da in$talao1 perguntado $e de$e/a-$e in$talar alguma toolboB+ &e$ponda no+ A me$ma re$po$ta de)e $er dada com re$peito ao$ compiladore$+ Kuando 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 toolboB de controle *icar= di$ponC)el no caminho c:/matlab/toolbox/matlab/control/ EBi$te um ar3ui)o no diretrio principal 3ue de*ine o$ caminho$ 3ue o MA"LA# $egue Hem 3uai$ $ubdiretrio$ o MA"LA# procura o$ ar3ui)o$ ou *un2e$ nece$$=ria$IG e$te ar3ui)o uma e$pcie de autoexec.bat do MA"LA#+ E$te ar3ui)o o matlabrc+mG ele pode $er modi*icado em 3ual3uer editor de teBto de modo a de*inir o caminho para o diretrio da toolboB de controle+ !$ caminho$ $o de*inido$ na $eguinte parte do ar3ui)o matlabpathHL+++ MC'NMA"LA#NtoolboBNlocalO1+++ MGC'NMA"LA#NtoolboBNmatlabNcontrolO1+++ (linha adicionada) MGC'NMA"LA#NtoolboBNmatlabNdata*unO1+++ MGC'NMA"LA#NtoolboBNmatlabNelmatO1+++ PIG onde a linha 3ue de)e $er adicionada e$t= indicada acima+

%&s+' ! MA"LA# utili:a1 geralmente1 o #loco de Nota$ do EindoQ$ 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 *a:er o $eguinte' No EindoQ$ 7+B No gerenciador de ar3ui)o$1 cli3ue uma )e: $obre 3ual3uer ar3ui)o com eBten$o +m e1 no menu Arquivo1 e$colha Associar+ No item Arquivos com extenso colo3ue m HeBten$o do$ ar3ui)o$ 3ue o MA"LA# utili:aI+ No item Associar com e$colha o #loco de Nota$+ Cli3ue em OK e pronto+ No EindoQ$ -9 No EBplorer1 cli3ue no menu Exibir e e$colha Opes+ E$colha em tipo$ de ar3ui)o o Ccone Novo tipo+ !nde e$ti)er Descrio do tipo e$cre)a MA"LA#G 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'NQindoQ$Nnotepad+eBe Cli3ue em OK at 3ue toda$ a$ /anela$ $e/am *echada$+

,+6 Diretrio
! diretrio MA"LA# compo$to de )=rio$ $ubdiretrio$+ !$ doi$ 3ue po$$uem maior importRncia a nC)el de conhecimento do aluno $o o$ de$crito$ abaiBo' %bin %toolboB%matlab iretrio em 3ue $e encontra o ar3ui)o matlab+eBe1 ar3ui)o de eBecuo do MA"LA#+ iretrio onde e$to locali:ado$ o$ $ubdiretrio$ de toolboBe$ H%matlab1 %control1 etc+I+

Captulo 2

Iniciando
Ne$te capCtulo apre$entado o e$pao de trabalho do MA"LA#+ S mo$trado como $e lidar com matri:e$ e como utili:ar o comando ?elp para obter in*orma2e$ de utili:ao da$ *un2e$+

2.1 Linha de Comando


(ara editar comando$ digitado$ erroneamente ou para chamar linha$ de comando$ anteriore$1 pode-$e *a:er u$o da$ $eta$+ (or eBemplo1 $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 + ! Altimo comando 3ue *oi entrado mo$trado+ (ode-$e teclar para mo)er o cur$or e in$erir o r+ !$ comando$ 3ue MA"LA# eBecutou durante uma $e$$o $o arma:enado$ at um certo limite+ (ode $er utili:ada 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 eBemplo abaiBo1 a$ letra$ plo $o u$ada$ para encontrar uma linha de comando 3ue inicie com o comando plot eBecutado anteriormente

>> plo
A tabela abaiBo li$ta a$ tecla$ 3ue podem $er u$ada$ para edio na linha de comando$' Ctr#-P Ctr#-N Ctr#-' Ctr#-( De#ete Ctr#-L Ctr#-R Ctr#-A Ctr#-E Ctr#-) Ctr#-D Ctr#-* Chama uma linha de comando anterior+ Chama uma linha de comando po$terior+ Mo)e o cur$or um caractere T e$3uerda+ Mo)e o cur$or um caractere T direita+ Mo)e o cur$or T e$3uerda1 apagando um caractere+ Mo)e o cur$or uma pala)ra T e$3uerda+ Mo)e o cur$or uma pala)ra T 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 matri: retangular numrica Hreal ou compleBaI+ Em alguma$ $itua2e$1 denomina2e$ e$pecC*ica$ $o atribuCda$ a matri:e$ , por ,1 3ue $o o$ e$calare$1 e a matri:e$ com $omente uma linha ou coluna1 3ue $o o$ )etore$+ !pera2e$ e comando$ no MA"LA# $o aplicado$ de maneira natural1 utili:ando o conceito de matri:1 como $o indicado$ no papel+ (ode-$e entrar com matri:e$ 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 matri:e$ *a:endo a eBplicitao da li$ta de elemento$ na linha de comando1 $eguindo a$ con)en2e$ abaiBo' -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 eBemplo1 entrando com a linha de comando

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


re$ulta em

>> A = !23 4#$ %&'


MA"LA# $al)a a matri: A para 3ue po$$a $er utili:ada po$teriormente+ (ode-$e1 tambm1 entrar matri:e$ de ar3ui)o$ de eBten$o "m+ Se um ar3ui)o com o nome de matriz"m contm a$ trU$ linha$ de teBto

A= !23 4#$ %&'(


ento o comando

>> )atri*
atribui T matri: A o$ dado$ corre$pondente$+

2.# $lementos da Matri


Elemento$ de matri: podem $er 3uai$3uer eBpre$$2e$ 3ue o MA"LA# permiteG por eBemplo

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


re$ulta em

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


Elemento$ indi)iduai$ de matri:e$ podem $er re*erenciado$ indi)idualmente com Cndice$ dentro de parUnte$e$1 H I+ Continuando o eBemplo 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 :ero+

(ode-$e con$truir grande$ matri:e$ utili:ando matri:e$ menore$ como elemento$+ (or eBemplo1 para acre$centar uma no)a linha T matri: A'

>> r = !/ !! !2(" >> A = A" r(


5$to re$ulta em

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

Matri:e$ menore$ podem $er eBtraCda$ de matri:e$ grande$ utili:ando o$ doi$ ponto$ H'I+ (or eBemplo

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

>> A = !23 4#$ %&'


*a: com 3ue retorne a$ trU$ primeira$ linha$ e toda$ a$ coluna$ da matri: original A para a matri: 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$ eBpre$$2e$ com operadore$ e outro$ caractere$ e$peciai$1 com *un2e$1 e com nome$ de )ari=)ei$+ A eBecuo da eBpre$$o produ: uma matri:+ A matri: mo$trada na tela e a$$ume o nome da )ari=)el de*inida na linha de comando para 3ue po$$a $er utili:ada 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 eBemplo1 digitando a eBpre$$o

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


Uma linha de comando normalmente termina com a tecla Enter+ Entretanto1 $e o Altimo caractere *or um ponto-e-)Crgula HGI1 a )ari=)el 3ue produ:ida no mo$trada na tela+ Se a eBpre$$o complicada de tal *orma 3ue no cabe em uma linha1 utili:a-$e o$ trU$ ponto$ H+++I $eguido$ pela tecla Enter para indicar 3ue a linha de comando continua na prBima linha+ (ode-$e *ormar nome de *un2e$ e )ari=)ei$ com uma letra $eguida por um nAmero 3ual3uer de letra$ e dCgito$+ No entanto1 MA"LA# guarda $omente o$ - primeiro$ caractere$ de um nome+ MA"LA# entende de *orma di*erente letra$ maiA$cula$ e minA$cula$+ A e a no $o a me$ma )ari=)el+ !$ nome$ da$ *un2e$ de)em $er digitado$ em letra$ minA$cula$+

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


!$ eBemplo$ pre)iamente eBecutado$ criaram )ari=)ei$ 3ue $o arma:enada$ do e$pao de trabalho do MA"LA#+ (ara li$tar a$ )ari=)ei$ arma:enada$ u$e o comando

>> 23o
(ara )eri*icar uma li$tagem mai$ completa$ $obre a$ )ari=)ei$ arma:enada$ de)e-$e utili:ar o comando 6hos1 o 3ual tra: in*orma2e$ $obre o nome1 a dimen$o da matri: corre$pondente1 o nAmero de elemento$ de$$a matri:1 entre outro$+

2.- + Comando .el"


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

>> 3elp
$em nenhum argumento mo$tra uma li$ta de diretrio$ 3ue contUm ar3ui)o$ relacionado$ com MA"LA#+ Cada linha mo$trada li$ta o nome de um diretrio $eguido por uma de$crio do conteAdo do me$mo+ Algun$ diretrio$ $o a$$ociado$ com o$ comando$ b=$ico$ do MA"LA#+ !utro$ contUm toolboBe$1 tai$ como control e si!nalG e$$e$ po$$uem *un2e$ adicionai$ do MA"LA# cobrindo =rea$ de aplica2e$ mai$ e$peciali:ada$+ (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 $Cmbolo$ e$pecC*ico$ do MA"LA#+ ! comando help $eguido por e$te$ comando$ ou *un2e$ *ornece in*orma2e$ $obre como utili:=-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 found5$to ocorre por3ue in$erse no o nome de uma *uno do MA"LA#1 a meno$ 3ue tenha $ido adicionada a uma toolboB pe$$oal+

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


(ara *inali:ar o MA"LA# digite (uit ou e)it+ "erminando uma $e$$o do MA"LA#1 )ocU 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 prBima )e: 3ue MA"LA# chamado1 pode-$e eBecutar o comando load para re$taurar o e$pao de trabalho com a$ )ari=)ei$ de matlab"mat+ (odem $er utili:ado$ 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# utili:a a notao decimal con)encional1 com ponto decimal e $inal negati)o opcionai$1 para nAmero$+ (ode-$e incluir um *ator de e$cala em potUncia de de: ou uma indicao de nAmero compleBo como $u*iBo+ Algun$ eBemplo$ de nAmero$ )=lido$ $o

3 ,'' /-///! '-$3'%23& !-$/2!/7,2/ $-/22#2e23 2i ,3-!4!!#'i 3e#i


(odem $er con$truCda$ eBpre$$2e$ com o$ operadore$ de aritmtica u$uai$ e a$ regra$ de precedUncia' V W % N X adio $ubtrao multiplicao di)i$o por nAmero T direita di)i$o por nAmero T e$3uerda potUncia

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

2.6 23meros Com"le4os e Matri es


MA"LA# permite nAmero$ compleBo$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
Kuando *orem entrado$ nAmero$ compleBo$ como elemento$ de matri: com o$ colchete$1 de)e $er e)itado 3ual3uer e$pao em branco+ Uma eBpre$$o como 1 @ CBi1 com e$pao$ em )olta do $inal @1 repre$enta doi$ nAmero$+ 5$to tambm )=lido para nAmero$ reai$G uma e$pao ante$ do eBponencial1 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+ Kuando utili:ado como uma )ari=)el1 a *uno original $e torna indi$ponC)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$pecC*ica1 ou a ans $e a )ari=)el no dada+ <ocU pode utili:ar o comando format para controlar o *ormato numrico mo$trado+

Se todo$ o$ elemento$ de uma matri: *orem inteiro$ eBato$1 a matri: mo$trada em um *ormato $em ponto$ decimai$+ Se ao meno$ um elemento de uma matri: no um inteiro eBato1 )=rio$ *ormato$ de $aCda $o po$$C)ei$+ ! *ormato padro1 chamado de s"ort #ormat1 mo$tra aproBimadamente cinco dCgito$ decimai$ $igni*icati)o$+ !$ outro$ *ormato$ mo$tram mai$ dCgito$ $igni*icati)o$ ou utili:am notao decimal+ Como um eBemplo1 $uponha

>> + = 4.3 !-234#e,$(


!$ *ormato$ e a$ $aCda$ 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$$C)ei$ de *ormato+

2.11 09nes
0rande parte do poder do MA"LA# = atribuCdo ao eBten$i)o con/unto de *un2e$+ Alguma$ da$ *un2e$ $o intrCn$eca$ ao MA"LA#+ !utra$ *un2e$ e$to di$ponC)ei$ na biblioteca de ar3ui)o$-M di$tribuCdo$ com MA"LA# Ha toolboB do MA"LA#I+ Ainda eBi$tem outra$ 3ue $o adicionada$ por u$u=rio$ indi)iduai$ ou grupo$ de u$u=rio$1 para aplica2e$ mai$ e$peciali:ada$+ E$ta uma importante caracterC$tica do MA"LA#G todo 9s9rio "ode criar f9nes :9e at9am da mesma forma :9e 9ma f9no intr8nseca do M()L(B.

Ca !t"#o +

+"eraes com Matri es


A$ *un2e$ elementare$ de matri:e$ e a $intaBe da$ opera2e$ entre matri:e$ $o o a$$unto de$te capCtulo+ A linha de comando ! 4 AF indica 3ue a )ari=)el ! recebe a tran$po$ta da matri: A+ (ara matri:e$ compleBa$1 teremo$ 3ue a linha de comando acima *ornece a tran$po$ta compleBa con/ugada+ A$$im1 para obtermo$ $omente a tran$po$ta de uma matri: compleBa de)emo$ *a:er ! 4 con% 1AF3" A adio e $ubtrao de matri:e$ pode $er *eita entre matri:e$ de me$ma dimen$o ou entre um e$calar e uma matri:+ Na primeira1 cada elemento de uma matri: $omado ou $ubtraCdo do corre$pondente na outra matri:+ Na $egunda *orma1 o e$calar adicionado ou $ubtraCdo de todo$ o$ elemento$ do outro operando+ A operao de multiplicao de*inida 3uando o nAmero de coluna$ da primeira matri: *or igual ao nAmero de linha$ da $egunda matri:+ ependendo da$ dimen$2e$ en)ol)ida$1 o re$ultado pode $er uma matri:1 um )etor ou1 at me$mo1 um e$calar+ ! produto de um e$calar por uma matri: re$ulta em todo$ o$ elemento$ da matri: multiplicado$ pelo e$calar+ Se A uma matri: 3uadrada no-$ingular1 ento AG! e !=A corre$ponde *ormalmente a multiplicao T e$3uerda e T direita de ! pela in)er$a de AG 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 T e$3uerda1 AG!1 de*inida $empre 3ue # ti)er o me$mo nAmero de linha$ 3ue A+ ependendo $e A *or 3uadrada ou no1 de)e-$e u$ar algum mtodo de *atorao+ A di)i$o normal de um e$calar pelo outro *eita *a:endo-$e )=H+ A eBpre$$o AIp ele)a A a p-$ima potUncia e de*inida $e A uma matri: 3uadrada e p um e$calar+ MA"LA# trata eBpre$$2e$ como e)p1A3 e s(rt1A3 como opera2e$ de )etore$1 de*inida$ em cada elemento de A+ A$ *un2e$ elementare$ de matri:e$ 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 eBponencial e logaritmo da matri:+ E$ta$ *un2e$ e$peciai$ $o de*inida$ $omente para matri:e$ 3uadrada$+ Uma *uno matem=tica tran$cendental interpretada como uma *uno da matri: $e um m acre$centado ao nome da *uno+ A$ trU$ *un2e$ abaiBo $o di$tribuCda$ /untamente com o MA"LA# e)pm , matriz e)ponencial lo'm , matriz lo'artmica s(rtm , matriz raiz (uadrada

Ca !t"#o ,

+"eraes com &etores


Ne$te capCtulo $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 matri:e$ denotada$ pelo$ $Cmbolo$ B G = I e K+ Um ponto H+I precedendo um operador indica uma operao de elemento-porelemento+ (ara adio e $ubtrao1 opera2e$ )etoriai$ e opera2e$ matriciai$ $o idUntica$+ ! $Cmbolo "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 matri: cu/o o$ elemento$ $o $imple$mente o$ produto$ do$ elemento$ indi)iduai$ de A e !+ A potUncia de elemento-por-elemento $imboli:ada por "I1 e *a: com 3ue cada elemento de uma matri: $e/a ele)ado ao elemento corre$pondente da outra matri:+

%.1 +"eraes ;elacionais


Sei$ operadore$ relacionai$ e$to di$ponC)ei$ para a comparao de dua$ matri:e$ de dimen$2e$ idUntica$+ 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 matri:+G o re$ultado uma matri: de ,$ e @$1 com , repre$entando )erdadeiro e @ repre$entando *al$o+

%.2 +"eraes L<icas


!$ operadore$ N1 O e M corre$pondem ao$ operadore$ lgico$ YeZ1 YouZ e YnoZ+ + 4 A N ! uma matri: cu/o o$ elemento$ $o ,$ onde amba$ a$ matri:e$ A e ! $o elemento$ no-nulo$1 e @$ onde uma da$ matri:e$ ou amba$ $o elemento$ nulo$+ + 4 A O ! uma matri: cu/o o$ elemento$ $o ,$ onde tanto A ou ! po$$uem elemento$ no-nulo$1 e @$ onde amba$ po$$$uem elemento$ nulo$+ ! 4 MA uma matri: cu/o o$ elemento$ $o ,$ onde a matri: A um elemento nulo1 e @$ 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$ matri:e$ um e$calar+ A$ *un2e$ lgica$ e relacionai$ do MA"LA# $o' anH , condies l#'icas all , condies l#'icas matriz infinito matriz finite , $erifica os $alores finitos da isemptH , detecta matrizes $azias isstr , detecta $ari$eis strin' is'lobal , detecta $ari$eis 'lobais issparse , detecta matrizes esparsas

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

%.# 09nes Matemticas


A *un2e$ trigonomtrica$ incluCda$ 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

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 @ MA"LA# inclui como *un2e$ elementare$ abs , $alor absoluto ou m#dulo de um nQmero comple)o an'le , Rn'ulo de fase 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<

Ca !t"#o -

.ani "#a/o de 0etores e .atri1es


Ne$te capCtulo $o mo$trado$ comando$ 3ue geram )etore$ e *un2e$ 3ue geram matri:e$+

*.1 =erando &etores


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

>> + = !0#
gera um )etor linha contendo o$ nAmero$ de , a 9 com incremento de uma unidade+ e$ta *orma produ:ido o )etor

+= !234#
(ode-$e utili:ar incremento$ di*erente$ da unidade como em

>> 8 = /0 pi.40 pi
3ue re$ulta em um )etor linha comeando em :ero e terminando em H7+,8,;I com incremento de %8 H@+.>98I+ 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 )ocU e$peci*i3ue o nAmero 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$ Atei$ para gerar matri:e$' zeros , zeros ones , constante eHe , identidade linspace , $etores espaados linearmente lo'space , $etores espaados lo'aritmicamente mesh'rid , utilizada com funes de duas $ari$eis

rand , elementos randJmicos uniformemente distribudos randn , elementos randJmicos normalmente distribudos

*.# Mani"9lao de Matri es


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

Ca !t"#o 2

Introd9o aos =rficos


E$te capCtulo mo$tra como )i$uali:ar dado$ em gr=*ico$ 6- + A$ *un2e$ elementare$ de plotagem comentada$ no inCcio $o de$crita$ no capCtulo ,;+

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


A li$ta a $eguir relaciona a$ *un2e$ 3ue produ:em gr=*ico$ $imple$+ E$ta$ *un2e$ $e di*erem apena$ na maneira como apre$entam a$ e$cala$ do$ eiBo$ do$ gr=*ico$+ Cada uma aceita a entrada na *orma de )etore$ ou matri:e$ e1 automaticamente1 de*inem a$ e$cala$ do$ eiBo$ 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 ) 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

(ode-$e adicionar tCtulo1 nome ao$ eiBo$1 linha$ de grade e teBto$ a 3ual3uer gr=*ico utili:ando

-.2 Criando 9m =rfico


Se H um )etor1 o comando plot1H3 produ: um gr=*ico linear do$ elemento$ de H )er$u$ o Cndice do$ elemento$ de H+ Se $o e$peci*icado$ doi$ )etore$ como argumento$1 o comando plot1),H3 produ: 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 Anica 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 produ: um gr=*ico de H1 )er$u$ ) e HD )er$u$ ) no me$mo eiBo+ ! primeiro grupo de dado$ H H1I plotado com uma linha )ermelha $lida e o $egundo grupo HHDI plotado com uma linha trace/ada )erde+ A linha de comando abaiBo adiciona um tCtulo ao gr=*ico e nome ao$ eiBo$'

>> 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 $Cmbolo$ de traado e core$+ Na linha de comando1

>> plot(4151>)
- uma $tring en)ol)ida por a$pa$ e con$truCda com o$ caractere$ mo$trado$ na tabela abaiBo' 3!m&o#o H m Cor amarelo ma'enta 3!m&o#o " o Esti#o de Lin4a ponto crculo

c r ' b 6 E

ciano $ermelho $erde azul branco preto

) @ B , T ," ,,

) sinal positi$o asterisco s#lida pontilhada trao e ponto trace%ada

(or eBemplo1 plot17,8,FbBF3 plota um a$teri$co a:ul em cada ponto de dado+ Se no *or e$peci*icada uma cor1 a *uno plot automaticamente utili:a 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+

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


(odem $er adicionada$ linha$ a um gr=*ico /= eBi$tente utili:ando o comando hold+ Kuando hold ati)ado1 MA"LA# no remo)e a$ linha$ /= eBi$tente$G ao in)$ di$to1 adiciona no)a$ linha$ ao$ eiBo$ eBi$tente$+ (ode $er 3ue o$ eiBo$ $e/am rede*inido$ $e o$ no)o$ dado$ $e encontrarem *ora da e$cala do antigo eiBo+ (or eBemplo1 a linha de comando abaiBo traa a$ trU$ cur)a$ em uma me$ma *igura'

>> >> >> >> >>

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

-.* Dados Ima<inrios e Com"le4os


Kuando o$ argumento$ a $erem plotado$ $o compleBo$1 a parte imagin=ria ignorada eBceto 3uando o comando plot dado $imple$mente com um argumento compleBo+ (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 matri: compleBa1 e3ui)alente a

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

-.- >lotando Matri es


Um ar3ui)o-M 3ue po$$ui uma *uno para gerar uma matri: de dado$ o peaEs+ !$ dado$ $o ba$eado$ em uma *uno de dua$ )ari=)ei$1 tendo trU$ ponto$ de m=Bimo e mCnimo'

! ar3ui)o-M cria uma matri: 3ue po$$ui o$ )alore$ da *uno para ) e H na *aiBa de -7 a 7+ !$ )alore$ de ) )ariam ao longo da$ coluna$ e o$ de H ao longo da$ linha$+ <ocU pode e$peci*icar o tamanho da matri: 3uadrada 3ue retornada pa$$ando como argumento T *uno peaEs+ (or eBemplo1

>> ? = pea9s(2/)
cria uma matri: de dado$ de dimen$o 6@ por 6@+ Se )ocU omitir o argumento de entrada1 o )alor utili:ado o padro1 3ue 8-+ A *uno plot pode ter um Anico argumento 3ue pode $er uma matri:'

>> plot(5)
5$to *a: com 3ue $e/a traada uma linha no gr=*ico para cada coluna de 8+ ! eiBo ) a$$umido como $endo o Cndice do )etor linha1 1Tm1 onde m o nAmero de linha$ de 8+ (or eBemplo1 a linha de comando

>> plot(pea9s)
produ: um gr=*ico com 8- linha$+ A *uno plot tambm aceita doi$ )etore$ ou matri:e$ como argumento$+ (or eBemplo1

>> plot(pea9s1rot'/(pea9s:))
produ: um gr=*ico da *uno peaEs em *uno da tran$po$ta de$locada de -@[degG da me$ma *uno peaEs+ Em geral1 $e plot utili:ada com doi$ argumento$1 e $e 7 ou 8 po$$uem mai$ de uma linha ou coluna1 ento'

- Se 8 uma matri:1 e ) um )etor1 plot1),83 plota $uce$$i)amente a$ linha$ ou coluna$ de 81 utili:ando 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 nAmero de elemento$ de )+ Se 8 3uadrada1 $ua$ coluna$ 3ue $o u$ada$+
Se ambo$ 7 e 8 $o matri:e$ de me$ma dimen$o1 plot17,83 plota a$ coluna$ de 7 em *uno da$ coluna$ de 8+ "ambm pode $er utili:ada a *uno plot com )=rio$ pare$ de matri:e$ no argumento+

Se 7 uma matri: e H um )etor1 plot17,H3 plota cada linha ou coluna de 7 em *uno do )etor H+

>> plot(4!15!1421521---)
Cada par 7,8 plotado1 gerando mAltipla$ 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 H#M(I para a =rea de tran$*erUncia e depoi$ col=-lo no Eord ou no (aintbru$h1 por eBemplo+ (ara tanto1 e$colha1 na *igura1 o menu Edit e cli3ue em $op%G a *igura *oi copiada para a =rea de tran$*erUncia+ #a$ta1 agora1 entrar no Eord 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"

Ca !t"#o 5

(nlise de Dados
E$te capCtulo 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 abaiBo' 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

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

Ca !t"#o 6

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

1.1 0atorao )rian<9lar


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

>> @1U( = lu(A)


onde a permutao da matri: triangular in*erior e 0 a matri: triangular $uperior+

1.2 0atorao +rto<onal


A *atorao YX utili:ada tanto para matri:e$ 3uadrada$ como retangulare$+ E$ta *atorao eBpre$$a a matri: como o produto de uma matri: ortonormal e uma matri: triangular $uperior+ A linha de comando para e$ta *atorao de$crita como

>> A1B( = qr(A)


onde Y a matri: ortonormal e X a matri: triangular $uperior+

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


Se A uma matri: n-por-n1 o$ n nAmero$ 3ue $ati$*a:em Ax = x $o o$ auto)alore$ de A+ Ele$ $o encontrado$ utili:ando

>> 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 nAmero$ compleBo$+ (ara $e obter o$ auto)alore$ e o$ auto)etore$ de uma )e: ba$ta utili:ar 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+

Ca !t"#o 7

Po#in8mios e Processamento de 3inais


A repre$entao polinomial e o tratamento doi$ polinDmio$ $o tratado$ ne$te capCtulo +

6.1 ;e"resentao >olinomial


MA"LA# repre$enta polinDmio$ como )etore$ linha contendo o$ coe*iciente$ na ordem decre$cente de potUncia+ (or eBemplo1 a e3uao caracterC$tica da matri:

A= !23 4#$ %&/


computada atra)$ de

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


E$ta a repre$entao do MA"LA# para o polinDmio s+ 9 2s: 9 5:s -:5+ A$ raC:e$ de$ta e3uao $o dada$ por

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


A$ raC:e$ da e3uao caracterC$tica $o o$ auto)alore$ da matri: A+ (ode-$e obter o polinDmio original atra)$ da$ raC:e$ encontrada$ acima

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


Con$idere o$ polinDmio$ a;s< = s: > :s > + e &;s< = ,s: > -s > 2+ ! produto do$ polinDmio$ *eito atra)$ da con)oluo do$ coe*iciente$

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


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


<etore$ $o utili:ado$ para guardar $inai$ amo$trado$ ou $e3uUncia$ em proce$$amento de $inai$+ (ara $i$tema$ de )=ria$ entrada$1 cada linha de uma matri: 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 matri: 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< = &;$<@;n< > &;:<@;n 9 $< > AAA > &;n&<@;n 9 n& > $< 9 a;:<?;n 9 $< 9 AAA 9 a;na<?;n 9 na > $<
ou de modo e3ui)alente1 pela tran$*ormada 9

B;1< = C;1< = &;$< > &;:<1 9 $ >AAA>&;n&<1 9 ;na 9 $< D;1< $ > a;:<1 9 $ >AAA>a;na<1 9 ;na 9 $<
A *uno fre(z retorna a re$po$ta compleBa em *re3uUncia de *iltro$ digitai$+

Ca !t"#o $E

09nes de 09no
Ne$te capCtulo $o tratada$ a$ *un2e$ do MA"LA# 3ue no trabalham com matri:e$ numrica$1 ma$ com *un2e$ matem=tica$+ A$ #unes de #uno $o de$crita$ como $endo'

5ntegrao numrica - E3ua2e$ no-lineare$ - Soluo de e3ua2e$ di*erenciai$ MA"LA# repre$enta *un2e$ matem=tica$ atra)$ de ar3ui)o$ de *uno-M+ (or eBemplo1 a *uno

f;@< =

$ > $ - 2 : : ;@ 9 EA+< > EAE$< ;@ 9 EA7< > EAE,

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 *a:endo-$e a integrao numrica de #&x'. (ara integrar a *uno de*inida por humps"m de @ 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$+ 5$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 otimi:ao 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 eBemplo de*inido por humps"m1 a locali:ao do mCnimo na regio de @+9 a , computado com fmin'

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


! )alor de$te mCnimo

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

(elo gr=*ico1 pode-$e ob$er)ar 3ue a *uno humps apre$enta doi$ :ero$+ A locali:ao do :ero prBimo a ) 4 <

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


! :ero 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

Ca !t"#o $$
(#"@o de Contro#e !$ *luBo$ de controle encontrado$ na maioria da$ linguagen$ de programao $o tratado$ ne$te capCtulo+ A$ linha$ de comando de *luBo de controle permitem 3ue MA"LA# $e/a utili:ado como uma linguagem de programao completa de alto-nC)el+

11.1 Loo" [WX


MA"LA# po$$ui $ua prpria )er$o do$ loop$ [WX e ZW encontrado$ em linguagen$ de programao+ 5$to permite 3ue um grupo de linha$ de comando $e/a repetido por um nAmero *iBo e predeterminado de )e:e$+ (or eBemplo1

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


atribui @ ao$ n primeiro$ elemento$ de )+ Se n menor do 3ue ,1 a con$truo ainda )=lida1 ma$ MA"LA# no eBecuta a linha de comando interna+ Se ) no eBi$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 *inali:ar 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 utili:ar 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 *a:er com 3ue o loop decre$a1 de acordo com a eBpre$$o de$crita+ (or eBemplo1

>> 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 nAmero inde*inido de )e:e$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 eBecutada$ repetidamente en3uanto o$ elemento$ da eBpre$$o no a$$umam )alor :ero+ A matri: da eBpre$$o 3ua$e $empre uma eBpre$$o relacional , por ,1 ento nAmero$ no-nulo$ corre$pondem a uma eBpre$$o )erdadeira+ Kuando a matri: da eBpre$$o no um e$calar1 pode-$e redu:i-la atra)$ da$ *un2e$ anH e all+

11.# Comandos :[ e !XEA\


! eBemplo abaiBo ilu$tra a utili:ao do$ comando$ 6hile e if+ Ele tambm mo$tra a *uno input e o comando breaE+ E$te eBemplo trabalha com 3ual3uer nAmero inteiro po$iti)o+ Se ele par1 *a:-$e a di)i$o por 6G $e ele Cmpar1 *a:-$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 n 4 ?Bn@1 if n AC4 <, breaE, end end 6hile n > 1 end if rem1n,D3 44 < end n 4 n=D else

Ca !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 capCtulo+ MA"LA# u$ualmente acionado por um comandoG 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 eBecutar uma $e3uUncia de comando$ 3ue e$t= arma:enada 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 eBten$o $er do tipo "m+ (or eBemplo1 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 $e3uUncia normal de linha$ de comando do MA"LA#1 a 3ual pode *a:er 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 teBto$ como o Notepad ou o Eord+ oi$ tipo$ de ar3ui)o$-M podem $er u$ado$' $cript$ e *un2e$+ Script$1 ou ar3ui)o$ $cript1 reali:am longa$ $e3uUncia$ de comando$+ Fun2e$1 ou ar3ui)o$ *uno1 permitem adicionar no)a$ *un2e$ T *un2e$ /= eBi$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$pecC*ico$+

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


Kuando um $cript chamado1 MA"LA# $imple$mente eBecuta 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 Atei$ na reali:ao de an=li$e1 $oluo de problema$1 ou no pro/eto de longa$ $e3uUncia$ de comando1 o 3ue $e torna can$ati)o para $er *eito interati)amente+ Como um eBemplo1 $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 *a: com 3ue MA"LA# eBecute o$ comando$1 calculando o$ ,; primeiro$ nAmero$ da $rie de Fibonacci1 e crie um gr=*ico+ Ap$ a eBecuo 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$ eBemplo$ de como $e utili:ar $cript$ para reali:ar 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 Cnicio 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$ T *uno e no podem $er operada$ globalmente no e$pao de trabalho+ ! ar3ui)o mean"m um eBemplo 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 eBi$tUncia 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 eBemplo1 $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$ abaiBo $o para o ar3ui)o mean"m1 ma$ o princCpio )=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 teBto de uma ou mai$ linha$ de coment=rio$1 comeando pela $egunda linha do ar3ui)o+ (or eBemplo1 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" Kuando $e entra com help an'le1 a$ linha$ 61 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 nAmero de in*orma2e$ po$$C)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+ Kual3uer atribuio a e$ta )ari=)el1 em 3ual3uer *uno1 *ica di$ponC)el a toda$ a$ outra$ *un2e$ 3ue a declaram como global+ (ara *a:er 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 teBto $o entrada$ no MA"LA# entre a$pa$ $imple$ H K I+ (or eBemplo1

>> s = ;Fello:
re$ulta em

s= Fello
! teBto arma:enado 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 arma:enado$ com $eu$ )alore$ ASC551 e a *uno abs mo$tra e$te$ )alore$'

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

Utili:a-$e colchete$ para /untar )ari=)ei$ de teBto em $tring$ maiore$'

>> s = s1 ; Gorld ;( s= Fello Gorld

( 09no eval
A *uno e$al trabalha com )ari=)ei$ do tipo teBto e implementa uma podero$a *acilidade de macro+ e$al1t3 *a: com 3ue o teBto contido em t $e/a a)aliado+ (or eBemplo1 t 4 K1=1i@%,13F2 for i 4 1Tn for % 4 1Tn

a1i,%3 4 e$al1t32 end end cria uma matri: a de dimen$o n por n1 onde cada elemento a)aliado pela *uno 3ue e$t= de$crita por t+

Ca !t"#o $+

(r:9i'os de Disco
!$ comando$ relacionado$ com ar3ui)o$ 3ue permitem a importao e a eBportao de dado$ $o o$ a$$unto$ de$te capCtulo+ !$ comando$ do MA"LA# sa$e e load1 gra)am e eBecutam o conteAdo do e$pao de trabalho1 re$pecti)amente+ !utro$ comando$ relacionado$ com ar3ui)o$ de di$co permitem eBecutar programa$ eBterno$ e torna po$$C)el a importao e a eBportao de dado$+ Algun$ de$$e$ comando$ $o dir1 tHpe1 delete e cd+ Ele$ atuam de *orma idUntica como atuam no MS- !S+

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


(ode-$e introdu:ir dado$ de outro$ programa$ no MA"LA# de )=ria$ maneira$+ a me$ma *orma1 tambm pode-$e eBportar 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# utili:a+

1#.1.1 Im"ortando Dados


! melhor mtodo de importar dado$ depende da 3uantidade de dado$ eBi$tente1 $e ele$ /= e$to em uma *orma de leitura con)eniente1 3ual e$ta *orma1 etc+ AbaiBo e$to li$tada$ *orma$G 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 eBportao 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 ] randH817IG \\ $a)e temp+dat A -a$cii


cria um ar3ui)o ASC55 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"

Ca !t"#o $,

+ De,9<<er do M()L(B
E$te capCtulo de$cre)e comando 3ue auBiliam na de$coberta de erro$ 3ue ocorrem durante o tempo de eBecuo+ Ape$ar da linguagem 3ue MA"LA# utili:a $er meno$ compleBa 3ue a$ outra$ linguagen$ de programao1 ele po$$ui $ua prpria $intaBe1 e tal)e: $e/a nece$$=rio reparar algun$ erro$ 3ue )enham a acontecer+ MA"LA# encontra erro$ de $intaBe durante a compilao+ E$te$ erro$ u$ualmente $o *=cei$ de con$ertar+ MA"LA# tambm pode encontrar erro$ durante o tempo de eBecuoG e$te$ erro$ tendem a $er mai$ di*Ccei$ de $erem repararado$1 poi$ o e$pao de trabalho local T *uno perdido 3uando um erro *ora o retorno ao prompt do MA"LA# e ao e$pao de trabalho principal+ Se utili:a-$e o ponto-e-)Crgula 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 utili:ar 3ual3uer um do$ mtodo$ abaiBo' 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!" !$ trU$ primeiro$ mtodo$ re3uerem a edio do ar3ui)o-M+ ! Altimo mtodo *oi introdu:ido a partir da )er$o 8+@ do MA"LA#1 e o$ $eu$ comando$ $o dbstop dbclear dbcont dbdo6n dbstatus dbstep dbtHpe dbup db(uit 5ntrodu: uma interrupo &emo)e a interrupo Continua a eBecuo Muda o conteBto do e$pao de trabalho local Li$ta toda$ a$ interrup2e$ EBecuta uma ou mai$ linha$ Li$ta o$ ar3ui)o$-M com o nAmero da$ linha$ Muda o conteBto do e$pao de trabalho local Finali:a o modo debug

Ca !t"#o $ArF"ivos EG3


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 capCtulo+ A$ *un2e$ de E%S HEntrada%SaCdaI 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$ lUem e gra)am ar3ui)o$ de teBto *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 eBemplo1

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


abre para leitura o ar3ui)o pen"dat+ A$ $tring$ de permi$$o di$ponC)ei$ $o' OrO para leitura M6O para gra)ao MaO para atribuio

Mr@O 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 atribuCdo 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# utili:am 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+ S acon$elh=)el te$tar o identi*icador cada )e: 3ue um ar3ui)o aberto+ Um $egundo )alor 3ue retornado pode *ornecer in*ormao adicional $obre erro$+ (or eBemplo1 $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 abaiBo

Ho suc3 file or director8Uma )e: aberto1 o ar3ui)o *ica di$ponC)el para leitura e gra)ao+ Kuando $e termina a leitura ou a gra)ao1 u$a-$e fclose para *echar o ar3ui)o+ (or eBemplo1

>> 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 @ $e e$ta operao *or reali:ada com $uce$$o1 ou -, $e algo de errado acontecer+

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


A *uno fread lU ar3ui)o$ de dado$ bin=rio$+ Na $ua *orma mai$ $imple$1 ele lU um ar3ui)o inteiro em uma matri:+ (or eBemplo1

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


lU todo$ o$ dado$ do demo pennH como caractere1 e o$ e$cre)e em uma matri: A+ controle do nAmero de )alore$ lido$ e a preci$o de cada )alor+ oi$ argumento$ opcionai$ a fread *a:em o

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


lU o$ ,@@ primeiro$ )alore$ de dado$ em um )etor coluna A+ Sub$tituindo o nAmero ,@@ pela$ dimen$2e$ de uma matri: L,@1,@P1 *a: com 3ue $e/am lido$ o$ me$mo$ ,@@ elemento$1 arma:enando-o$ em uma matri: ,@B,@+ E

>> A = fread(fid1Inf)
lU at o *inal do ar3ui)o1 preenchendo a matri: A como um )etor coluna+ !mitir o tamanho do argumento produ: o me$mo e*eito+ ! argumento de preci$o numrica controla o nAmero 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:)
lU ,@ )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 matri: em um ar3ui)o com uma preci$o numrica e$pecC*ica1 retornando o nAmero de )alore$ e$crito$+ (or eBemplo1

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


cria um ar3ui)o bin=rio de ,@@ b^te$ contendo o$ 69 elemento$ da matri: 3uadrada 9B91 arma:enado$ em inteiro$ de 8 b^te$+ 5$to atribui 69 T )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 $aCda de*inido por um e$peci*icador de con)er$o e por um teBto+ !$ e$peci*icadore$ de con)er$o controlam a $aCda do$ elemento$ de uma matri:+ !$ teBto$ $o copiado$ diretamente+ !$ e$peci*icadore$ $o precedido$ pelo caractere ^G 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 eBemplo1 \\ B ] @' +,' ,G \\ ^ ] LBG eBpHBIPG \\ *id ] *openHMeBptable+tBtO1OQOIG \\ *print*H*id1OEBponential FunctionNnNnOIG \\ *print*H*id1O_;+6* _,6+>*NnO1^IG \\ $tatu$ ] *clo$eH*idIG cria um ar3ui)o de teBto contendo uma pe3uena tabela para a *uno eBponencial+ A primeira chamada a fprintf e$cre)e o tCtulo1 $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 teBto do MA"LA#1 fscanf1 $imilar T *uno fprintf+ fscanf po$$ui como argumento o identi*icador para o ar3ui)o de teBto 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 ^G 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

! eBemplo a $eguir *a: a leitura do ar3ui)o com o$ dado$ eBponenciai$ 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 tCtulo combina com o e$peci*icador ^s na primeira chamada T 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 nAmero de )alore$ combinado$+ Um argumento opcional controla o nAmero de elemento$ lido$ da matri:+ (or eBemplo1 $e fid *a: re*erUncia a um ar3ui)o aberto contendo o$ $tring$ de decimal ento

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

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


*a: a leitura de ,@@ )alore$ decimai$ para uma matri: A ,@B,@+

PARTE III
Grficos 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!"

Ca !t"#o $2
Grficos Avanados
! $i$tema gr=*ico do MA"LA# incorpora uma )ariedade de tcnica$ $o*i$ticada$ para apre$entao e )i$uali:ao de dado$+ E$te $i$tema con$truCdo atra)$ de um con/unto de ob/eto$ gr=*ico$1 tai$ como linha$ e $uper*Ccie$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$ 6- 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 baiBo nC)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 arma:enada$ em do:e linha$ de um teBto em ASC55' ?< 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


produ: uma matri: ,6 por 6+ A linha de comando

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


arma:ena a$ coluna$ de temperatura e precipitao em )etore$ indi)iduai$+ (ode-$e plotar tanto a temperatura como a precipitao em *uno do mU$ corre$pondente1 em uma me$ma *igura1 *a:endo-$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 Atil de $e apre$entar o$ dado$+ A$ linha$ de comando a $eguir produ:em um gr=*ico $catter mo$trando a relao entre a temperatura e a precipitao em cada mU$'

>> )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 eBemplo1 acima introdu: e$pao eBtra ao gr=*ico atra)$ do a/u$te da e$cala do$ eiBo$ a )alore$ maiore$ 3ue a *aiBa de dado$+ 5$to permite 3ue o teBto *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# utili:a interpolao bilinear para determinar a cor da parte interna+ (or eBemplo1

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


produ: um polCgono preenchido pela cor a:ul+ (ara criar uma =rea preenchida com uma interpolao de core$1 utili:a-$e o comando colormap da *orma de$crita abaiBo'

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


A $ombra )aria do e$curo para o claro T medida 3ue o )alor de sin1t3 )aria de um mCnimo at um m=Bimo Ho 3ue corre$ponde da e$3uerda para a direita no gr=*icoI+

1-.1.% >lotando 09nes Matemticas


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

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


E$$a$ linha$ de comando$ produ:em o gr=*ico da *uno na *aiBa de @ a ,+ A *uno fplot uma aproBimao mai$ elegante1 )i$to 3ue ela amo$tra a *uno com um nAmero $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 taBa 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 eBemplo1 o ar3ui)o *uno a $eguir de*ine uma *uno1 chamada fof)1 do eBemplo 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 *aiBa de a)aliao1 o nAmero de intera2e$ u$ada$ para preencher a regio onde ocorrem a$ r=pida$ )aria2e$ redu:ido com relao ao a/u$te padro para pre)enir de um tempo de computao eBce$$i)amente longo+

>> fplot(;fof+:1 / !(1 2#1 2/1 !/)


Ne$te eBemplo1 fplot utili:a meno$ ponto$ para a)aliar a me$ma *uno1 ma$ agora amo$tra a *uno em inter)alo$ menore$ em uma regio onde a taBa de )ariao a maior1 gerando uma *igura mai$ preci$a na$ proBimidade$ de B ] @+9+

1-.2 =rficos #@D


MA"LA# po$$ui uma )ariedade de *un2e$ para eBibir dado$ em 7- + Alguma$ plotam linha$ em trU$ dimen$2e$1 en3uanto outra$ de$enham $uper*Ccie$ e *igura$ utili:ando Yp$eudocore$Z para repre$entar uma 3uarta dimen$o+ A li$ta a $eguir mo$tra e$$a$ *un2e$' plot? , plota linhas e pontos em ?,Z

matriz

contour, contour? , cria 'rficos de contorno pcolor , desenha uma matriz retan'ular de clulas cu%as cores s5o determinadas pelos elementos da

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= utili:ado o termo Y$uper*Ccie me$hZ 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$ 6- 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$uali:ao do gr=*ico+ Em geral1 a$ )i$ta$ $o de*inida$ por uma matri: de tran$*ormao 8 por 8 3ue o MA"LA# utili:a para tran$*ormar um gr=*ico 7- em uma tela 6- + Entretanto1 a *uno abaiBo 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$ produ: uma pro/eo bidimen$ional de$ta linha na tela++ (or eBemplo

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


produ: um helicide+ Se 71 8 e 9 $o trU$ matri:e$ 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 $Cmbolo$ gr=*ico$ e core$1 u$a-$e a linha de comando plot?17,8,9,s31 onde $ uma $tring de ,1 6 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 matri:e$ e s $o a$ $tring$+

1-.2.2 Mesh<rid
MA"LA# de*ine uma $uper*Ccie me$h pela$ coordenada$ : 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*Ccie$ me$h $o Atei$ para )i$uali:ao de matri:e$ 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$ matri:e$ 7 e 8 con$i$tindo de linha$ e coluna$ repetida$1 re$pecti)amente1 $obre o domCnio da *uno+ epoi$ utili:a-$e e$ta$ matri:e$ para a)aliar e plotar a *uno+ A *uno mesh'rid tran$*orma o domCnio e$peci*icado por doi$ )etore$1 ) e H1 em matri:e$1 7 e 8+ Utili:a-$e e$ta$ matri:e$ para a)aliar *un2e$ de dua$ )ari=)ei$+ A$ linha$ de 7 $o cpia$ do )etor B 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 B como em ^1 pa$$a-$e como argumento doi$ )etore$ para a *uno mesh'rid criando a$ matri:e$ nece$$=ria$'

>> >> >> >>

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

>> 6 = sinD-.B" >> )es3(6)


A matri: X contm a di$tRncia do$ ponto$ ao centro da matri:1 o 3ual a origem+ Adiconando eps e)ita a di)i$o por :ero1 o 3ue produ: ;a;s no dado$+

1-.2.# =rficos de Contorno


MA"LA# po$$ui *un2e$ para gerar gr=*ico$ de contorno tanto para 6- como para 7- + A$ *un2e$ contour e contour? geram gr=*ico$ compo$to$ de linha$ obtida$ da matri: entrada como argumento+ EBi$te a opo de $e e$peci*icar o nAmero de linha$ de contorno1 a e$cala do$ eiBo$ e o )alor do$ dado$ com o$ 3uai$ $e de$enhar= a$ linha$ de contorno+ (or eBemplo1 a linha de comando abaiBo cria um gr=*ico de contorno contendo 6@ linha$ de contorno e u$ando o ar3ui)o-M peaEs para gerar o$ dado$ de entrada+

>> contour(pea9s12/)
!$ cCrculo$ 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 utili:a-$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 matri: 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 matri:1 z1i,%31 u$ado como Cndice no mapa de core$ para determinar a cor a $er mo$trada na3uele ponto+ ! mapa de core$ uma matri: com trU$ coluna$ 3ue e$peci*icam a inten$idade da$ trU$ componente$ de )Cdeo' )ermelho1 )erde e a:ul+ 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+ 5$to Atil poi$ a e$cala contCnua de core$ do preto ao branco *a: repre$entar o contorno da *uno peaEs+ !$ po$$C)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*Ccie$ em trU$ dimen$2e$+ Se ` uma matri: cu/o o$ elemento$ 91i,%3 de*inem a altura da $uper*Ccie com relao a uma =rea delimitada 1i,%31 ento

>> )es3(6)
gera uma *igura da $uper*Ccie1 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*Ccie1 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$+ Kuando mesh193 e surf193 $o u$ado$ com $imple$ matri:e$ como argumento$1 e$te argumento e$peci*ica tanto a altura 3uanto a$ core$ da $uper*Ccie+ (ara a matri: peaEs utili:ada anteriormente

>> )es3(pea9s)
produ: uma $uper*Ccie me$h para a *uno peaEs

Matri es de Cores
Utili:ando dua$ matri:e$ 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*Ccie+ Com pcolora, o$ )alore$ de + $o po$to$ em e$cala e u$ado$ como Cndice$ no mapa de core$ $elecionado+ No ca$o1 + chamada matri: de core$+ Kuando a $uper*Ccie de dado$ contm ;a;s1 e$te$ elemento$ no $o plotado$+ 5$to cria um *alha na $uper*Ccie no lugar corre$pondente+ e*inindo algun$ elemento$ na matri: de core$ como ;a;s1 uma maneira Atil de tornar regi2e$ da $uper*Ccie in)i$C)ei$+ (or eBemplo1 a linha de comando abaiBo produ: uma *alha na $uper*Ccie de*inida pela matri: 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 matri:e$ adicionai$ como argumento1 com a *uno de de$cre)er a $uper*Ccie com o$ dado$ ) e H+ Se 9 uma matri: 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*Ccie me$h cu/o o$ )rtice$ po$$uem core$ +1i,%3 e e$to locali:ado$ no$ ponto$ 1)1%3, H1i3, 91i, %33 (erceba 3ue ) corre$ponde T coluna e H T linha da matri: 9++ e maneira mai$ geral1 $e 71 81 9 e + $o matri:e$ de me$ma$ dimen$2e$1 ento

>> )es3(41 51 61 P)
de$cre)e uma $uper*Ccie me$h cu/o o$ )rtice$ po$$uem core$ +1i,%3 e e$to locali:ado$ 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 surf e mesh


MA"LA# po$$ui *un2e$ 3ue produ:em combina2e$ no$ gr=*ico$ ba$eado$ na$ *un2e$ surf e mesh+ (or eBemplo1 surfc de$enha uma $uper*Ccie com contorno bidimen$ional no plano : ] @+ a me$ma *orma1 eBi$tem a$ *un2e$ surfl1 meshc e meshz+

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


Sero de$crita$ abaiBo *un2e$ para controle de aparUncia 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 Rngulo do 3ual )i$uali:a-$e um gr=*ico 7- + A *uno $ie6 de*ine o Rngulo de )i$o em coordenada$ e$*rica$ atra)$ da e$peci*icao do a:imute Hrotao hori:ontalI e da ele)ao )ertical do ponto de )i$ta1 com relao a origem do$ eiBo$+ ! a:imute um Rngulo 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 Rngulo acima HRngulo po$iti)oI ou abaiBo HRngulo negati)oI do plano x(%+ (or eBemplo1 a$ 3uatro linha$ de comando abaiBo proporcionam 3uatro maneira$ di*erente$ de $e )i$uali:ar 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$onali:ado$ e$cala e orientao+ !rdinariamente1 MA"LA# encontra o$ )alore$ de m=Bimo e mCnimo 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 eiBo$'

>> 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 eiBo para $eu )alor padro1 o modo autom=tico+ $ 4 a)is $al)a a e$cala do$ eiBo$ 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 eiBo matri:+ A origem do $i$tema de coordenada$ $e encontra no canto $uperior e$3uerdo+ ! eiBo i )ertical e numerado de cima para baiBo+ o eiBo % hori:ontal e numerado da e$3uerda para a direita+ a)is1K)HF3 de*ine MA"LA# com o$ eiBo$ carte$iano$+ A origem do $i$tema de coordenada$ $e encontra no canto in*erior e$3uerdo+ ! eiBo ) hori:ontal e numerado da e$3uerda para a direita+ ! eiBo H )ertical e numerado de baiBo para cima+ a)is1KonF3 e a)is1KoffF3 *a:em com 3ue o nome do eiBo 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 enBergue atra)$ de uma $uper*Ccie de modo a $e poder )i$uali:ar po$$C)ei$ *igura$ 3ue

e$te/am atr=$ de$ta $uper*Ccie+ E$te comando $e *a: Atil 3uando e$to $endo plotada$ )=ria$ *igura$ em um Anico gr=*ico+ (or eBemplo1 a$ linha$ de comando a $eguir *a:em com 3ue o$ dado$ gerado$ por pcolor po$$am $er )i$uali:ado$ 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 matri: 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 /anelaG em $eguida1 a $egunda linha1 e a$$im $egue+ (or eBemplo1

>> 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$ *a: com 3ue $e/a aberto uma no)a /anela gr=*ica+ fi'ure1;3 *a: com 3ue a ;-$ima *igura $e torne a *igura atualG o re$ultado do$ comando$ gr=*ico$ $ub$e3uente$ $o mo$trado$ ne$ta /anela+ Se a *igura ; no eBi$te1 MA"LA# cria uma u$ando o prBimo nAmero di$ponC)el Hno nece$$ariamente ;I+ A *uno 'input permite 3ue $e/am utili:ado$ o mou$e ou a$ tecla$ de $eta para $elecionar ponto$ no gr=*ico+ 5$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 matri: de trU$ coluna$+ Cada linha da matri: de*ine uma cor particular atra)$ de trU$ )alore$ dado$ na e$cala de @ a ,+ E$te$ )alore$ e$peci*icam a inten$idade da$ componente$ de )Cdeo a:ul1 )erde e )ermelho+ Alguma$ core$ e$to li$tada$ na tabela abaiBo' 0erme#4o @ , , @ @ , , @ +9 0erde @ , @ , @ , @ , +9 A1"# @ , @ @ , @ , , +9 Cor preto branco )ermelho )erde a:ul amarelo magenta ciano cin:a

+9

)ermelho e$curo

!$ mapa$ de core$ podem $er *ornecido$ por tabela$1 ou gerado$ em opera2e$ de matri:e$+ ! diretrio color do toolboB do MA"LA# po$$ui )=ria$ *un2e$ 3ue geram mapa$ Atei$1 incluindo hs$1 hot1 cool1 pinE1 copper e fla'+ Cada *uno po$$ui um parRmetro opcional1 m1 o 3ual e$peci*ica o nAmero de linha$ no mapa re$ultante+ (or eBemplo

>> 3ot())
uma matri: 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# utili:a m ] ;8 como )alor padro+ 5$to permite trU$ ou 3uatro *igura$1 onde cada uma po$$ui $ua tabela de 69; core$+ A linha de comando1

>> color)ap(?)
*a: com 3ue a matri: de mapa de core$ M $e/a u$ada pela *igura ati)a+ (or eBemplo1

>> 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 utili:am mapa$ de core$1 toda$ a$ outra$ *un2e$ 3ue $o deri)ada$ de$ta$ 3uatro tambm o *a:em+ A$ *un2e$ plot1 plot?1 contour e contour? no *a:em u$o do$ mapa$ de core$+

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


A$ *un2e$ pcolor $o Atei$ para mo$trar mapa$ de core$+ (or eBemplo1 para )i$uali:ar um mapa de core$ em ton$ de cin:a tendo oito entrada$1 utili:a-$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 matri:e$1 permite 3ue $e/am manipulado$ como 3ual3uer outra matri:+ A *uno bri'hten utili:a 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$ )e:e$+

1-.* Man9seamento de =rficos


A$ caracterC$tica$ gr=*ica$ apre$entada$ at a3ui *a:em parte da inter*ace de alto-nC)el do $i$tema gr=*ico do MA"LA#+ Entretanto1 e$te $i$tema tambm *ornece um a/u$te da$ *un2e$ de baiBo-nC)el 3ue permitem 3ue $e/am criada$ e manipulada$ linha$1 $uper*Ccie$ e outro$ ob/eto$ gr=*ico$ 3ue MA"LA# utili:a para produ:ir 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$ organi:a em uma hierar3uia e$truturada em =r)ore+ E$te ob/eto$ incluem a tela rai: Hroot $creenI1 *igura$ H*igure$I1 eiBo$ HaBe$I1 linha$ Hline$I1 patche$ Hpatche$I1 $uper*Ccie$ H$ur*ace$I1 imagen$ Himage$I1 teBto HteBtI1 e inter*ace de controle HuicontrolI e menu$ HuimenuI 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 Anico identi*icador Hchamado handleI 3ue atribuCdo ao ob/eto 3uando ele criado+ Algun$ gr=*ico$ tai$ como contour plot1 $o compo$to$ de mAltiplo$ ob/eto$1 cada 3ual com $eu prprio handle+ ! handle do ob/eto rai: $empre :ero en3uanto 3ue o de uma *igura um inteiro+ ! handle de outro$ ob/eto$ $o nAmero$ decimai$ 3ue contm in*orma2e$ utili:ada$ 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 utili:ar e$ta$ *un2e$ como argumento$ de entrada de outra$ *un2e$ 3ue re3ueiram o$ handle$ de gr=*ico$ e eiBo$+ (ode-$e1 tambm1 remo)er 3ual3uer ob/eto utili:ando a *uno delete1 de$cre)endo como argumento o handle do ob/eto+ (or eBemplo1 o$ eiBo$ 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$+ 5$to inclui *un2e$ de alto-nC)el1 tai$ como surfc1 a 3ual cria tanto ob/eto linha como ob/eto $uper*Ccie+

09nes de Criao de +,Betos


"odo$ o$ ob/eto$ $o criado$ por *un2e$ de me$mo nome Ha *uno te)t cria um ob/eto teBto1 a *uno fi'ure cria um ob/eto *igura1 etc+I+ A$ *un2e$ gr=*ica$ de alto-nC)el do MA"LA# chamam a *uno de baiBo-nC)el apropriada para de$enhar $eu$ re$pecti)o$ gr=*ico$+ Muita$ *un2e$ de alto-nC)el a/u$tam a$ propriedade$ do ob/eto com a *inalidade de produ:irem um re$ultado particular+ A$ *un2e$ de baiBo-nC)el $imple$mente criam um do$ no)e ob/eto$ gr=*ico$ de*inido$ pelo MA"LA# Hno $e pode criar um no)o ob/eto rai:I e o$ coloca no ob/eto-me apropriado+ (or eBemplo1 chamando a *uno line1

>> line
MA"LA# de$enha a linha no eiBo 3ue e$t= ati)o u$ando o$ )alore$ de dado padro+ Se no hou)er eiBo1 MA"LA# cria um+ Se no hou)er uma /anela de *igura onde po$$am $er criado$ o$ eiBo$1 MA"LA# tambm cria uma /anela+ Se chamada a *uno line pela $egunda )e:1 uma linha de$enhada no$ eiBo$ eBi$tente$ Hdi*erentemente com relao a *uno plot1 por eBemplo1 a 3ual $ub$titui o$ eiBo$ em cada chamadaI+ E$ta caracterC$tica Atil 3uando $e 3uer adicionar um ob/eto a uma *igura eBi$tente+ (ode-$e obter o me$mo re$ultado utili:ando 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$ HchildrenI e $uperiore$ HparentI1 o 3ue e$t= ou no )i$C)el1 bem como in*orma2e$ Anica$ de um determinado ob/eto tai$ como o$ dado$ utili:ado$ para $e determinar um ob/eto $uper*Ccie+ Kuando $e cria um ob/eto1 ele iniciali:ado com o$ )alore$ padr2e$G de$te$1 algun$ podem $er alterado$ Houtro$ $o de*inido$ pelo MA"LA# como $endo $omente para leituraI+

$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 *a:endo u$o da *uno set+ (or eBemplo1 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 trU$ ob/eto$ e atribui )alore$ T$ 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$ eiBo$ $o de*inida$ como $endo preta$ HMaOI+ ! Rngulo de )i$o de*inido como tendo um a:imute de -7.+9[degG e uma ele)ao de 7@[degG+ !$ dado$ para 3ue a $uper*Ccie $e/a gerada $o *ornecido$ pela *uno peaEs1 e e$ta $uper*Ccie 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 get


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 *a:er i$to utili:ando 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 eBemplo1 o eBemplo anterior de*ine uma $uper*Ccie e $al)a $eu handle em surfh+ (ode-$e alterar a propriedade do ob/eto re*erente ao e$tilo de linha HLineSt^leI1 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 *a:er a alterao do )alor de uma propriedade1 utili:a-$e a *uno 'et+ Chamando-$e a *uno 'et com o handle do ob/eto1 obtUm-$e a li$ta de toda$ a$ propriedade$ para a3uele ob/eto com o )alore$ atuai$'

>> get(surf3)

Вам также может понравиться