Você está na página 1de 27

Matlab num Instante

26

rel= tfor/tmat Pelo exemplo anterior pode-se concluir que a \vectoriza~o" dos algoritmos a unica forma de ca e utilizar o Matlab de forma eciente. Exerc cio 59 Obtenha uma matriz com 50 colunas em que cada coluna contm um perodo da fun~o e ca seno amostrada em 50 pontos. Exerc cio 60 Gere uma sequ^ncia com 10000 valores aleatrios com distribui~o uniforme e guarde e o ca num vector apenas os que possuem amplitude superior a 0.9. Coloque noutro vector os ndices das amostras anteriores. Exerc cio 61 Obtenha o grco da fun~o sin(x)=x variando o argumento entre -100 e 100 com a ca passos de 0.1.

Matlab num Instante

25

3. Escrever o bloco com o resultado no cheiro de sa da Esta tcnica apesar de permitir um aumento da rapidez de execu~o, resulta normalmente num e ca algoritmo mais complexo.

Vectoriza~o de algoritmos ca
Todos os operadores e fun~es do Matlab podem ser aplicados sobre vectores e matrizes. Se, por co exemplo, quisermos calcular o seno de cada um dos elementos do vector x com 100 elementos basta fazer v= sin(x) para se obter o resultado pretendido. O Matlab permite assim utilizar como argumento da fun~o ca sin n~o apenas um nmero mas um vector, aplicando a fun~o a cada um dos seus elementos. No a u ca entanto, existe uma outra forma de realizar os clculos que consiste em recorrer ao ciclo for aplicando a a fun~o sin a um elemento de x de cada vez ca for n= 1:100 v(n)= sin(x(n)); end Contudo, o Matlab utiliza uma linguagem interpretada, o que signica que antes de ser executada cada linha de cdigo lida e descodicada. Este processo repetido para cada linha e pode em certos o e e casos, ser da ordem de grandeza do prprio processamento ou mesmo superior. Um caso ilustrativo o e o do clculo do produto interno entre dois vectores linha a e b, denido pela express~o a a ab =
N X

a (n) b (n) ;

n=1

e que em linguagem do Matlab se escreve simplesmente a*b'. O programa que se segue pretende demonstrar a diferena de velocidade de processamento entre c a vers~o que calcula o produto interno fazendo uso de um ciclo for, e outra que o calcula na forma a vectorizada. % Compara~o do tempo de CPU no clculo de um produto interno. ca a N= 10000; a= rand(1,N); b= rand(1,N); nciclos= 100; % Clculo utilizando um ciclo for a t= cputime; for c= 1:nciclos, y= 0; for n= 1:N, y= y+a(n)*b(n); end end tfor= cputime-t % Clculo de forma vectorizada a t= cputime; for c= 1:nciclos, y= a*b'; end tmat= cputime-t % Velociade de clculo relativa a % Num Pentium II a 266MHz foi cerca de 180 vezes mais rpido a

Matlab num Instante

24

Reserva de espao para variveis c a


A reserva de espao em memria para as variveis faz-se simplesmente preeenchendo a varivel a ser c o a a utilizada com zeros, de forma a que a sua dimens~o n~o volte a ser alterada. No cdigo que se segue a a o o vector x v^ a sua dimens~o ser alterada, o que leva a um novo pedido de reserva de memria para e a o armazenar o vector x= 1:5; x= [x x]; o que n~o acontece nesta vers~o que apesar de mais eciente menos leg a a e vel x= zeros(1,10); x(1:5)= 1:5; x(6:10)= x(1:5); Mas vejamos que diferena pode ocorrer nos tempos de processamento com um pequeno programa, c em que se testam duas vers~es de um algoritmo muito simples, em que na primeira n~o se reserva o a memria para a varivel. o a N= 1000; x= rand(1,N); % Vers~o sem reserva de memria a o t= cputime; y= 0; for n= 1:N, y= [y x(n)]; % Instru~o crtica ca end tsem= cputime-t clear y % % Vers~o com reserva de memria a o t= cputime; y= zeros(1,N+1); for n= 1:N, y(n+1)= x(n); end tcom= cputime-t % Velocidade relativa % Num Pentium II a 266MHz a vers~o com reserva de memria a o % foi cerca de 8 vezes mais rpida a rel= tsem/tcom Eis mais alguns conselhos teis sobre a gest~o de memria no Matlab u a o Evitar criar variveis intermdias dos dados quando n~o s~o necessrias utilizando antes variveis a e a a a a da mesma dimens~o j existentes. a a Caso tal n~o seja poss utilizar a fun~o clear var1 var2 : : : l a vel ca Deve-se ter em conta que o Matlab utiliza 8 bytes para armazenar cada elemento de uma matriz. Como no caso das variveis complexas esse nmero duplica, deve-se evitar ter este tipo a u de variveis sempre que a parte real ou a imaginria sejam nulas. Nestes casos deve utilizar-se a a as fun~es real e imag. co No caso de ser necessrio processar dados com muitas amostras deve-se realizar o processamento a por blocos com as seguintes etapas: 1. Ler bloco do cheiro de entrada 2. Processar bloco

Matlab num Instante

23

[y,fs]= wavread('ficheiro.wav'); e se se pretender gravar num cheiro com a extens~o \wav" um vector pode-se utilizar o comando a wavwrite(y,fs,'ficheiro.wav'); Apesar de no Matlab se poder escolher qualquer frequ^ncia de amostragem a maior parte das placas e de som n~o permitem a reprodu~o de sinais amostrados a n~o ser nas seguintes frequ^ncias a ca a e 48000 44100 32000 24000 22050 16000 12000 11025 8000

Exerc cio 56 Gere um vector com 32000 elementos utilizando a fun~o randn. Oua o sinal criado ca c utilizando uma frequ^ncia de amostragem de 32000Hz. e Exerc cio 57 Gere a sinuside de 1000Hz do exemplo dado e oua-a com a frequ^ncia de amostragem o c e de 8000Hz. Reproduza agora a sinuside com as seguintes frequ^ncias de amostragem: 4000, 16000, o e 44100. Exerc cio 58 Gere um sinal constitu por 5000 elementos 1 e -1 dispostos alternadamente. Reprodo duza esse sinal com a fun~o sound utilizando uma frequ^ncia de amostragem de 8000Hz. ca e

Imagens
O Matlab possui um conjunto de fun~es para manipula~o e visualiza~o de imagens a cores. As co ca ca imagens s~o representadas sob a forma de matrizes. No caso de imagens s com n a o veis de cinzento, estas podem ser armazenadas numa matriz bidimensional em que cada elemento representa o nvel de cinzento. Os seguintes comandos mostram como visualizar uma imagem armazenada num cheiro em disco I=imread('banner.jpg'); image(I) axis image

