Documente Academic
Documente Profesional
Documente Cultură
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$
<+
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 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$+
>> log(sqt(atan(2*(3+4))))
MA"LA# re$ponde com uma men$agem de erro do tipo
>> 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+
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 # $ % & ' (
ento o comando
>> )atri*
atribui S matri6 A o$ dado$ corre$pondente$+
>> + =
re$ulta em
(ode-$e con$truir grande$ matri6e$ utili6ando matri6e$ menore$ como elemento$+ (or e@emplo1 para acre$centar uma no)a linha S matri6 A'
!/ !! !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
$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
>> 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$+
>> 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
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+
>> 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
,''
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
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+
>> 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+
>> + =
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 ,
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 -
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+
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 .
>> + = !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+
a!"t#$o 3
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$'
>> 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
>> plot(6)
onde 9 um )etor ou uma matri6 comple@a1 e3ui)alente a
>> plot(real(6)1i)ag(6))
! 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$+
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+
>>
onde
@1U( = lu(A)
a permutao da matri6 triangular in*erior e 0 a matri6 triangular $uperior+
>>
A1B( = qr(A)
>> 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
A ! 4 %
= 2 3 # $ & /
computada atra)$ de
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
>> 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= >
pode $er encontrada no MA"LA#1 poi$ *oi criada atra)$ de um ar3ui)o-M chamado humps"m+
(elo gr:*ico1 pode-$e ob$er)ar 3ue a *uno humps apre$enta doi$ 6ero$+ A locali6ao do 6ero pr@imo a ) 4 <
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+
a!"t#$o %;
>> * = !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$+
>> s = ;Fello:
re$ulta em
s = Fello
! te@to arma6enado em um )etor1 $endo um caractere por elemento+ Ne$te ca$o1
>> 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+
*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$+
!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
>>
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
>> 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+
>> A = fscanf(fid1:J#d:1!//)"
*a6 a leitura de ,AA )alore$ decimai$ para um )etor coluna A1 e
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+
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+
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
no inter)alo
>> fplot(;fof+: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+;+
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"
>> 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
>> 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$'
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$+
>> 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/)
>> )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"
!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+
! 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-.#.% !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+
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$+
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+
"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+
>> 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$+
>> 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)