O comando imread carrega a imagem banner.jpg para a matriz I, e o comando image mostra a gura no ecran. Podemos facilmente criar imagens sintticas com o Matlab e visualiz-las com os comandos antee a riores. Vejamos um exemplo de uma imagem com a metade inferior a branco e a superior a preto: M= zeros(100); M(1:50,:)= 1; colormap gray image(M);

Constru~o de cdigo eciente com o Matlab ca o


O Matlab permite o desenvolvimento rpido de algoritmos de processamento, mas quando os dados a a tratar possuem uma dimens~o elevada necessrio ter alguns cuidados para que a execu~o do cdigo a e a ca o n~o se torne demasiado lenta. Existem duas formas principais de optimizar a execu~o do cdigo: a a ca o reserva de memria para as variveis e a vectoriza~o de algoritmos. o a ca

Matlab num Instante

22

end A instru~o for s deve ser utilizada quando n~o se encontra outra forma de implementar o algoritca o a mo pois como veremos na sec~o sobre "Vectoriza~o de algoritmos" (pag.25), torna a execu~o do ca ca ca programa muito lenta uma vez que o Matlab utiliza uma linguagem interpretada. Exerc cio 52 Gere um vector x com 1000 elementos utilizando a fun~o rand. Extraia para um outro ca vector todos os elementos de x menores que 0.3. Utilize as instru~es for e if. co Exerc cio 53 Neste exerccio pretende-se visualizar a fun~o ex quando se varia o par^mentro ca a segundo a express~o = 1 + 0:1 n, com n 2 [1; 2; : : : ; 10]. Armazene cada uma das variantes da a fun~o numa coluna de uma matriz A (100 10) considerando 100 pontos para a varivel x 2 [0 : : : 2]. ca a Para visulizar as curvas simult^neamente faa apenas plot(A) e experimente mesh(A). a c Exerc cio 54 A expans~o em srie de Taylor da fun~o seno dada pela express~o a e ca e a sin(x) = x x3 x5 xn + ::: + sin n : 3! 5! n! 2

Calcule a aproxima~o para 5 termos da srie em 100 pontos do intervalo [0 : : : 2] e faa um grco ca e c a comparando a aproxima~o com a fun~o seno. ca ca Exerc cio 55 Usando a instru~o for, construa uma matriz de 10 10 em que cada coluna um ca e vector v cujos elementos s~o os nmeros inteiros de 1 a 101. a u

Som e Imagem no Matlab


O Matlab permite a manipula~o directa de cheiros de som e imagem, sendo poss experimentar ca vel algoritmos de processamento sobre sinais reais e vericar os resultados de imediato.

Sinais de Audio
O Matlab possui uma srie de fun~es que permitem manipular cheiros de som em formato \ri"2 e co e, se o computador tiver uma placa de som, reproduzir o sinal armazenado num vector. A instru~o ca sound permite fazer esta reprodu~o utilizando uma dada frequ^ncia de amostragem. A frequ^ncia ca e e de amostragem indica o nmero de amostras que s~o convertidas de digital para analgico em cada u a o segundo. Se quisermos reproduzir um vector preenchido com um sinal aleatrio a uma taxa de 8000Hz o e com uma dura~o de 2 segundos utilizamos a seguinte sequ^ncia de comandos: ca e r= 2*(rand(1,16000)-0.5); sound(r,8000); A amplitude dos elementos do vector de entrada da fun~o sound deve estar compreendida entre -1 ca e 1, sendo as amplitudes superiores convertidas para -1 ou 1. Se quisermos reproduzir uma sinuside o de 1000Hz com a dura~o de 0.5 segundos, utilizando uma frequ^ncia de amostragem de 8000Hz ca e procede-se da seguinte forma fs= 8000; % Frequ^ncia de amostragem e Ts= 1/fs; % Perodo de amostragem t= 0:Ts:0.5; % Instantes de amostragem x= sin(2*pi*1000*t); sound(x,fs); Para carregar para um vector um sinal armazenado num cheiro de som com o formato \ri", pode-se utilizar o comando
1 Este exemplo da instru~o for, pode ser realizado de forma mais eciente com o comando: v*ones(1,length(v)), ca em que v um vector coluna. e 2 No ambiente windows os cheiros de som com este formato t^m a extens~o "wav". e a

Matlab num Instante

21

Exerc cio 48 Gere a sequ^ncia f1; 2; 3; : : : ; 9; 10g e extraia os nmeros maiores que 4. e u Exerc cio 49 Gere uma sequ^ncia aleatria com distribui~o normal e elimine os elementos negae o ca tivos. Exerc cio 50 Gere uma sequ^ncia aleatria com distribui~o normal e calcule o nmero de elementos e o ca u negativos. Exerc cio 51 Gere um sinal aleatrio com distribui~o uniforme e com 1000 amostras. Obtenha o o ca nmero de amostras com uma amplitude superior a 0.9. Calcule em seguida o nmero de amostras u u cujo mdulo possui uma amplitude entre 0.5 e 0.7. o

Programa~o em Matlab ca
O Matlab possui um conjunto de instru~es que permitem a constru~o de programas. Nesta introco ca du~o apenas faremos refer^ncia s instru~es if e for. ca e a co

A instru~o IF ca
Esta instru~o permite a execu~o condicional de cdigo tendo em conta uma dada condi~o lgica. ca ca o ca o A estrutura a seguinte e if cond then, instru~o 1 ca instru~o 2 ca ::: else instru~o 3 ca instru~o 4 ca ::: end Se a condi~o cond for verdadeira s~o executadas as instru~es 1 e 2, sen~o ser~o executadas as ca a co a a instru~es 3 e 4. A directiva end no nal indica o m da instru~o if. co ca Na forma mais simples a directiva else pode ser omitida.

A instru~o FOR ca
Esta instru~o permite a repeti~o de um conjunto de instru~es. A sintaxe de utiliza~o a seguinte: ca ca co ca e for varivel= incio:passo:fim, a Instru~o 1 ca Instru~o 2 ca ::: end A seguir podemos ver alguns exemplos de utiliza~o ca r= 10; for n= 1:10, r= r+10 end N~o dif vericar que a express~o direita do sinal de igual na instru~o for apenas cria um a e cil a a ca vector e que se pode utilizar a instru~o for da seguinte forma ca r=10; v= 1:10; for n= v, r= r+10

Matlab num Instante

20

Expans~o escalar a
A expans~o escalar consiste na repeti~o automtica de um escalar de modo a que seja possvel realizar a ca a a opera~o pretendida com cada elemento de uma matriz. Se pretendermos somar o nmero 5 a uma ca u matriz A de dimens~o 4 4 basta fazer a A+5 em vez de A+5*ones(4) Esta nota~o simplica as express~es tornando-as de leitura mais fcil. Tambm possvel realizar ca o a e e atribui~es fazendo por exemplo: co A= magic(4); A(1:3,1:3)= 1 1 1 1 13 1 1 1 8 1 1 1 12 4 14 15 1

Indices lgicos o
O Matlab permite a indexa~o de elementos de uma matriz atravs de ndices lgicos que podem ser ca e o obtidos a partir de equa~es lgicas. Considere-se o seguinte vector v co o v= [0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5] e vamos supor que se pretendia obter um vector apenas com as amostras com amplitude superior a 0.3; ent~o, fazendo a v>0.3 ans = 0 1 0 0 0 1 0 0 0 0 0 1 obtm-se um vector de zeros e uns com o valor 1 nas amostras onde a condi~o era verdadeira. Para e ca obter os elementos do vector que satisfazem a condi~o basta fazer ca v(v>0.3) 0.4 0.4 0.5 Se se pretender um vector com os ndices das amostras que satisfazem a condi~o v > 0:3 pode-se ca fazer n= 1:length(v); n(v>0.3) ans= 2 6 12 ou, em alternativa, utilizar a fun~o find ca find(v>0.3) ans= 2 6 12 Na tabela seguinte s~o apresentados os operadores lgicos mais comuns da linguagem Matlab a o == ~= < > <= >= & j ~ igual diferente menor maior menor ou igual maior ou igual "e" lgico o "ou" lgico o nega~o ca

Matlab num Instante

19

100 90 80 70 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 10

Exerc cio 42 Crie uma matriz com tr^s colunas e coloque em cada uma delas as seguintes fun~es: e co sin(x), cos(x) e sin(x)*cos(x). O argumento x dever ser um vector a comear em 0 e a acabar em a c 2 , com um passo de =100. Exerc cio 43 Desenhe o grco da fun~o sin x2 utilizando o mesmo argumento que no exerc a ca cio anterior. Exerc cio 44 A fun~o abs d como resultado o mdulo de um nmero complexo e a fun~o angle ca a o u ca o seu argumento. Construa um grco do mdulo e argumento da seguinte fun~o a o ca y (!) = ! ej! em que ! varia de 0 a 8 com passos de =40. Desenhe igualmente um grco da parte real versus a a parte imaginria. a

Fun~es estat co sticas


O Matlab possui uma grande variedade de fun~es estatsticas para analisar um sinal. Quando estas co fun~es recebem uma matriz como entrada, a opera~o aplicada sobre cada coluna da matriz. Para co ca e calcular a mdia de cada uma das colunas de uma matriz podemos fazer: e M= randn(100,3); mean(M) para calcular o desvio padr~o pode-se fazer a std(M) e para obter um histograma de cada coluna de M hist(M) Se se pretender um histograma com mais classes basta acrescentar um segundo argumento fun~o a ca com o nmero pretendido. u Exerc cio 45 Gere um vector com um milh~o de amostras obtidas com a fun~o rand. Calcule a sua a ca mdia, desvio padr~o e visualize o seu histograma com 100 classes. e a Exerc cio 46 Gere agora um vector com um milh~o de amostras com a fun~o randn. Calcule a sua a ca mdia, desvio padr~o e visualize o seu histograma com 100 classes. Quais as diferenas em rela~o e a c ca ao exemplo anterior? Exerc cio 47 Gere uma sequ^ncia com 100 elementos iguais unidade e calcule a sua mdia e desvio e a e padr~o. a

Matlab num Instante

18

1 2.1 1.1 -5 2 o que indica que o polinmio caracter o stico det (A I) e 4 + 2:13 + 1:12 51 + 2 Exerc cio 37 Construa um vector linha x constitudo pelos nmeros inteiros pares pertencentes ao u intervalo [1 : : : 8]. Calcule os valores prprios do produto externo de x com x. o Exerc cio 38 Resolva o seguinte sistema de equa~es com o Matlab co 8 < x + 2y z = 10 2x 7y = 1 : x + 3y 4z = 0 Verique com o Matlab a solu~o obtida. ca Exerc cio 39 Crie uma matriz aleatria A com a fun~o rand e obtenha uma matriz simtrica B = o ca e A AT . Verique que B satisfaz a sua equa~o caracter ca istica. Nota: utilize a fun~o polyval. ca Exerc cio 40 Verique que fazendo o produto externo entre um vector coluna v e um vector linha preenchido com um nmero n de uns, se obtm uma matriz com n colunas iguais a v. u e Exerc cio 41 Calcule os valores prprios da matriz simtrica B do exerc 39 e verique que pelo o e cio menos um deles superior unidade. Calcule A20 e verique que os elementos da matriz resule a A 20 tante aumentaram de valor. Calcule agora 20 e verique que os elementos da matriz resultante diminuiram de amplitude e que os valores prprios s~o todos inferiores unidade. o a a

Opera~es elemento-a-elemento co
Em muitas situa~es pretende-se efectuar opera~es aritmticas com matrizes aplicando a opera~o co co e ca entre os elementos das matrizes. Para transformar um operador matricial na forma elemento-aelemento, basta acrescentar o carcter \." antes do operador. Note-se que no caso da adi~o \+" e a ca da subtra~o \-" n~o existe qualquer diferena para os operadores \.+" e \.-" respectivamente. ca a c O exemplo seguinte ilustra o produto elemento-a-elemento de duas matrizes com a mesma dimens~o: a A= [1 2 3; 4 5 6] B= [2 3 4; 9 8 7] A.*B ans= 2 6 12 36 40 42 Vejamos agora uma lista de operadores elemento-a-elemento + Adi~o ca Subtra~o ca .* Multiplica~o elemento-a-elemento ca ./ Divis~o elemento-a-elemento a .^ Potencia~o elemento-a-elemento ca .' Transposta n~o conjugada a Este tipo de operador muito util para, por exemplo, gerar matrizes com valores de fun~es: e co n= (1:10)'; M= [n n.^2 n.*log2(n)]; plot(M,'-o')

Matlab num Instante

17

Ficheiros de comandos
Quando se pretende executar repetidamente um conjunto de comandos muito longo, ter de os escrever torna-se muito moroso. Para resolver este problema, possvel colocar num cheiro de texto com e a extens~o \.m" o conjunto de comandos que se pretende executar. Para executar os comandos a guardados no cheiro, basta escrever na janela de comando do Matlab o nome do cheiro sem a extens~o. Para criar e comear a editar um cheiro basta escrever o comando edit, para que arranque a c um pequeno editor de texto com \debugging" integrado.

Tpicos sobre matrizes o


Nesta sec~o iremos descobrir mais algumas das possibilidades que o Matlab oferece para operar com ca matrizes.

Algebra linear
E poss resolver com o Matlab diversos problemas da lgebra linear, sendo fcil realizar clculos vel a a a elaborados com matrizes, como por exemplo, o produto de duas matrizes, invers~o de matrizes, clculo a a dos valores prprios, etc. Dadas as matrizes A e B, por exemplo, a sua soma calculada da seguinte o e forma: A= rand(4); B= rand(4); C= A+B; Para calcular o produto entre as duas matrizes anteriores basta fazer C= A*B que efectua produtos internos entre as linhas de A e as colunas de B. Se quisermos calcular o produto interno entre dois vectores linha x e y x= 1:4 y= 3:6 x*y' ans= 50 enquanto que o produto externo entre estes vectores dado por e A = x'*y A = 3 4 5 6 6 8 10 12 9 12 15 18 12 16 20 24 O determinante da matriz A pode ser calculado fazendo apenas d= det(A) e se quisermos calcular os valores prprios da matriz simtrica A AT pode-se utilizar o comando o e eig(A*A') e a inversa da matriz A obtm-se fazendo e inv(A) E igualmente poss calcular a n pot^ncia de uma matriz quadrada fazendo simplesmente vel e A^n e se se quiser calcular o polinmio caracterstico de uma matriz temos o p= poly(A) p=

Matlab num Instante

16

! " # home end esc del backspace

Movimenta o cursor para a esquerda Movimenta o cursor para a direita Salta para o comando anterior Salta para o comando seguinte Salta para o incio da linha Salta para o m da linha Apaga a linha Apaga o carcter da direita a Apaga o carcter da esquerda a

Existe ainda a possibilidade de guardar num cheiro todos os comandos introduzidos durante uma sess~o com o comando diary. a

Directrios e cheiros o
Quando se arranca o Matlab, o directrio corrente ser o c:nmatlabR12nwork. No entanto, se preteno a dermos guardar num cheiro variveis, fun~es e programas Matlab elaborados por ns, conveniente a co o e mudar a directoria corrente para uma directoria pessoal. Para visualizar qual o directrio corrente o pode-se utilizar o comando pwd ans = C:nmatlabR12nwork Para mudar de directrio pode-se utilizar o comando cd. Para mudar para a \drive" H: por exemplo, o o seguinte comando deve ser utilizado cd h: Quando se escreve um comando na janela do Matlab esse nome ser pesquisado em primeiro lugar a no directrio corrente. Se n~o for encontrado, o Matlab pesquisa nos directrios que constarem duma o a o lista interna (comando path).

Os comandos LOAD e SAVE


Com estes comandos poss guardar num cheiro variveis do Matlab que estejam no \workspace". e vel a O comando save permite guardar as variveis para disco e o comando load permite carreg-las para a a o \workspace". O exemplo seguinte ilustra a funcionalidade destes comandos. A= rand(2) A = 0.61543 0.92181 0.79194 0.73821 b= 1:3 b= 1 2 3 save ficheiro A b load ficheiro Os comandos load e save permitem igualmente guardar cheiros em formato ASCII. save ficheiro A b -ascii sendo mais fcil para o utilizador vericar o contedo com um simples editor de texto. a u Exerc cio 35 Execute a sequ^ncia anterior de comandos e guarde as variveis A e b em formato e a ASCII para um cheiro com o nome teste.txt. Edite o contedo desse cheiro com o Notepad. u Exerc cio 36 Aps ter criado as variveis A e b tal como indicado no texto, execute o comando o a e whos e compare a memria ocupada por cada uma delas. Visualize a varivel b nos seguintes formatos o a numricos: long, short e e long e. Finalmente, apague as variveis e verique com o comando e a whos.

Matlab num Instante

15

whos. O primeiro apresenta no ecran uma lista abreviada das variveis indicando apenas o seu nome, a enquanto que o segundo apresenta tambm o espao ocupado em memria, dimens~o, etc. e c o a Para apagar variveis da memria pode-se utilizar o comando clear. Para apagar por exemplo as a o variveis x e b faz-se a clear x b O comando clear sem argumentos apaga todas as variveis armazenadas em memria. a o

O comando format
O comando format controla a forma como os valores numricos s~o apresentados. Este comando e a controla apenas a forma com os valores s~o apresentados e n~o a forma como estes s~o representados a a a internamente. Os seguintes exemplos ilustram os formatos mais comuns. a= [1/5 pi] format short 0.2000 3.1416 format short e 2.0000e-001 3.1416e+000 format long 0.20000000000000 3.14159265358979 format long e 2.000000000000000e-001 3.141592653589793e+000 Uma op~o util do comando format ca e format compact que elimina as linhas em branco extra introduzidas entre a apresenta~o das variveis permitindo uma ca a apresenta~o dos resultados mais compacta. ca

Supress~o de resultados a
Quando as matrizes s~o de grande dimens~o torna-se bastante incmodo para o utilizador a apresena a o ta~o do resultado no ecran de todos os clculos efectuados. Para evitar a apresenta~o dos resultados ca a ca basta colocar no nal da linha de comando um ponto e v rgula tal como o seguinte exemplo demonstra: a= [1/5 pi];

Edi~o de comandos ca
A janela de comando do Matlab permite a edi~o de comandos escritos anteriormente. Se por exemplo ca se entrou o seguinte comando: a= sqrt(1:10] j Improper function reference. A '','' or '')'' is expected. o Matlab devolve, como se pode constatar, um erro de sintaxe. Para alterar a linha e substituir o par^ntesis recto por um curvo, basta carregar na tecla " que a linha aparecer de novo. Com as teclas e a e desloca-se o cursor ao longo da linha. O Matlab guarda uma lista de todos os comandos ! introduzidos numa sess~o. Se quiser obter um comando introduzido anteriormente, basta escrever os a primeiros caracteres desse comando e carregar em " para que o comando aparea. A lista seguinte c mostra as teclas de edi~o dispon ca veis

Matlab num Instante

14

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1

-0.5

0.5

Exerc cio 34 Visualize em grco a parte real e a parte imaginria da fun~o ej! , para valores de a a ca ! 2 [0 : : : 2] e passo de =10.

Visualiza~o de fun~es de duas variveis ca co a


Para visualizar uma fun~o de duas variveis da forma z = f (x; y) o Matlab possui a fun~o mesh. ca a ca Para utilizar esta fun~o necessrio gerar duas matrizes X e Y em que a primeira possui colunas ca e a id^nticas e a segunda linhas id^nticas, com os valores de x e y em que se pretende calcular a fun~o f. e e ca A fun~o meshgrid gera as matrizes X e Y a partir dos valores iniciais, nais e respectivo incremento. ca p O seguinte exemplo ilustra a forma de gerar um grco 3D da fun~o sin (r) =r, com r = x2 + y 2. a ca [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)

O ambiente Matlab
A janela de comando do Matlab possui algumas potencialidades na apresenta~o dos resultados, ca gest~o da variveis, formata~o numrica dos resultados, edi~o da linha de comandos, etc. Nesta a a ca e ca sec~o vamos descrever algumas das suas potencialidades. ca

Gest~o de variveis a a
Todas as variveis do Matlab s~o guardadas na \rea de trabalho" (\workspace"). Para visualizar a a a as variveis que est~o na \rea de trabalho" num dado momento podemos utilizar os comados who e a a a

Matlab num Instante

13

A fun~o plot permite escolher o tipo de linha, a cor, etc; e existem ainda fun~es para por ca co exemplo, acrescentar etiquetas aos eixos, criar uma grelha, etc, (ver o \help" da fun~o plot para ca refer^ncia). Destas fun~es destacam-se as seguintes: e co xlabel ylabel gure gure(gcf) zoom grid axis Etiqueta do eixo das abcissas Etiqueta do eixo das ordenadas Cria uma janela nova Coloca a janela de grca corrente frente a a Para aumentar zonas de um grco a Grelha Dene os limites dos eixos do grco a

Exerc cio 25 Faa o plot da fun~o seno para dois per c ca odos. Exerc cio 26 Compare o grco da fun~o seno com o da fun~o coseno para ^ngulos entre 0 e 2 e a ca ca a um passo de pi/150. O seno deve ser representado por c rculos azuis e o coseno por uma linha verde a cheio. Exerc cio 27 Desenhe o grco da fun~o sin () = com a variar de 2 a 2 e passos de =10. a ca Exerc cio 28 Visualize o grco da fun~o ex para 100 valores de x 2 [0 : : : 5]. a ca Exerc cio 29 Visualize o grco da fun~o ex para 100 valores de x 2 [0 : : : 5]. a ca Exerc cio 30 Visualize o grco da fun~o loge x para valores de x 2 [0 : : : 5]. a ca Exerc cio 31 Construa uma matriz X em que a primeira coluna constitu com 100 valores da e ida fun~o ex e a segunda coluna por 100 valores da fun~o loge x para o intervalo x 2 [0 : : : 1]. Execute ca ca o comando plot(X). Exerc cio 32 Determine gracamente uma solu~o aproximada da equa~o loge x = ex . Utilize para ca ca a anlise o intervalo [0 : : : 1]. a Exerc cio 33 Desenhe no mesmo grco a fun~o ex em que a varivel toma os seguintes valores a ca a 2 [1; 1:1; 1:2; 1:3; 1:4; 1:5] e a varivel x 2 [0 : : : 1]. a

Grcos de variveis complexas a a


Quando o argumento ds fun~o plot complexo, em abcissa colocada a parte real do vector e ca e e em ordenadas a parte imaginria. Pode-se pensar neste processo como uma forma compacta de a representa~o. O comando que se segue ca plot(z) equivalente a fazer e plot(real(z),imag(z)) Vejamos um exemplo em que se utiliza a fun~o axis square, para que a gura obtida seja uma ca circunfer^ncia. e w= 0:pi/10:2*pi; plot(exp(i*w),'-o') axis square

Matlab num Instante

12

Grcos a
A gera~o de grcos no Matlab representa um dos seus aspectos mais uteis. Nesta sec~o ser~o ca a ca a apresentados alguns dos comandos mais importantes para a cria~o de grcos a partir dos valores ca a armazenados em matrizes.

Cria~o de grcos ca a
A fun~o plot a mais utilizada no Matlab para gerar grcos variando o seu comportamento conca e a soante os par^metros de entrada. A sua forma mais simples consiste em passar como entrada apenas a um vector: plot(y) O grco gerado apresenta em abcissas os a ndices i dos elementos do vector e em ordenadas o valor de cada um dos elementos do vector. Tambm possvel utilizar um segundo vector para o eixo das e e abcissas tal como no exemplo seguinte: w=0:pi/100:2*pi; x= sin(w); plot(w,x)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

3 rad

A fun~o plot admite a representa~o simult^nea de vrias curvas, acrescentando mais argumentos ca ca a a de entrada, devendo os vectores possuir o mesmo nmero de amostras. Vejamos um exemplo: u w=0:pi/100:2*pi; x1= sin(w); x2= sin(w+pi/2) plot(w,x1,w,x2)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 rad 4 5 6 7

Matlab num Instante

11

2 3 4

2 3 4

3 1 3

4 2 4

Exerc cio 15 Crie uma matriz 3 3 em que todos os elementos s~o iguais a 3. a Exerc cio 16 Crie um vector coluna com 100 elementos aleatrios com uma distribui~o uniforme. o ca Exerc cio 17 Crie uma matriz 4 4 em que todos os elementos s~o iguais a 1 + j2. a Exerc cio 18 Com a fun~o eye crie uma matriz diagonal 4 4 em que todos os elementos da ca diagonal s~o iguais a 3. a Exerc cio 19 Construa um vector com 128 elementos com a sequinte sequ^ncia: e 0 1 0 1 0 1 0 1 :

Exerc cio 20 Crie uma matriz com dimens~o 4 4 em que cada coluna seja o vector v = [1; 2; 3; 4]. a Exerc cio 21 Forme a matriz quadrada com dimens~o 6 6 constituda por quatro blocos em que os a elementos de cada bloco sejam \um" ou zero, tal como ilustrado na seguinte matriz: e 2 3 1 1 1 0 0 0 6 1 1 1 0 0 0 7 6 7 6 1 1 1 0 0 0 7 6 7 6 0 0 0 1 1 1 7: 6 7 4 0 0 0 1 1 1 5 0 0 0 1 1 1

Remo~o de colunas e linhas ca


E poss remover de uma dada matriz qualquer conjunto de linhas e colunas. Para tal, basta atribuir vel o valor de uma matriz vazia denida por\[]" s linhas e colunas que se pretende remover. No exemplo a que se segue, elimina-se a 2a coluna da matriz A. a= [1 2; 3 4]; A= [a a; a a] A = 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4 A(:,2)= [] A = 1 1 2 3 3 4 1 1 2 3 3 4 A remo~o de um elemento isolado de uma matriz n~o possvel uma vez que esta deixaria de ca a e respeitar as propriedades de uma matriz A(1,2)=[] ??? Indexed empty matrix assignment is not allowed. Exerc cio 22 Gere uma matriz com dimens~o 88 constitu por nmeros aleatrios obtidos com a a da u o fun~o randn, e obtenha uma sub-matriz constitu pelas colunas de ca da ndice mpar utilizando a tcnica e de remo~o de colunas. ca Exerc cio 23 Resolva o exerc anterior utilizando uma solu~o sem \[]". cio ca Exerc cio 24 Gere um vector com todos os nmeros inteiros de 1 a 101 e elinine os elementos pares. u

Matlab num Instante

10

Manipula~o de matrizes ca
Esta sec~o introduz alguns conceitos elementares sobre a cria~o e manipula~o de matrizes. ca ca ca

Cria~o de matrizes ca
As quatro fun~es seguintes permitem a cria~o de algumas matrizes elementares: co ca zeros ones eye rand randn Cria Cria Cria Cria Cria uma matriz preenchida com zeros uma matriz preenchida com uns a matriz identidade uma matriz de nmeros aleatrios com distribui~o uniforme [0 : : : 1] u o ca uma matriz de nmeros aleatrios com distribui~o normal u o ca

Vejamos alguns exemplo de utiliza~o destas fun~es: ca co Z= zeros(2,5) Z = 0 0 0 0 0 0 0 0 0 0 a= ones(2,3)*3 a = 3 3 3 3 3 3 n= round(3*rand(1,10)) n = 3 1 2 1 3 2 1 0 2 A= randn(1,3)+j*randn(1,3) A = -0.43256 + 0.28768i -1.6656 -

1.1465i

0.12533

1.1909i

Concatena~o de matrizes ca
Concatenar matrizes consiste em formar matrizes a partir de outras mais pequenas. A nota~o ca e id^ntica utilizada para formar matrizes com nmeros. Os seguintes exemplos ilustram a concatena~o e a u ca de matrizes. a= [1 2; 3 4] a = 1 2 3 4 A= [a a; a a] A = 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4 b= (1:4)' b = 1 2 3 4 B= [b b [a;a]] B = 1 1 1 2

Matlab num Instante

0 + 1.4142i x= log(-1) x= 0 + 3.1416i

Polinmios o
Existe no ambiente Matlab um conjunto de fun~es para manipular polinmios. A deni~o de co o ca polinmios feita criando vectores cujos elementos s~o os coecientes do polinmio ordenados por o e a o pot^ncia decrescente tal como o exemplo seguinte ilustra. Para representar o polinmio p(x) = e o x2 3x + 2, cria-se o vector p=[1 -3 2]; e para calcular as suas razes existe a fun~o ca r= roots(p) r= 2 1 Para obter os coecientes de um polinmio a partir das ra pode-se utilizar a fun~o o zes ca poly(r) ans= 1 -3 2 Tambm poss calcular o valor de um polinmio num conjunto de pontos utilizando a fun~o e e vel o ca polyval tal como o exemplo ilustra polyval(p,r) ans= 0 0 e que, como se pode ver, calculou o valor do polinmio nos seus zeros. o O produto entre dois polinmios obtido atravs da fun~o conv (convolu~o). O exemplo seguinte o e e ca ca ilustra o produto entre os polinmios x2 + 1 e x3 + x 1 dado por x5 + 2x3 x2 + x 1 o p1= [1 0 1] p2= [1 0 1 -1] conv(p1,p2) ans= 1 0 2 -1 1 -1 Exerc cio 7 Calcule o seno, o coseno, a tangente, a raz quadrada e a raz cbica de =2. u Exerc cio 8 Calcule o logaritmo e a raz quadrada de -1. Exerc cio 9 Calcule o valor da fun~o ex em 100 pontos do intervalo [1 : : : 1]. ca Exerc cio 10 Calcule o valor da fun~o sin(x + pi=10) cos(x) em 100 pontos do intevalo [ : : : ]. ca Exerc cio 11 Calcule o produto dos polinmios x6 + 10 e x2 2x + 3. o Exerc cio 12 Obtenha o polinmio cujas razes s~o os nmeros inteiros 1, 2 e 3. o a u Exerc cio 13 Calcule os zeros do seguinte polinmio p(x) = x3 + 4x2 3x + 1. Calcule o valor do o polinmio em 100 pontos da forma x = ej! com ! 2 [0 : : : 2]. o Exerc cio 14 Calcule o valor do mdulo do polinmio p(x) = 1= x2 + 1 em 100 pontos da forma o o x = ej! com ! 2 [0 : : : 2].

Matlab num Instante

Operadores
As opera~es nas express~es do Matlab seguem as regras habituais de preced^ncia e podem ser aplico o e cadas quer a matrizes quer a nmeros. u + * / ^ ' () Adi~o ca Subtrac~o ca Multiplica~o ca Divis~o a Potencia~o ca Transposta Par^ntesis e

Fun~es co
O Matlab possui um conjunto muito grande de fun~es matemticas que permitem resolver grande co a parte dos problemas de clculo encontrados, tais como: sin, cos, tan, sqrt, log, etc. Estas aceitam a nmeros complexos como argumento e podem tambm devolver resultados do tipo complexo. Se, por u e exemplo, se calcular a ra quadrada de um nmero negativo n~o ocorre um erro mas o correspondente z u a nmero complexo automaticamente devolvido. Quando as fun~es s~o aplicadas sobre matrizes a u e co a fun~o aplicada a cada um dos elementos. ca e Para obter ajuda sobre a utiliza~o de qualquer fun~o basta fazer ca ca help func em que func o nome da fun~o. e ca Existem algumas fun~es especiais que devolvem o valor das constantes matemticas mais utico a lizadas: pi i j eps realmin realmax Inf NaN 3.14159265 p p1 1 Precis~o relativa do formato double 252 a O menor nmero real 21022 u O maior nmero real (2 eps)21023 u Innito \Not-a-Number"

Express~es o
Na constru~o de express~es podemos utilizar operadores, fun~es e variveis. Eis alguns exemplos: ca o co a r= (pi+1)/(pi-1) r = 1.9339 a= abs(4+3i) a= 5 t= angle(4+3i) t= 0.6435 a= 0/0 Warning: Divide by zero. a = NaN x= sqrt(-2) x =

Matlab num Instante

Exerc cio 5 Gere uma sequ^ncia de nmeros mltiplos de 3 compreendidos entre 100 e 132, dispostos e u u num vector por ordem decrescente. Exerc cio 6 Gere uma sequ^ncia a comear em e a acabar em com um passo de =15. e c

Express~es o
O Matlab permite a constru~o de express~es matemticas sem qualquer declara~o do formato ca o a ca numrico ou dimens~o das matrizes. Existem quatro constituintes bsicos nas express~es do Mate a a o lab: Variveis a Nmeros u Operadores Fun~es co

Variveis a
Todas as variveis do Matlab s~o do tipo matriz e a sua cria~o automtica. Por exemplo, o comando a a ca e a Custo total= 1000 resulta na cria~o em memria de uma matriz de 1 1 com o valor 1000. O Matlab distingue as ca o letras maisculas das minsculas nos nomes das variveis e s toma em considera~o os primeiros 31 u u a o ca caracteres. Para visualizar o valor de uma varivel basta escrever o seu nome. a Existe uma varivel especial que utilizada pelo Matlab quando n~o se atribui o resultado de a e a uma express~o a qualquer varivel. Esta varivel designa-se por\ans" (do termo\answer", resposta) e a a a pode ser utilizada numa sess~o interactiva para continua~o dos clculos, tal como o exemplo seguinte a ca a demonstra 2*sin(2) ans= 1.8186 ans/102 ans = 0.017829

N meros u
O Matlab utiliza uma nota~o standard para a representa~o dos nmeros, admitindo nota~o cientca ca ca u ca e nmeros complexos. A unidade imaginria j = sqrt(1) representada no Matlab pelas letras i u a e ou j. Como estas letras podem ser utilizadas no nome de outras variveis convm ter o cuidado de a e conrmar o seu valor antes de as usar. A seguir ilustram-se alguns exemplos: 10 1+i 10e6j -11 10j 10e-2 0.312 3e2 -2.3e-4

Matlab num Instante

Indices
O elemento da linha i e da coluna j de uma matriz A designado por A (i; j). Por exemplo o elemento e da linha 1 e coluna 3 da matriz A designado por A (1; 3). Em nota~o Matlab, para obter o elemento e ca A (1; 3) denida anteriormente, pode-se escrever A(1,3) e obtm-se e ans= 3 Para alterar o valor do elemento A (1; 3) para 7 basta fazer A(1,3)= 7 Os ndices das matrizes s~o nmeros inteiros positivos pertencentes ao intervalo [1 : : : N] em que N a u depende da memria disponvel, e podem ser vectores declarados anteriormente. Se pretendermos por o exemplo, extrair a segunda linha da matriz A podemos fazer v= A(2,[1 2 3]) v= 4 5 6 ou declarando primeiro um vector para os ndices das colunas k= [1 2 3] v= A(2,k) v= 4 5 6

O operador \:"
A cria~o de vectores elemento a elemento bastante morosa e para matrizes de grandes dimens~es ca e o quase irrealizvel. O Matlab permite gerar sequ^ncias de nmeros de forma rpida se zermos uso do a e u a operador\:". Se quisermos gerar o vector a = [1; 2; 3; : : : ; 10] podemos fazer a= 1:10 A nota~o geral para o operador \:" a seguinte ca e Nmero inical : incremento : Nmero final u u e permite a gera~o de sequ^ncias de nmeros inteiros como no exemplo anterior ou mesmo de nmeros ca e u u reais. Eis alguns exemplos: e= 0:pi/20:2*pi f= 10:-1:-10 O operador\:" pode ser utilizado na gera~o de vectores de ndices obtendo-se uma nota~o muito ca ca compacta. Se quisermos obter as colunas mpares da matriz A podemos fazer B=A(1:2,1:2:3) No caso anterior s~o indexadas todas as linhas da matriz. Para simplicar a nota~o, quando n~o se a ca a conhece exactamente o nmero de linhas de uma matriz, pode-se utilizar a nota~o u ca B=A(:,1:2:3) Exerc cio 1 Gere uma sequ^ncia de nmeros pares com in em 4 e a terminar no nmero 100. e u cio u Exerc cio 2 Gere uma sequ^ncia numrica decrescente com incio em 5 e a terminar em -5. e e Exerc cio 3 Gere uma sequ^ncia numrica com 100 elementos pertencentes ao intervalo [0 : : : 1]. e e Exerc cio 4 Considere uma matriz A com 20 linhas e 30 colunas. Construa um comando que permita extrair para uma matriz B uma sub-matriz de A constituda pelas linhas de 10 a 15 e as colunas de 9 i a 12.

Matlab num Instante

O \Help Desk"
A partir da vers~o 5.0, o Matlab vem acompanhado com uma ajuda em formato\html" e todos os mana uais em formato\pdf". Essa informa~o pode ser encontrada no endereo http://www.mathworks.com. ca c Dentro do campus da Universidade de Aveiro, tambm possvel ter acesso directo a essa informa~o e e ca no endereo http://acs.det.ua.pt/matlab. c

O sistema Matlab
O sistema Matlab constitu pelas seguintes partes: e do A linguagem

Permite a manipula~o e cria~o de matrizes de forma rpida e intuitiva. Diferentes solu~es ca ca a co para um problema podem ser testadas numa frac~o do tempo que levaria com outras linguagens ca (C ou Fortran por ex.). Possui um conjunto muito vasto de fun~es que permitem resolver co problemas complexos de forma eciente.

O ambiente de trabalho

O Matlab proporciona um ambiente de trabalho que permite a gest~o e visualiza~o das variveis, a ca a ler e gravar variveis em disco e gerar programas em linguagem Matlab, possibilitando assim a a automatiza~o de clculos complexos. ca a

Grcos a

As fun~es de cria~o, visualiza~o e manipula~o de grcos s~o muito fceis de usar e permitem co ca ca ca a a a a cria~o de grcos 2D e 3D. O ajuste de escala automtico e o utilizador pode comear ca a e a c a utilizar as fun~es de gera~o de grcos pouco tempo depois do primeiro contacto com o co ca a ambiente do Matlab.

"Toolboxes"

O Matlab disponibiliza um conjunto de pacotes de fun~es para as mais variadas reas de co a clculo cient a co, sendo estes denominados \toolboxes". Existem\toolboxes" para estatstica, processamento de sinal, processamento de imagem, controlo, clculo simblico, etc. a o

Matrizes
Cria~o de matrizes ca
Uma matriz uma estrutura de dados bidimensional que permite guardar nmeros de uma forma e u ordenada e indexvel. Para criar, por exemplo, a seguinte matriz com duas linhas e tr^s colunas a e 1 2 3 A= ; 4 5 6 basta introduzir o comando: A= [1 2 3;4 5 6] ou em alternativa A= [1,2,3;4,5,6] Os vectores coluna e linha s~o casos particulares de matrizes e s~o criados utilizando a mesma a a nota~o. Para criar uma varivel com apenas um elemento basta fazer ca a a= 10 Este um caso particular de uma matriz de dimens~o 11, e pode-se igualmente utilizar a nota~o e a ca mais geral a= [10]

Matlab num Instante

Matlab num Instante


Introdu~o ca
O que o Matlab? e
O Matlab um sistema para clculo cient e a co que proporciona um ambiente de fcil utiliza~o com a ca uma nota~o intuitiva mas poderosa. Permite a realiza~o de algoritmos numricos sobre matrizes ca ca e com o m nimo de programa~o. Alm disso, no ambiente Matlab possvel a cria~o e manipula~o ca e e ca ca de matrizes sem a necessidade de dimensionamento prvio e a manipula~o das variveis pode ser e ca a realizada de forma interactiva. O termo\Matlab" tem origem na conjuga~o dos termos\MATrix" ca e\LABoratory". Este documento pretende ser apenas uma introdu~o muito breve ao Matlab e permitir a um ca utilizador n~o\iniciado" comear a dominar os aspectos mais bsicos em pouco tempo. A leitura a c a deste documento deve ser realizada ao lado de um PC com o Matlab, para o utilizador poder testar os exemplos e fazer os diferentes exerc cios.

Ajuda
O comando HELP
Para esclarecer a maior parte das dvidas acerca da utiliza~o de uma dada fun~o do Matlab o u ca ca comando help de grande utilidade. Se se pretender, por exemplo, informa~o sobre a fun~o sin, e ca ca basta fazer help sin obtendo-se a seguinte descri~o ca SIN Sine. SIN(X) is the sine of the elements of X. O Matlab possui todas as fun~es organizadas em grupos e a prpria estrutura de directrios onde o co o o Matlab armazenado em disco reecte esse facto. Por exemplo, todas as fun~es de lgebra linear e co a est~o armazenadas no directrio matfun. Para obter uma lista completa deste tipo de fun~es basta a o co fazer help matfun Como n~o fcil decorar os nomes de todas as categorias de fun~es, existe uma janela de ajuda mais a e a co organizada, bastando para tal escrever o comando helpwin

O comando LOOKFOR
Quando se pretende encontrar uma fun~o para resolver um problema, mas desconhece-se se existir ca a alguma adequada no Matlab, o comando lookfor permite pesquisar as primeiras linhas do\help" de todas fun~es da instala~o do Matlab. Esta pesquisa adequada para resolver a maior parte das co ca e situa~es uma vez que a primeira linha do\help" de uma fun~o contm sempre uma descri~o sumria co ca e ca a da sua funcionalidade. O seguinte exemplo procura pela palavra\inverse". lookfor inverse Se se pretender que a fun~o lookfor pesquise todas as linhas do\help", pode-se utilizar a op~o ca ca -all, tal como o seguinte exemplo ilustra. lookfor -all inverse

Agradecimentos
O autor agradece aos seus colegas Prof. Ana Maria Tom, Prof. Antnio Joaquim Teixeira, e o Prof. Paulo Jorge Ferreira e Prof. Jos Lu Azevedo, pelas sugest~es e correc~es realizadas neste e s o co documento

c 2001, Jos Manuel Neto Vieira (vieira@det.ua.pt) e http://www.ieeta.pt/~vieira/MatlabNumInstante.pdf O \Matlab num Instante" pode ser distribudo sujeito s seguintes restri~es: a co O seu contedo n~o pode ser alterado. u a N~o pode ser utilizado (no todo ou em parte) na venda ou promo~o de qualquer produto ou a ca documento.

Som e Imagem no Matlab . . . . . . . . Sinais de Audio . . . . . . . . . . . . . . Imagens . . . . . . . . . . . . . . . . . . Constru~o de cdigo eciente com o Matlab ca o Reserva de espao para variveis . . . . c a Vectoriza~o de algoritmos . . . . . . . . ca

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

22 22 23 23 24 25

Contedo u
Introdu~o . . . . . . . . . . . . . . ca O que o Matlab? . . . . . . . e Ajuda . . . . . . . . . . . . . . . . . O comando HELP . . . . . . . O comando LOOKFOR . . . . O \Help Desk" . . . . . . . . . O sistema Matlab . . . . . . . . Matrizes . . . . . . . . . . . . . . . . Cria~o de matrizes . . . . . . ca Indices . . . . . . . . . . . . . . O operador \:" . . . . . . . . . Express~es . . . . . . . . . . . . . . o Variveis . . . . . . . . . . . . . a Nmeros . . . . . . . . . . . . . u Operadores . . . . . . . . . . . Fun~es . . . . . . . . . . . . . co Express~es . . . . . . . . . . . . o Polinmios . . . . . . . . . . . o Manipula~o de matrizes . . . . . . . ca Cria~o de matrizes . . . . . . ca Concatena~o de matrizes . . . ca Remo~o de colunas e linhas . . ca Grcos . . . . . . . . . . . . . . . . a Cria~o de grcos . . . . . . . ca a Grcos de variveis complexas a a Visualiza~o de fun~es de duas ca co O ambiente Matlab . . . . . . . . . . Gest~o de variveis . . . . . . . a a O comando format . . . . . . . Supress~o de resultados . . . . a Edi~o de comandos . . . . . . ca Directrios e cheiros . . . . . o Os comandos LOAD e SAVE . Ficheiros de comandos . . . . . Tpicos sobre matrizes . . . . . . . . o Algebra linear . . . . . . . . . . Opera~es elemento-a-elemento co Fun~es estat co sticas . . . . . . . Expans~o escalar . . . . . . . . a Indices lgicos . . . . . . . . . . o Programa~o em Matlab . . . . . . . ca A instru~o IF . . . . . . . . . ca A instru~o FOR . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . variveis a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 4 5 5 5 5 6 6 7 7 7 8 8 8 9 10 10 10 11 12 12 13 14 14 14 15 15 15 16 16 17 17 17 18 19 20 20 21 21 21

Matlab num Instante


Vers~o 1.1 a

Jos Manuel Neto Vieira e Departamento de Electrnica e Telecomunica~es o co da Universidade de Aveiro 19 de Setembro de 2001

Você também pode gostar