15.05.2015 Views

manual de introdução ao matlab - Escola Superior Náutica Infante D ...

manual de introdução ao matlab - Escola Superior Náutica Infante D ...

manual de introdução ao matlab - Escola Superior Náutica Infante D ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ESCOLA NÁUTICA INFANTE D. HENRIQUE<br />

DEPARTAMENTO DE MÁQUINAS MARÍTIMAS<br />

MANUAL<br />

DE INTRODUÇÃO<br />

AO<br />

MATLAB<br />

Por:<br />

Prof. Luis Fernan<strong>de</strong>s Mendonça<br />

E.N.I.D.H. - 2003/2004


CAPÍTULO<br />

1<br />

INTRODUÇÃO AO<br />

MATLAB<br />

O MATLAB é um software interactivo constituído por um conjunto <strong>de</strong> ferramentas<br />

matemáticas que proporcionam uma gran<strong>de</strong> ajuda nos cálculos <strong>de</strong> engenharia. Neste<br />

software as matrizes assumem um papel fundamental.<br />

O nome MATLAB advém da combinação <strong>de</strong> 2 palavras, MATrix LABoratory.<br />

Inicialmente escrito em FORTRAN, o MATLAB é hoje inteiramente escrito em<br />

linguagem C, sendo um sistema integrado, incluindo gráficos e macros programáveis.<br />

No Ensino <strong>Superior</strong>, o MATLAB tornou-se uma ferramenta muito importante,<br />

utilizada em diferentes matérias como a álgebra linear e a análise <strong>de</strong> sistemas <strong>de</strong><br />

controlo, entre outras.<br />

Na indústria, o MATLAB é utilizado na procura e na resolução <strong>de</strong> problemas práticos<br />

<strong>de</strong> engenharia.<br />

PLANO DO CAPÍTULO<br />

1.1 – Command Window<br />

1.2 – Operações Aritméticas<br />

1.3 – Variáveis em MATLAB<br />

1.4 – Comentários e Pontuação<br />

1.5 – Números Complexos<br />

1.6 – Funções Matemáticas<br />

1.7 – Ficheiros Script ou m-files<br />

1.8 – Como Encontrar Ajuda no MATLAB<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.1


1.1 COMMAND WINDOW<br />

Quando iniciamos o MATLAB aparece-nos uma janela, <strong>de</strong>signada por Command window,<br />

através da qual iremos fazer a interacção com o programa. Nela aparece, além <strong>de</strong> uma barra<br />

<strong>de</strong> menus, o símbolo » (prompt), que nos indica que o MATLAB está pronto para executar as<br />

operações e instruções por nós introduzidas.<br />

Commands to get started: intro, <strong>de</strong>mo, help help<br />

Commands for more information: help, whatsnew, info, subscribe<br />

»<br />

No quadro seguinte apresentam-se alguns comandos muito utilizados:<br />

Command Window<br />

clc<br />

diary<br />

diary nome_ficheiro<br />

home<br />

more<br />

Limpa o conteúdo do Command window.<br />

Grava o conteúdo do Command window<br />

para um ficheiro <strong>de</strong> texto chamado diary.<br />

Grava tudo o que se passa durante uma<br />

sessão (excepto gráficos) para o ficheiro<br />

escolhido. Se <strong>de</strong>pois escrevermos diary off<br />

o MATLAB interrompe a gravação do que<br />

se passa. Se introduzirmos o comando diary<br />

on o MATLAB retoma a gravação.<br />

Move o cursor para o canto superior<br />

esquerdo.<br />

Obriga os dados a saírem para o ecrã página<br />

a página. (more on e more off)<br />

O comando more(n) obriga à saída <strong>de</strong> n<br />

linhas por ecrã.<br />

1.2 OPERAÇÕES ARITMÉTICAS<br />

O MATLAB possui todas as operações básicas da matemática po<strong>de</strong>ndo ser utilizado com<br />

uma simples máquina <strong>de</strong> calcular. Aqui estão alguns exemplos:<br />

» 56/8<br />

ans =<br />

7<br />

» 8\56<br />

ans =<br />

7<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.2


» 4+2<br />

ans =<br />

6<br />

» 4*250 + 2*100<br />

ans =<br />

1200<br />

OPERAÇÕES ARITMÉTICAS<br />

OPERAÇÃO SÍMBOLO EXEMPLO<br />

Adição, a + b + 5 + 3<br />

Subtracção, a – b - 23 - 12<br />

Multiplicação, a . b * 3.14 * 0.85<br />

Divisão, a ÷ b / ou \ 56/8 = 8\56<br />

Potenciação, a b ^ 5^2<br />

As regras <strong>de</strong> precedência utilizadas na avaliação das expressões são as seguintes: as<br />

expressões são avaliadas da esquerda para a direita, em que a operação <strong>de</strong> maior precedência<br />

é a potenciação, <strong>de</strong>pois vêm as operações <strong>de</strong> multiplicação e divisão, e por fim as operações<br />

<strong>de</strong> adição e subtracção.<br />

Utilizam-se parênteses para alterar as precedências e o modo como as operações são<br />

avaliadas.<br />

FORMATOS NUMÉRICOS<br />

No MATLAB po<strong>de</strong>mos apresentar os números segundo diversos formatos. Aqui estão<br />

alguns exemplos:<br />

» preco=1/3<br />

preco =<br />

0.3333<br />

» format long preco % Utiliza 16 dígitos<br />

» preco<br />

preco =<br />

0.33333333333333<br />

» format short e % Utiliza 5 dígitos mais expoente<br />

» preco<br />

preco =<br />

3.3333e-001<br />

» format long e % Utiliza 16 dígitos mais expoente<br />

» preco<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.3


preco =<br />

3.333333333333333e-001<br />

» format hex % O número é escrito em formato hexa<strong>de</strong>cimal<br />

» preco<br />

preco =<br />

3fd5555555555555<br />

» format bank % Escreve o número utilizando duas casas <strong>de</strong>cimais<br />

» preco<br />

preco =<br />

0.33<br />

» format rat % Utilizando fracções<br />

» preco<br />

preco =<br />

1/3<br />

» format short % Utiliza 5 dígitos<br />

» preco<br />

preco =<br />

0.3333<br />

Nota: A representação interna dos números não é alterada quando se utilizam estes<br />

comandos<br />

1.3 VARIÁVEIS EM MATLAB<br />

Consi<strong>de</strong>rando o exemplo da página anterior vamos mostrar que po<strong>de</strong>mos efectuar os<br />

mesmos cálculos utilizando variáveis:<br />

» ca<strong>de</strong>rnos=4<br />

ca<strong>de</strong>rnos =<br />

4<br />

» canetas=2<br />

canetas =<br />

2<br />

» itens=ca<strong>de</strong>rnos+canetas<br />

itens =<br />

6<br />

» custo_total=ca<strong>de</strong>rnos*250+canetas*100<br />

custo_total =<br />

1200<br />

Quando se atribuem nomes às variáveis há que ter em conta as seguintes observações:<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.4


• Ter cuidado com a utilização <strong>de</strong> letras maiúsculas e minúsculas.<br />

Ca<strong>de</strong>rno, ca<strong>de</strong>rno e cadErno - são 3 variáveis diferentes para o MATLAB.<br />

• As variáveis <strong>de</strong>vem ter no máximo 19 caracteres pois o MATLAB ignora os restantes<br />

caracteres.<br />

» equetalestenomeparaumavariavel=2<br />

equetalestenomepara =<br />

2<br />

• As variáveis não po<strong>de</strong>m ter símbolos <strong>de</strong> pontuação. É permitido utilizar o símbolo “ _<br />

”.<br />

» e_que_tal_este_nome_para_uma_variavel =0<br />

e_que_tal_este_nome =<br />

0<br />

Variáveis Especiais<br />

Variável on<strong>de</strong> são guardados, por <strong>de</strong>feito, os<br />

Ans<br />

resultados das operações - ans é o diminutivo<br />

<strong>de</strong> ANSwer.<br />

pi Valor <strong>de</strong> π = 3.1416.<br />

Eps<br />

Flops<br />

Unida<strong>de</strong> <strong>de</strong> arredondamento da máquina, i.e.,<br />

o menor valor que adicionado a 1 representa<br />

um número maior que 1<br />

Contador do número <strong>de</strong> operações efectuadas.<br />

Estamos a falar <strong>de</strong> operações em vírgula<br />

flutuante.<br />

Inf Representa +∞, isto é, 1/0<br />

NaN<br />

Not-a-Number, símbolo que representa 0/0 ou<br />

outra expressão não <strong>de</strong>terminada.<br />

MATLAB WORKSPACE<br />

O MATLAB recorda-se <strong>de</strong> todos os comandos que vão sendo introduzidos <strong>ao</strong> longo <strong>de</strong><br />

uma sessão, permitindo que os utilizadores repitam ou aproveitem comandos inseridos<br />

noutras alturas. De igual modo, todas as variáveis que vão sendo <strong>de</strong>finidas <strong>ao</strong> longo da sessão<br />

ficam disponíveis para serem utilizadas em ocasiões futuras.<br />

O “local” on<strong>de</strong> esta informação está guardada <strong>de</strong>signa-se por MATLAB workspace.<br />

De seguida enumeram-se algumas das coisas que po<strong>de</strong>mos fazer, relacionadas com o<br />

workspace:<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.5


• Po<strong>de</strong>mos utilizar as teclas ↑ e ↓ para rever os comandos anteriormente inseridos. Para<br />

alterar a estrutura <strong>de</strong> um <strong>de</strong>sses comando socorrermo-nos das teclas → e ←.<br />

• Se quisermos obter uma lista com as variáveis presentes no workspace basta utilizar o<br />

comando who. Também po<strong>de</strong>mos utilizar o comando whos que juntamente com os<br />

nomes das variáveis refere, também, qual a memória que cada uma ocupa assim como a<br />

sua dimensão - o que é muito útil se as variáveis forem matrizes.<br />

» who<br />

Your variables are:<br />

ans canetas itens<br />

ca<strong>de</strong>rnos custo_total<br />

• Também é possível gravar o conteúdo do Workspace para um ficheiro. Para isso<br />

po<strong>de</strong>mos utilizar o menu [File] [Save Workspace As…] ou utilizar os comandos<br />

save e load. As variáveis presentes no Workspace po<strong>de</strong>m ser gravadas em formato<br />

binário ou formato ascii.<br />

Se utilizarmos apenas o comando save sem especificar qual o nome do ficheiro em que<br />

preten<strong>de</strong>mos guardar a informação, ela será gravado no ficheiro <strong>matlab</strong>.mat.<br />

(Para obter uma explicação mais completa <strong>de</strong>ste comando escreva help save)<br />

» save<br />

Saving to: <strong>matlab</strong>.mat<br />

» save meu<br />

% grava as variáveis em format binário para o ficheiro meu.mat<br />

» save dados canetas ca<strong>de</strong>rnos custo_total -ascii<br />

% as variáveis foram gravadas em formato ascii<br />

% po<strong>de</strong>mos escolher quais as variáveis que queremos gravar<br />

• Po<strong>de</strong>mos remover alguma ou todas as variáveis presentes no Workspace utilizando o<br />

comando clear.<br />

» who<br />

Your variables are:<br />

ans<br />

ca<strong>de</strong>rnos<br />

canetas<br />

custo_total<br />

equetalestenomepara<br />

itens<br />

preco<br />

e_que_tal_este_nome<br />

» clear ca<strong>de</strong>rnos<br />

» who<br />

Your variables are:<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.6


ans<br />

canetas<br />

custo_total<br />

e_que_tal_este_nome<br />

equetalestenomepara<br />

itens<br />

preco<br />

» % se escrevermos o comando clear sem nenhum argumento o MATLAB apaga<br />

todas as variaveis<br />

1.4 COMENTÁRIOS E PONTUAÇÃO<br />

Para introduzir comentários <strong>de</strong>ve utilizar-se o símbolo %.<br />

» canetas=10 % Número <strong>de</strong> canetas%<br />

canetas =<br />

10<br />

» % tudo o que está para a frente <strong>de</strong>ste símbolo % é ignorado<br />

Quando inserimos um comando no MATLAB ele produz um eco, i.e., surge uma<br />

confirmação da operação efectuada no ecrã. Se não quisermos que tal aconteça <strong>de</strong>vemos<br />

utilizar o símbolo ;.<br />

» canetas=10 % este comando produz eco<br />

canetas =<br />

10<br />

» canetas=10; % este comando não produz eco<br />

»<br />

Po<strong>de</strong>mos utilizar a virgula (,) para introduzir vários comando na mesma linha<br />

» canetas=3, vidros=20, lapis=4<br />

canetas =<br />

3<br />

vidros =<br />

20<br />

lapis =<br />

4<br />

Se quisermos concluir um comando na linha seguinte <strong>de</strong>vemos utilizar o símbolo ….<br />

» itens=canetas+ ...<br />

lapis+vidros<br />

itens =<br />

27<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.7


% os ... dizem <strong>ao</strong> Matlab que o resto do comando segue na próxima linha.<br />

» % n<strong>ao</strong> po<strong>de</strong> ser utilizado na continuação <strong>de</strong> comentários nem <strong>de</strong> nomes <strong>de</strong><br />

variáveis.<br />

1.5 NÚMEROS COMPLEXOS<br />

No MATLAB a <strong>de</strong>finição <strong>de</strong> números complexos faz-se <strong>de</strong> uma maneira natural, apesar<br />

disso, eles po<strong>de</strong>m ser <strong>de</strong>finidos utilizando vários métodos:<br />

• Definição <strong>de</strong> um complexo utilizando o i para i<strong>de</strong>ntificar a parte imaginária.<br />

» c1=1-2i<br />

c1 =<br />

1.0000 - 2.0000i<br />

• Definição <strong>de</strong> um complexo utilizando o j para i<strong>de</strong>ntificar a parte imaginária.<br />

» c1=1-2j % o j também serve<br />

c1 =<br />

1.0000 - 2.0000i<br />

• Definição <strong>de</strong> um complexo utilizando o sqrt(-1) para i<strong>de</strong>ntificar a parte imaginária.<br />

» c2=3*(2-sqrt(-1)*3)<br />

c2 =<br />

6.0000 - 9.0000I<br />

• Definição <strong>de</strong> um complexo em função <strong>de</strong> outro complexo.<br />

» c4=6+sin(.5)*i % neste caso foi necessário por sin(.5)*I<br />

c4 =<br />

6.0000 + 0.4794i<br />

• Sempre que aparecem raízes <strong>de</strong> números negativos então o MATLAB consi<strong>de</strong>ra esse<br />

valor como um complexo.<br />

» c3=sqrt(-2)<br />

c3 =<br />

0 + 1.4142i<br />

As operações aritméticas entre complexos são escritas <strong>de</strong> forma semelhante <strong>ao</strong> que se fazia<br />

para os reais.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.8


» c6=c1+c2<br />

c6 =<br />

7.0000 -11.0000i<br />

» c7=(c1+c2)/c3<br />

c7 =<br />

-7.7782 -4.9497i<br />

Para o MATLAB o resultado <strong>de</strong> uma operação entre números complexos é um complexo.<br />

» c8=i^2 % o quadrado <strong>de</strong> i é o real -1<br />

c8 =<br />

-1.0000 + 0.0000i<br />

Apesar <strong>de</strong> i 2 = -1 ser um real o MATLAB mantêm a parte imaginária do número igual a<br />

zero. Para eliminar a parte imaginária <strong>de</strong> um número complexo utiliza-se a função real.<br />

» c9=real(c6)<br />

c9 =<br />

7<br />

Apresentam-se, agora, as funções utilizadas para estabelecer a correspondência entre a<br />

representação algébrica (z = a+ bi) e a representação polar ( z = r (cos θ + sen θ ), em que r =<br />

|z|):<br />

• A função abs <strong>de</strong>termina o valor absoluto <strong>de</strong> um complexo.<br />

» c1<br />

c1 =<br />

1.0000 - 2.0000i<br />

» mag_c1=abs(c1)<br />

mag_c1 =<br />

2.2361<br />

• A função angle <strong>de</strong>termina o argumento <strong>de</strong> um complexo em radianos.<br />

» angle_c1=angle(c1)<br />

angle_c1 =<br />

-1.1071<br />

» <strong>de</strong>g_c1=angle_c1*180/pi<br />

<strong>de</strong>g_c1 =<br />

-63.4349<br />

Com estas duas funções conseguimos obter as coor<strong>de</strong>nadas polares que <strong>de</strong>sejamos.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.9


abs(z) - obtemos o valor do módulo r = |z| =<br />

2<br />

a +<br />

b<br />

2<br />

−<br />

angle(z) - obtemos o valor do argumento <strong>de</strong> z, θ = tan 1 b<br />

( )<br />

a = r cosθ , b = r sinθ<br />

a<br />

Outras duas funções utilizadas com números complexos são:<br />

• A função conj dá-nos o complexo conjugado <strong>de</strong> um número complexo.<br />

» conj(c1)<br />

ans =<br />

1.0000 + 2.0000i<br />

• A função imag dá-nos a parte imaginária <strong>de</strong> um complexo.<br />

» imag_c1=imag(c1)<br />

imag_c1 =<br />

-2<br />

• A função real dá-nos a parte real <strong>de</strong> um imaginário.<br />

» real_c1=real(c1)<br />

real_c1 =<br />

1<br />

1.6 FUNÇÕES MATEMÁTICAS<br />

De seguida apresenta-se um quadro com as principais funções matemáticas que o<br />

MATLAB possui.<br />

Alguns exemplos <strong>de</strong> aplicação <strong>de</strong>ssas funções matemáticas são apresentados em seguida:<br />

» x=sqrt(2)/2<br />

x =<br />

0.7071<br />

» y=asin(x)<br />

y =<br />

0.7854<br />

» y_<strong>de</strong>g=y*180/pi<br />

y_<strong>de</strong>g =<br />

45.0000<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.10


TRIGONOMETRICAS<br />

EXPONENTIAL<br />

sin Seno exp Exponencial<br />

sinh Seno hiperbólico log Logaritmo natural<br />

asin Arco cujo o seno é log10 Logaritmo <strong>de</strong> base 10<br />

asinh Arco cujo seno hiperbólico é sqrt Raiz quadrada<br />

cos Co-seno<br />

cosh Co-seno hiperbólico<br />

acos Arco cujo o co-seno é<br />

acosh Arco cujo co-seno hiperbólico é COMPLEXAS<br />

tan Tangente abs Valor Absoluto<br />

tanh Tangente hiperbólica angle Argumento (em radianos)<br />

atan Arco cuja tangente é conj Complexo conjugado<br />

atanh Arco cuja tangente hiperbólica é imag Parte imaginaria<br />

sec Secante real Parte real<br />

sech Secante hiperbólica<br />

asec Arco cujo co-seno hiperbólico é<br />

asech Arco cujo co-seno hiperbólico é<br />

csc Co-secante<br />

csch Co-secante hiperbólica<br />

acsc Arco cuja co-secante é NUMÉRICAS<br />

acsch Arco cuja co-secante hiperbólica é round Arredonda para o inteiro<br />

cot Co-tangente mais próximo<br />

coth Co-tangente hiperbólica rem Resto da divisão<br />

acot Arco cuja co-tangente é sign Sinal <strong>de</strong> um número<br />

acoth Arco cuja co-tangente hiperbólica é<br />

» z=rem(23,4)<br />

z =<br />

3<br />

» z1=23/4<br />

z1 =<br />

5.7500<br />

» a=exp(c1)<br />

a =<br />

-1.1312 - 2.4717i<br />

» sign(1.2)<br />

ans =<br />

1 % a resposta é 1 pois o número é positivo<br />

» sign(-23.4)<br />

ans =<br />

-1 % a resposta é –1 quando o número é negativo<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.11


» sign(0)<br />

ans =<br />

0<br />

1.7 FICHEIROS SCRIPT OU M-FILES<br />

Quando o número <strong>de</strong> comandos a serem introduzidos é muito gran<strong>de</strong> e também quando<br />

queremos reavaliar as expressões entretanto introduzidas torna-se mais prático utilizar<br />

ficheiros <strong>de</strong> texto com comandos <strong>de</strong> MATLAB <strong>de</strong>nominados Script files (ou m-files).<br />

Também po<strong>de</strong>mos utilizar m-files para <strong>de</strong>finir novas funções (function m-file) mas a<br />

abordagem <strong>de</strong>ste tópico será feita no Capítulo 4. Por agora, apenas, vamos consi<strong>de</strong>rar os m-<br />

files como uma lista <strong>de</strong> comandos ou instruções <strong>de</strong> MATLAB.<br />

Para criarmos um novo script (ou m-file) basta procurar o comando [New] localizado no<br />

menu [File] e seguidamente escolher [M-file].<br />

Como um m-file é um ficheiro <strong>de</strong> texto então, po<strong>de</strong> ser feito em qualquer editor <strong>de</strong> texto –<br />

o ficheiro tem <strong>de</strong> ter a extensão .m.<br />

Para executar um m-file basta introduzir o seu nome, por exemplo:<br />

» exemplo<br />

O MATLAB procura o ficheiro exemplo.m e executa todos os comandos como se eles<br />

fossem inseridos directamente no command window.<br />

Ao utilizar m-files tenha em atenção que:<br />

• Os comandos presentes no m-file têm acesso às variáveis anteriormente <strong>de</strong>finidas no<br />

workspace.<br />

• As variáveis <strong>de</strong>finidas no m-file passam a fazer parte do workspace e po<strong>de</strong>m ser<br />

utilizadas após a execução do m-file.<br />

• O comando echo on diz <strong>ao</strong> MATLAB para fazer o eco dos comandos que vai lendo e<br />

executando. O comando echo off faz o contrário.<br />

Exemplo <strong>de</strong> um m-file:<br />

%Exemplo1 – m-files<br />

ca<strong>de</strong>rnos=4;<br />

canetas=input(' Introduza o nº <strong>de</strong> canetas > ');<br />

itens=ca<strong>de</strong>rnos+canetas<br />

custo_total=ca<strong>de</strong>rnos*250+canetas*100<br />

A execução <strong>de</strong>ste m-file produz os seguintes resultados:<br />

» exemplo1<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.12


Introduza o nº <strong>de</strong> canetas > 4<br />

itens =<br />

8<br />

custo_total =<br />

1400<br />

Reparar na utilização da função input. Esta função po<strong>de</strong> receber como valor <strong>de</strong> entrada<br />

qualquer expressão matemática que seja equivalente <strong>ao</strong> valor que se preten<strong>de</strong> introduzir.<br />

» exemplo1<br />

Introduza o nº <strong>de</strong> canetas > round(sqrt(13))+3<br />

itens =<br />

11<br />

custo_total =<br />

1700<br />

Aqui está um quadro com algumas das funções úteis na construção <strong>de</strong> m-files.<br />

FUNÇÕES PARA OS M-FILES<br />

disp(variável)<br />

echo<br />

input<br />

keyboard<br />

pause(n)<br />

waitforbuttonpress<br />

Mostra o valor <strong>de</strong> uma variável sem apresentar<br />

o seu nome.<br />

Controla o eco dos comandos, presentes no<br />

m-file, que vão sendo executados.<br />

(echo on e echo off)<br />

Espera pela introdução <strong>de</strong> um valor pelo<br />

utilizador.<br />

Interrompe a execução <strong>de</strong> um m-file dando<br />

liberda<strong>de</strong> <strong>ao</strong> utilizador para executar outros<br />

comandos. Retoma-se a execução do m-file<br />

fazendo return..<br />

Há uma pausa <strong>de</strong> n segundos na execução.<br />

Existe uma pausa na execução do m-file até<br />

que se carregue numa tecla do rato ou do<br />

teclado.<br />

Exemplo <strong>de</strong> um m-file em que se utiliza o comando keyboard :<br />

%Exemplo2 - .m files<br />

ca<strong>de</strong>rnos=4;<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.13


canetas=2;<br />

keyboard<br />

itens=ca<strong>de</strong>rnos+canetas<br />

custo_total=ca<strong>de</strong>rnos*250+canetas*100<br />

A execução <strong>de</strong>ste m-file produz o seguinte resultado:<br />

» exemplo2<br />

K»<br />

K» who<br />

Your variables are:<br />

a<br />

angle_c1<br />

ans<br />

c1<br />

c2<br />

c3<br />

c4<br />

c6<br />

c7<br />

c8<br />

ca<strong>de</strong>rnos<br />

canetas<br />

custo_total<br />

<strong>de</strong>g_c1<br />

e_que_tal_este_nome<br />

K» return<br />

itens =<br />

6<br />

custo_total =<br />

1200<br />

equetalestenomepara<br />

imag_c1<br />

itens<br />

lapis<br />

mag_c1<br />

preco<br />

real_c1<br />

vidros<br />

x<br />

y<br />

y_<strong>de</strong>g<br />

z<br />

z1<br />

1.8 COMO ENCONTRAR AJUDA NO MATLAB<br />

Existem dois comandos que permitem encontrar ajuda no MATLAB: O comando help e o<br />

comando lookfor.<br />

Um método equivalente <strong>ao</strong> comando help baseia-se na utilização do menu [Help].<br />

» help<br />

HELP topics:<br />

toolbox\local<br />

<strong>matlab</strong>\datafun<br />

<strong>matlab</strong>\elfun<br />

ENIDH/DMM – Luis M. Mendonça<br />

- Local function library.<br />

- Data analysis and Fourier transform functions.<br />

- Elementary math functions.<br />

Pág.14


<strong>matlab</strong>\elmat<br />

<strong>matlab</strong>\funfun<br />

<strong>matlab</strong>\general<br />

<strong>matlab</strong>\color<br />

<strong>matlab</strong>\graphics<br />

<strong>matlab</strong>\iofun<br />

<strong>matlab</strong>\lang<br />

<strong>matlab</strong>\matfun<br />

<strong>matlab</strong>\ops<br />

<strong>matlab</strong>\plotxy<br />

<strong>matlab</strong>\plotxyz<br />

<strong>matlab</strong>\polyfun<br />

<strong>matlab</strong>\sounds<br />

<strong>matlab</strong>\sparfun<br />

<strong>matlab</strong>\specfun<br />

<strong>matlab</strong>\specmat<br />

<strong>matlab</strong>\strfun<br />

<strong>matlab</strong>\d<strong>de</strong><br />

<strong>matlab</strong>\<strong>de</strong>mos<br />

simulink\simulink<br />

simulink\blocks<br />

simulink\sim<strong>de</strong>mos<br />

toolbox\signal<br />

toolbox\i<strong>de</strong>nt<br />

nnet\examples<br />

nnet\nnet<br />

toolbox\robust<br />

mutools\commands<br />

mutools\subs<br />

toolbox\optim<br />

toolbox\splines<br />

toolbox\control<br />

toolbox\mmle3<br />

toolbox\wintools<br />

- Elementary matrices and matrix manipulation.<br />

- Function functions - nonlinear numerical methods.<br />

- General purpose commands.<br />

- Color control and lighting mo<strong>de</strong>l functions.<br />

- General purpose graphics functions.<br />

- Low-level file I/O functions.<br />

- Language constructs and <strong>de</strong>bugging.<br />

- Matrix functions - numerical linear algebra.<br />

- Operators and special characters.<br />

- Two dimensional graphics.<br />

- Three dimensional graphics.<br />

- Polynomial and interpolation functions.<br />

- Sound processing functions.<br />

- Sparse matrix functions.<br />

- Specialized math functions.<br />

- Specialized matrices.<br />

- Character string functions.<br />

- DDE Toolbox.<br />

- Demonstrations and samples.<br />

- SIMULINK mo<strong>de</strong>l analysis and construction functions.<br />

- SIMULINK block library.<br />

- SIMULINK <strong>de</strong>monstrations and samples.<br />

- Signal Processing Toolbox.<br />

- System I<strong>de</strong>ntification Toolbox.<br />

- Neural Network Toolbox examples.<br />

- Neural Network Toolbox.<br />

- Robust Control Toolbox.<br />

- Mu-Analysis and Synthesis Toolbox.<br />

- Mu-tools examples and internal routines.<br />

- Optimization Toolbox.<br />

- Spline Toolbox.<br />

- Control System Toolbox.<br />

- MMLE3 I<strong>de</strong>ntification Toolbox.<br />

- GUI tools for MATLAB for MS Windows.<br />

For more help on directory/topic, type "help topic".<br />

Se já soubermos aquilo que procuramos po<strong>de</strong>mos utilizar o comando help <strong>de</strong> uma forma<br />

mais precisa.<br />

» help general<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.15


General purpose commands.<br />

Managing commands and functions.<br />

help - On-line documentation.<br />

what - Directory listing of M-, MAT- and MEX-files.<br />

type - List M-file.<br />

lookfor - Keyword search through the HELP entries.<br />

which - Locate functions and files.<br />

<strong>de</strong>mo - Run <strong>de</strong>mos.<br />

path - Control MATLAB's search path.<br />

Managing variables and the workspace.<br />

who<br />

- List current variables.<br />

whos - List current variables, long form.<br />

load - Retrieve variables from disk.<br />

save - Save workspace variables to disk.<br />

clear - Clear variables and functions from memory.<br />

pack - Consolidate workspace memory.<br />

size - Size of matrix.<br />

length - Length of vector.<br />

disp - Display matrix or text.<br />

Working with files and the operating system.<br />

cd<br />

- Change current working directory.<br />

dir<br />

- Directory listing.<br />

<strong>de</strong>lete - Delete file.<br />

getenv - Get environment value.<br />

! - Execute operating system command.<br />

unix - Execute operating system command & return result.<br />

diary - Save text of MATLAB session.<br />

Controlling the command window.<br />

cedit - Set command line edit/recall facility parameters.<br />

clc<br />

- Clear command window.<br />

home - Send cursor home.<br />

format - Set output format.<br />

echo - Echo commands insi<strong>de</strong> script files.<br />

more - Control paged output in command window.<br />

Starting and quitting from MATLAB.<br />

quit - Terminate MATLAB.<br />

startup - M-file executed when MATLAB is invoked.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.16


<strong>matlab</strong>rc<br />

- Master startup M-file.<br />

General information.<br />

info - Information about MATLAB and The MathWorks, Inc.<br />

subscribe - Become subscribing user of MATLAB.<br />

hostid - MATLAB server host i<strong>de</strong>ntification number.<br />

whatsnew - Information about new features not yet documented.<br />

ver<br />

- MATLAB, SIMULINK, and TOOLBOX version information.<br />

» help sqrt<br />

SQRT Square root.<br />

SQRT(X) is the square root of X. Complex results are<br />

produced if X is not positive.<br />

See also SQRTM.<br />

No caso <strong>de</strong> o MATLAB não encontrar informação sobre o tópico pretendido obtemos uma<br />

mensagem <strong>de</strong>ste tipo.<br />

» help controladores<br />

controladores not found.<br />

Se preten<strong>de</strong>rmos procurar comandos que estejam relacionados com <strong>de</strong>terminada palavra ou<br />

conceito po<strong>de</strong>mos utiliza a instrução lookfor<br />

» lookfor complex<br />

CPLXPAIR Sort numbers into complex conjugate pairs.<br />

CONJ Complex conjugate.<br />

IMAG Complex imaginary part.<br />

REAL Complex real part.<br />

CDF2RDF Complex diagonal form to real block diagonal form.<br />

RSF2CSF Real block diagonal form to complex diagonal form.<br />

CPLXDEMO Maps of functions of a complex variable.<br />

CPLXGRID Polar coordinate complex grid.<br />

CPLXMAP Plot a function of a complex variable.<br />

GRAFCPLX Demonstrates complex function plots in MATLAB.<br />

LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex<br />

CCEPS Complex cepstrum.<br />

PHASE Computes the phase of a complex vector<br />

mixedalg.m: % [MULT,XQO] = MIXEDALG(T,XQI,K) finds the existence of a<br />

complex,diagonal<br />

DSORT Sort complex discrete eigenvalues in <strong>de</strong>scending or<strong>de</strong>r.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.17


ESORT Sort complex continuous eigenvalues in <strong>de</strong>scending or<strong>de</strong>r<br />

LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.18


CAPÍTULO<br />

2<br />

MATRIZES E<br />

VECTORES<br />

PLANO DO CAPÍTULO<br />

2.1 – Definição <strong>de</strong> Vectores<br />

2.2 – En<strong>de</strong>reçamento <strong>de</strong> Elementos <strong>de</strong> Um Vector<br />

2.3 – Definição <strong>de</strong> Matrizes<br />

2.4 – Operações com Matrizes<br />

2.5 – Operações com Arrays<br />

2.6 – Manipulação dos Elementos <strong>de</strong> uma Matriz<br />

2.7 – Matrizes Especiais e Funções com Matrizes<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.19


2.1 DEFINIÇÃO DE VECTORES<br />

Quando se preten<strong>de</strong> introduzir um vector <strong>de</strong>ve fazer-se:<br />

» a=[1 2 3 4 5 6]<br />

a =<br />

1 2 3 4 5 6<br />

Também é possível <strong>de</strong>finir um novo vector à custa <strong>de</strong> outro já existente:<br />

» x= [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]<br />

x =<br />

Columns 1 through 7<br />

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850<br />

Columns 8 through 11<br />

2.1991 2.5133 2.8274 3.1416<br />

» y=sin(x)<br />

y =<br />

Columns 1 through 7<br />

0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511<br />

Columns 8 through 11<br />

0.8090 0.5878 0.3090 0.0000<br />

Exemplo <strong>de</strong> um vector <strong>de</strong> números complexos. (Consegue notar a modificação que se<br />

produz com a introdução dos parênteses)<br />

» u=[1 -2i 3 4 5+6i]<br />

u =<br />

Columns 1 through 4<br />

1.0000 0 - 2.0000i 3.0000 4.0000<br />

Column 5<br />

5.0000 + 6.0000i<br />

» v=[(1 -2i) 3 4 5+6i]<br />

v =<br />

1.0000 - 2.0000i 3.0000 4.0000 5.0000 +<br />

6.0000i<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.20


Na <strong>de</strong>finição <strong>de</strong> vectores um símbolo muito utilizado é o “ : ”. Aqui estão alguns exemplos<br />

da sua utilização.<br />

» x=1:5 % começa em 1 e termina em 5 com incrementos <strong>de</strong> 1<br />

x =<br />

1 2 3 4 5<br />

Se preten<strong>de</strong>rmos utilizar um incremento diferente fazemos:<br />

» y=0:pi/4:pi % começa em 0 e termina em pi com incrementos <strong>de</strong> pi/4<br />

y =<br />

0 0.7854 1.5708 2.3562 3.1416<br />

Também é possível utilizar incrementos negativos:<br />

» z=6:-1:1<br />

z =<br />

6 5 4 3 2 1<br />

Outra maneira <strong>de</strong> <strong>de</strong>finir o vector y=sin(x) é a seguinte.<br />

» y1=(0:0.1:1)*pi<br />

y1 =<br />

Columns 1 through 7<br />

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850<br />

Columns 8 through 11<br />

2.1991 2.5133 2.8274 3.1416<br />

Existem duas funções que po<strong>de</strong>mos utilizar para criar vectores.<br />

» l=linspace(0,pi,11)<br />

l =<br />

Columns 1 through 7<br />

0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850<br />

Columns 8 through 11<br />

2.1991 2.5133 2.8274 3.1416<br />

» g=logspace(0,2,11)<br />

g =<br />

Columns 1 through 7<br />

1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489<br />

Columns 8 through 11<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.21


25.1189 39.8107 63.0957 100.0000<br />

Métodos para Definir Vectores<br />

x=[2 2*pi sqrt(2) 2-3j]<br />

x=n i :n f<br />

x=n i :i:n f<br />

x=linspace(primeiro,ultimo,n)<br />

x=logspace(primeiro,ultimo,n)<br />

Cria o vector x com os elementos<br />

especificados. (Os elementos po<strong>de</strong>m ser<br />

expressões ou números complexos).<br />

Cria um vector começando no número n i e<br />

terminando em n f , com incrementos <strong>de</strong> 1.<br />

Cria um vector começando no número n i e<br />

terminando em n f , com incrementos <strong>de</strong> i.<br />

Cria um vector começando no primeiro e<br />

terminando no último, com n elementos.<br />

Cria um vector começando em 10 primeiro e<br />

terminando em 10 último , com n elementos.<br />

2.2 ENDEREÇAMENTO DE ELEMENTOS DE UM VECTOR<br />

Existem vários métodos <strong>de</strong> en<strong>de</strong>reçar (ou <strong>de</strong> ace<strong>de</strong>r) <strong>ao</strong>s elementos <strong>de</strong> um vector.<br />

• Indicando a posição do elemento no vector<br />

» y(3) % queremos o terceiro elemento<br />

ans =<br />

1.5708<br />

» y(5) % queremos o quinto elemento<br />

ans =<br />

3.1416<br />

• Utilizando os “ : ”<br />

» z(1:4) % queremos do primeiro até <strong>ao</strong> quarto elemento<br />

ans =<br />

6 5 4 3<br />

• Usando outro vector para extrair os elementos pela or<strong>de</strong>m pretendida<br />

» y([4 2 3 1])<br />

ans =<br />

2.3562 0.7854 1.5708 0<br />

2.3 DEFINIÇÃO DE MATRIZES<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.22


A introdução <strong>de</strong> uma matriz <strong>de</strong>ve ser feita da seguinte forma: A=[1 2 3; 4 5 6; 7 8 9], em<br />

que o símbolo “ ; ” divi<strong>de</strong> as linhas da matriz.<br />

» A=[1 2 3;4 5 6; 7 8 9]<br />

A =<br />

1 2 3<br />

4 5 6<br />

7 8 9<br />

» B=[1;2;3;4;5]<br />

B =<br />

1<br />

2<br />

3<br />

4<br />

5<br />

Po<strong>de</strong>mos criar uma nova matriz adicionando novos elementos a uma matriz já existente.<br />

»C=[A;10 11 12]<br />

C =<br />

1 2 3<br />

4 5 6<br />

7 8 9<br />

10 11 12<br />

2.4 OPERAÇÕES COM MATRIZES<br />

TRANSPOSTA<br />

Para obter a transposta da matriz A e explicitá-la pela matriz T <strong>de</strong>vemos fazer:<br />

» T=A'<br />

T =<br />

1 4 7<br />

2 5 8<br />

3 6 9<br />

Para vectores tudo se passa <strong>de</strong> modo semelhante,<br />

» x=[-1 0 2]'<br />

x =<br />

-1<br />

0<br />

2<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.23


ADIÇÃO E SUBTRACÇÃO<br />

Consi<strong>de</strong>rando os vectores A e B vamos <strong>de</strong>terminar A+B.<br />

» A=[1 2 3;4 5 6; 7 8 9]<br />

A =<br />

7 8 9<br />

» B=[1 4 7; 2 5 8; 3 6 0]<br />

B =<br />

1 4 7<br />

2 5 8<br />

3 6 0<br />

» A+B<br />

ans =<br />

2 6 10<br />

6 10 14<br />

10 14 9<br />

MULTIPLICAÇÃO<br />

A multiplicação <strong>de</strong> matrizes é efectuada utilizando o símbolo “ * ” e tal como acontece nas<br />

operações <strong>de</strong> soma e subtracção há que ter em consi<strong>de</strong>ração as dimensões das matrizes<br />

» X=[-1 0 2]<br />

X =<br />

-1 0 2<br />

» Y=[-2 -1 1]'<br />

Y =<br />

-2<br />

-1<br />

1<br />

» X*Y<br />

ans =<br />

4<br />

» Y*X<br />

ans =<br />

2 0 -4<br />

1 0 -2<br />

-1 0 2<br />

Quando se multiplica uma constante por um vector o resultado é o seguinte:<br />

» pi*X<br />

ans =<br />

-3.1416 0 6.2832<br />

» pi*Y<br />

ans =<br />

-6.2832<br />

-3.1416<br />

3.1416<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.24


DIVISÃO<br />

Existem dois tipos <strong>de</strong> divisão: a divisão à esquerda (A\b) e a divisão à direita (A/b). Po<strong>de</strong>mos<br />

ver qual a diferença entre estes dois tipos <strong>de</strong> divisão através <strong>de</strong> um exemplo.<br />

Consi<strong>de</strong>re o seguinte sistema <strong>de</strong> equações:<br />

⎡ 1<br />

⎢<br />

⎢<br />

4<br />

⎢⎣<br />

7<br />

2<br />

5<br />

8<br />

A<br />

3 ⎤ ⎡ x<br />

6<br />

⎥ ⎢<br />

⎥<br />

.<br />

⎢<br />

x<br />

0 ⎥⎦<br />

⎢⎣<br />

x<br />

. x<br />

1<br />

2<br />

3<br />

⎤<br />

⎥<br />

⎥<br />

⎥⎦<br />

=<br />

=<br />

⎡ 366<br />

⎢<br />

⎢<br />

804<br />

⎢⎣<br />

351<br />

b<br />

⎤<br />

⎥<br />

⎥<br />

⎥⎦<br />

A=[1 2 3; 4 5 6; 7 8 0]<br />

A =<br />

1 2 3<br />

4 5 6<br />

7 8 0<br />

» b=[366;804;351]<br />

b =<br />

366<br />

804<br />

351<br />

Divisão à esquerda ( x = A\b é solução para A * x = b)<br />

» x=A\b<br />

x =<br />

25.0000<br />

22.0000<br />

99.0000<br />

» A*x<br />

ans =<br />

366<br />

804<br />

351<br />

Divisão à direita ( y = A/b é solução para x * A = b)<br />

» y=A/b<br />

??? Error using ==> /<br />

Matrix dimensions must agree.<br />

» x*A<br />

??? Error using ==> *<br />

Inner matrix dimensions must agree.<br />

Devido as dimensões das matrizes não é possível realizar a divisão à direita teria que se<br />

modificar as dimensões <strong>de</strong> b, fazendo a sua transformada por exemplo.<br />

A relação entre estas duas divisões é dada por: A\b = (b’/A’)’<br />

» A\b<br />

ans =<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.25


25.0000<br />

22.0000<br />

99.0000<br />

» (b'/A')'<br />

ans =<br />

25.0000<br />

22.0000<br />

99.0000<br />

Também conseguimos resolver um sistema <strong>de</strong> equações lineares utilizando a função inv para<br />

calcular a inversa <strong>de</strong> uma matriz - x = A -1 * b – antes, porém, <strong>de</strong>vemos verificar se o sistema<br />

tem uma solução única calculando o seu <strong>de</strong>terminante.<br />

» <strong>de</strong>t(A)<br />

ans =<br />

27<br />

» x=inv(A)*b<br />

x =<br />

25.0000<br />

22.0000<br />

99.0000<br />

2.5 OPERAÇÕES COM ARRAYS<br />

Quando se utiliza o termo “operações com arrays” preten<strong>de</strong>-se referir que as operações<br />

aritméticas são feitas <strong>de</strong> elemento para elemento.<br />

ADIÇÃO E SUBTRACÇÃO<br />

Para a adição e subtracção as operações com array e as operações com matrizes são iguais.<br />

(Utiliza-se os mesmos símbolos)<br />

MULTIPLICAÇÃO E DIVISÃO<br />

A multiplicação <strong>de</strong> array é efectuada elemento a elemento, sendo representada por “ .* ”. Se<br />

A e B têm dimensões iguais então C = A .* B resulta numa matriz em que cada um dos seus<br />

elementos é igual <strong>ao</strong> produto dos elementos individuais <strong>de</strong> A e B, nas mesmas posições<br />

» A=[2 4 6]<br />

A =<br />

2 4 6<br />

» B=[2 2 2]<br />

B =<br />

2 2 2<br />

» C=A.*B<br />

C =<br />

4 8 12<br />

No que diz respeito à divisão; se tivermos D = A ./ B ou E = A .\ B cada elemento <strong>de</strong> D e E é<br />

obtidos através da divisão (à esquerda ou à direita) envolvendo os elementos respectivos <strong>de</strong> A<br />

e B.<br />

» D=A./B<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.26


D =<br />

1 2 3<br />

» E=A.\B<br />

E =<br />

1.0000 0.5000 0.3333<br />

POTENCIAÇÃO<br />

A potenciação elemento a elemento é efectuada utilizando os símbolos “ .^ ”.<br />

» P=A.^B<br />

P =<br />

4 16 36<br />

Contudo, o expoente po<strong>de</strong>rá ser um escalar.<br />

» Pe=A.^3<br />

Pe =<br />

8 64 216<br />

Mas também po<strong>de</strong>mos ter a base como um escalar<br />

» Ps=3.^A<br />

Ps =<br />

9 81 729<br />

Operações com Arrays<br />

Sabendo que : A = [a 1 a 2 … a n ]; B = [b 1 b 2 … b n ]; c – Escalar<br />

Adição com um escalar<br />

Multiplicação com um escalar<br />

A+c = [a 1 +c a 2 +c … a n +c]<br />

A*c = [a 1 *c a 2 *c … a n *c]<br />

Adição A+B = [a 1 +b 1 a 2 +b 2 … a n +b n ]<br />

Multiplicação A.*B = [a 1 .*b 1 a 2 .*b 2 … a n .*b n ]<br />

Divisão à esquerda A.\B = [a 1 .\b 1 a 2 .\b 2 … a n .\b n ]<br />

Divisão à direita A./B = [a 1 ./b 1 a 2 ./b 2 … a n ./b n ]<br />

Potenciação<br />

A.^c = [a 1 .^c a 2 .^c … a n .^c]<br />

c.^A = [c.^a 1 c.^a 2 .^c … c.^a n ]<br />

A.^B = [a 1 .^b 1 a 2 .^b 2 … a n .^b n ]<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.27


2.6 MANIPULAÇÃO DOS ELEMENTOS DE UMA MATRIZ<br />

Po<strong>de</strong>mos alterar o valor <strong>de</strong> apenas um elemento da matriz fazendo:<br />

» A=[1 2 3; 4 5 6; 7 8 0]<br />

A =<br />

1 2 3<br />

4 5 6<br />

7 8 0<br />

» A(3,3)=9 % modifica o elemento na 3ªlinha, 3ªcoluna para 9<br />

A =<br />

1 2 3<br />

4 5 6<br />

7 8 9<br />

Também po<strong>de</strong>mos fazer:<br />

» A(2,2)=A(1,2)+A(3,2)<br />

A =<br />

1 2 3<br />

4 10 6<br />

7 8 9<br />

Outra manipulação dos elementos <strong>de</strong> uma matriz que o MATLAB permite é a seguinte:<br />

» b=A(:) % transformamos uma matriz num vector coluna<br />

b =<br />

1<br />

4<br />

7<br />

2<br />

10<br />

8<br />

3<br />

6<br />

9<br />

Se quisermos criar um matriz B invertendo a or<strong>de</strong>m das linhas <strong>de</strong> A, fazemos:<br />

» B=A(3:-1:1,1:3) % escolhemos as linhas, começando na 3 e acabando na 1<br />

B = % escolhemos as coluna, começando na 1 e acabando na 3<br />

7 8 0<br />

4 5 6<br />

1 2 3<br />

De modo semelhante po<strong>de</strong>mos obter uma submatriz <strong>de</strong> A.<br />

» C=A(1:2,2:3)<br />

C =<br />

2 3<br />

6<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.28


Manipulação dos Elementos <strong>de</strong> uma Matriz<br />

A(l,c)<br />

A(l,:)<br />

A(:,c)<br />

A(:,c)<br />

Resulta uma submatriz <strong>de</strong> A com as linhas <strong>de</strong>finas pelo<br />

vector l e com as colunas <strong>de</strong>finas (ou in<strong>de</strong>xadas) pelo vector<br />

c.<br />

Obtemos uma submatriz <strong>de</strong> A com as linhas <strong>de</strong>finas pelo<br />

vector l e com todas as colunas <strong>de</strong> A.<br />

Resulta uma submatriz <strong>de</strong> A com todas as linhas <strong>de</strong> A e com<br />

as colunas <strong>de</strong>finas (ou in<strong>de</strong>xadas) pelo vector c.<br />

Obtemos um vector coluna com todos os elementos <strong>de</strong> A<br />

tendo estes sido retirados coluna a coluna da matriz A.<br />

2.7 MATRIZES ESPECIAIS E FUNÇÕES COM MATRIZES<br />

De seguida apresentam-se algumas das matrizes especiais que é possível criar utilizando o<br />

MATLAB.<br />

Matrizes Especiais<br />

» zeros(3)<br />

ans =<br />

0 0 0<br />

0 0 0<br />

0 0 0<br />

» ones(3)<br />

ans =<br />

1 1 1<br />

1 1 1<br />

1 1 1<br />

» ones(3)*pi<br />

ans =<br />

3.1416 3.1416 3.1416<br />

3.1416 3.1416 3.1416<br />

3.1416 3.1416 3.1416<br />

» eye(3) % matriz i<strong>de</strong>ntida<strong>de</strong> 3x3<br />

ans =<br />

1 0 0<br />

0 1 0<br />

0 0 1<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.29


Algumas Matrizes Especiais<br />

[] Matriz vazia<br />

eye<br />

Matriz i<strong>de</strong>ntida<strong>de</strong><br />

ones Matriz com todos elementos iguais a 1.<br />

zeros Matriz com todos elementos iguais a 0.<br />

pascal<br />

Matriz (triangular) <strong>de</strong> Pascal.<br />

rand Matriz preenchida aleatoriamente com elementos entre 0 e 1<br />

(distribuição uniforme).<br />

randn<br />

Matriz preenchida aleatoriamente e segundo a distribuição<br />

normal com µ = 0 e σ = 1.<br />

FUNÇÕES COM MATRIZES<br />

O MATLAB possui inúmeras funções com matrizes no quadro seguinte vamos apresentar<br />

apenas algumas.<br />

Funções com Matrizes<br />

<strong>de</strong>t(A)<br />

expm(A)<br />

logm(A)<br />

inv(A)<br />

d=eig(A)<br />

[V,D]=eig(A)<br />

poly(A)<br />

Determinante<br />

Matriz exponencial<br />

Matriz logaritmo<br />

Inversa da matriz A<br />

Valores próprio e vectores próprios.<br />

Polinómio característico<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.30


CAPÍTULO<br />

3<br />

OPERADORES RELACIONAIS,<br />

OPERADORES LÓGICOS E<br />

ESTRUTURAS DE CONTROLO<br />

PLANO DO CAPÍTULO<br />

3.1 – Operadores Relacionais<br />

3.2 – Operadores Lógicos<br />

3.3 – Estrutura <strong>de</strong> Escolha (IF –ELSE-END)<br />

3.4 – Estruturas <strong>de</strong> Repetição (FOR, WHILE)<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.31


3.1 OPERADORES RELACIONAIS<br />

No MATLAB utilizamos os operadores lógicos e relacionais para, juntamente com as<br />

estruturas <strong>de</strong> repetição, controlar a or<strong>de</strong>m <strong>de</strong> execução <strong>de</strong> um conjunto <strong>de</strong> instruções ou<br />

comandos do MATLAB. Os únicos outputs ou resultados possíveis para uma expressão<br />

contendo operadores relacionais e lógicos são 1 (Verda<strong>de</strong>iro) ou 0 (Falso)<br />

» 34<br />

ans =<br />

0 % Falso<br />

Operadores Relacionais<br />

< Menor que<br />

Maior que<br />

>= Maior ou igual a<br />

== Igual a<br />

~= Diferente <strong>de</strong><br />

Estes operadores po<strong>de</strong>m ser utilizados na comparação entre duas matrizes, com as mesmas<br />

dimensões, ou para comparar um escalar com os elementos que compõem a matriz<br />

» A=1:9, B=9-A<br />

A =<br />

1 2 3 4 5 6 7 8 9<br />

B =<br />

8 7 6 5 4 3 2 1 0<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.32


» VF=A>4 % Os zeros correspon<strong>de</strong>m a elementos que são menores que 4<br />

VF =<br />

0 0 0 0 1 1 1 1 1<br />

» A==B<br />

ans =<br />

0 0 0 0 0 0 0 0 0<br />

3.2 OPERADORES LÓGICOS<br />

Os principais operadores lógicos são:<br />

Operadores Lógicos<br />

&<br />

And (e)<br />

| Or (ou)<br />

~<br />

xor(x,y)<br />

Not (negação)<br />

Exclusive Or (Ou exclusivo)<br />

Apresentam-se <strong>de</strong> seguida alguns exemplos da sua aplicação:<br />

» VF=A>4<br />

VF =<br />

0 0 0 0 1 1 1 1 1<br />

» VF1=~(A>4) % negamos a expressão anterior<br />

VF1 =<br />

1 1 1 1 0 0 0 0 0<br />

A expressão seguinte <strong>de</strong>volve uns nas posições em que os elementos da matriz A verificam<br />

a condição, i.e., são maiores do que 2 e menores do que 6.<br />

» VF2=(A>2)&(A


3.3 ESTRUTURA DE ESCOLHA (IF-THEN-END)<br />

Utilizamos esta estrutura quando queremos condicionar a execução <strong>de</strong> uma dada instrução<br />

ou comando <strong>ao</strong> valor (verda<strong>de</strong>iro ou falso) <strong>de</strong> uma da expressão relacional ou lógica.<br />

O quadro seguinte apresenta a sintaxe da estrutura IF-THEN-END.<br />

IF expressão<br />

Comandos<br />

ELSEIF<br />

Comandos<br />

ELSE<br />

Comandos<br />

END<br />

IF expressão<br />

Comandos<br />

END<br />

IF.<br />

Os Comandos são executados apenas se a expressão for verda<strong>de</strong>ira.<br />

Po<strong>de</strong>mos, também, consultar o MATLAB para obter mais informações sobre a estrutura<br />

» help if<br />

IF Conditionally execute statements.<br />

The general form of an IF statement is:<br />

IF variable, statements, END<br />

The statements are executed if the real part of the variable<br />

has all non-zero elements. The variable is usually the result of<br />

expr rop expr where rop is ==, , =, or ~=.<br />

For example:<br />

IF I == J<br />

A(I,J) = 2;<br />

ELSEIF ABS(I-J) == 1<br />

A(I,J) = -1;<br />

ELSE<br />

A(I,J) = 0;<br />

END<br />

Apresentam-se, <strong>de</strong> seguida, dois exemplos que utilizam a estrutura IF.<br />

» laranjas=10;<br />

» Custo=laranjas*20<br />

Custo =<br />

200<br />

» if laranjas>5<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.34


Custo=(1-0.2)*Custo % faz-se um <strong>de</strong>sconto <strong>de</strong> 20%<br />

end<br />

» Custo =<br />

160<br />

Exemplo: Escreva um m-file que:<br />

• Pe<strong>de</strong> <strong>ao</strong> utilizador para introduzir um número.<br />

• Verifica se esse número é maior ou menor do que 5.<br />

• Se for maior imprime no ecrã a palavra GRANDE, caso contrário imprime a<br />

palavra PEGUENO.<br />

n = input('INDIQUE UM NÚMERO MAIOR QUE 0 ->');<br />

if (n > 5)<br />

disp('GRANDE')<br />

elseif (n < 5)<br />

disp('PEQUENO')<br />

else<br />

disp('BATOTA NÃO VALE! O NÚMERO DEVE SER MAIOR OU MENOR QUE 5')<br />

end<br />

3.4 ESTRUTURAS DE REPETIÇÃO<br />

FOR<br />

O ciclo FOR permite a repetição <strong>de</strong> um ou mais comandos. É necessário estabelecer na<br />

sintaxe do comando qual o número <strong>de</strong> repetições a efectuar.<br />

FOR<br />

Variável=expressão<br />

Comando1<br />

Comando2<br />

…<br />

ComandoN<br />

END<br />

FOR<br />

Variável=expressão<br />

Comando<br />

END<br />

Se, no lugar da expressão tivermos um array ou uma matriz então os comandos são<br />

executados um números <strong>de</strong> vezes iguais <strong>ao</strong> número <strong>de</strong> colunas do array ou matriz.<br />

Po<strong>de</strong>mos consultar o MATLAB para obter mais informações sobre a estrutura FOR.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.35


» help for<br />

FOR Repeat statements a specific number of times.<br />

The general form of a FOR statement is:<br />

FOR variable = expr, statement, ..., statement END<br />

The columns of the expression are stored one at a time in<br />

the variable and then the following statements, up to the<br />

END, are executed. The expression is often of the form X:Y,<br />

in which case its columns are simply scalars. Some examples<br />

(assume N has already been assigned a value).<br />

FOR I = 1:N,<br />

FOR J = 1:N,<br />

A(I,J) = 1/(I+J-1);<br />

END<br />

END<br />

FOR S = 1.0: -0.1: 0.0, END steps S with increments of -0.1<br />

FOR E = EYE(N), ... END sets E to the unit N-vectors.<br />

De seguida apresentamos alguns exemplos do uso <strong>de</strong>sta estrutura.<br />

» for n=1:10<br />

x(n)=sin(n*pi/10);<br />

n=10;<br />

end<br />

» x<br />

x =<br />

Columns 1 through 7<br />

0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090<br />

Columns 8 through 10<br />

0.5878 0.3090 0.0000<br />

» for n=1:5<br />

for m=5:-1:1<br />

A(n,m)=n^2+m^2;<br />

end<br />

disp(n)<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.36


end<br />

1<br />

2<br />

3<br />

4<br />

5<br />

» A<br />

A =<br />

2 5 10 17 26<br />

5 8 13 20 29<br />

10 13 18 25 34<br />

17 20 25 32 41<br />

26 29 34 41 50<br />

Exemplo: Faça um m-file que preencha uma matriz. Peça <strong>ao</strong> utilizador o números <strong>de</strong> linhas<br />

e <strong>de</strong> colunas que ele <strong>de</strong>seja para a matriz.<br />

n=1;<br />

s=1;<br />

disp('PREENCHIMENTO DE UMA MATRIZ')<br />

n = input('INDIQUE O NÚMERO DE LINHAS ->');<br />

s = input('INDIQUE O NÚMERO DE COLUNAS ->');<br />

for i=1:n,<br />

for j=1:s,<br />

a(i,j)=1/(i+j-1);<br />

end<br />

end<br />

disp(' A MATRIZ É:')<br />

disp(a)<br />

WHILE<br />

O ciclo WHILE é executado enquanto a expressão for verda<strong>de</strong>ira.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.37


WHILE Variável<br />

Comando1<br />

Comando2<br />

…<br />

ComandoN<br />

END<br />

WHILE Variável<br />

Comando<br />

END<br />

Consultando o MATLAB obtemos a seguinte informação sobre a estrutura WHILE.<br />

» help while<br />

WHILE Repeat statements an in<strong>de</strong>finite number of times.<br />

The general form of a WHILE statement is:<br />

WHILE variable, statement, ..., statement, END<br />

The statements are executed while the variable has all<br />

non-zero elements. The variable is usually the result of<br />

expr rop expr where rop is ==, , =, or ~=.<br />

For example (assuming A already <strong>de</strong>fined):<br />

E = 0*A; F = E + EYE(E); N = 1;<br />

WHILE NORM(E+F-E,1) > 0,<br />

E = E + F;<br />

F = A*F/N;<br />

N = N + 1;<br />

END<br />

De seguida apresentamos um exemplo <strong>de</strong> utilização da estrutura WHILE.<br />

» n=10; % queremos preencher um vector com os números <strong>de</strong> 1 a 10<br />

i=1;<br />

while i


CAPÍTULO<br />

4<br />

GRÁFICOS<br />

PLANO DO CAPÍTULO<br />

4.1 – O comando plot<br />

4.2 – Tipo <strong>de</strong> linhas e <strong>de</strong> cores<br />

4.3 – Grid and Labels<br />

4.4– Comando hold<br />

4.5– Subplots<br />

4.6– Utilizar várias janelas com figuras<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.39


4.1 O COMANDO PLOT<br />

»x=linspace(0,2*pi,30);<br />

»y=sin(x);<br />

»plot(x,y)<br />

»z=cos(x);<br />

»plot(x,y,x,z)<br />

Po<strong>de</strong>mos traçar várias funções no mesmo gráfico utilizando vários argumentos no comando<br />

plot.<br />

»plot(x,y,z)<br />

??? Error using ==> plot<br />

Not enough input arguments.<br />

Se um dos argumentos for uma matriz e o outro for um vector o <strong>matlab</strong> representa cada<br />

coluna da matriz vs o vector.<br />

»W=[y;z];<br />

»plot(x,W)<br />

»plot(W,x)<br />

»plot(y)<br />

»length(y)<br />

ans =<br />

30<br />

plot(1:length(y),y)<br />

»k=1:30<br />

»kk=i+1.1*i*j<br />

»plot(kk)<br />

%plot(real(k),imag(k))<br />

5.2 - Tipo <strong>de</strong> linhas e cores<br />

Nós po<strong>de</strong>mos <strong>de</strong>finir qual as cores e o tipo <strong>de</strong> linha que preten<strong>de</strong>mos introduzindo mais<br />

argumentos no comando plot<br />

Cores: Se não for especificado o tipo <strong>de</strong> cores que que se preten<strong>de</strong> para o gráfico o <strong>matlab</strong><br />

começa no amarelo e faz um ciclo pelas seis cores disponíveis.<br />

Linestyle: a linha utilizada, por <strong>de</strong>feito, é o traço continuo.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.40


plot(x,y,'g:',x,z,'r-') % utilizando linhas para unir os pontos<br />

plot(x,y,'g:',x,z,'r-',x,y,'wo',x,z,'c+')<br />

assinalando cada ponto<br />

% também com símbolos<br />

plot(x,y,'wo',x,z,'c+') % apenas com símbolos<br />

LETRA<br />

y<br />

m<br />

c<br />

r<br />

g<br />

b<br />

w<br />

k<br />

CORES<br />

amarelo<br />

magenta<br />

cyan<br />

encarnado<br />

ver<strong>de</strong><br />

azul<br />

branco<br />

preto<br />

SÍMBOLO<br />

TIPO DE LINHA<br />

- linha sólida<br />

: ponteada<br />

-. traço - ponto<br />

-- traço interropido<br />

SÍMBOLO<br />

MARKERS<br />

. ponto<br />

o<br />

círculo<br />

x<br />

x-mark<br />

+ sinal +<br />

* Estrela<br />

4.3 GRIDS AND LABELS<br />

plot(x,y,x,z)<br />

grid<br />

grid<br />

grid on<br />

grid off<br />

xlabel ('variavel in<strong>de</strong>pen<strong>de</strong>nte x')<br />

ylabel ('variaveis <strong>de</strong>pen<strong>de</strong>ntes y e z')<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.41


title ('Seno e Coseno')<br />

Po<strong>de</strong>mos introduzir texto em qualquer parte do gráfico utilizando comando text e as<br />

respectivas coor<strong>de</strong>nadas.<br />

text(2.5,0.7,'sin(x)')<br />

gtext('cos (x)') %utilizando o rato para escolher a posição<br />

4.4 COMANDO HOLD<br />

plot (x,y)<br />

plot(x,z)<br />

hold<br />

Current plot held<br />

plot(x,y)<br />

plot(x,y,'m')<br />

4.5 – SUBPLOTS<br />

O comando subplot(m,n,p) subdivi<strong>de</strong> a figure windows numa matriz m por n e a área activa<br />

correspon<strong>de</strong> à posição p.<br />

a=2*sin(x).*cos(x);<br />

b=sin(x)./(cos(x)+eps);<br />

subplot(2,2,1)<br />

plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')<br />

subplot(2,2,2)<br />

plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')<br />

subplot(2,2,3)<br />

plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')<br />

subplot(2,2,4)<br />

plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')<br />

grid<br />

subplot(2,2,2)<br />

grid<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.42


4.6 - UTILIZAR VÁRIAS JANELAS COM FIGURAS<br />

h1=figure<br />

h1 =<br />

1<br />

plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')<br />

h2=figure<br />

h2 =<br />

2<br />

plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')<br />

h3=figure<br />

h3 =<br />

3<br />

plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')<br />

h4=figure<br />

h4 =<br />

4<br />

plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')<br />

figure(4)<br />

grid<br />

close<br />

close (2)<br />

help close<br />

clf<br />

GINPUT Graphical input from a mouse or cursor.<br />

[X,Y] = GINPUT(N) gets N points from the current axes and returns<br />

the X- and Y-coordinates in length N vectors X and Y. The cursor<br />

can be positioned using a mouse (or by using the Arrow Keys on some<br />

systems). Data points are entered by pressing a mouse button<br />

or any key on the keyboard. A carriage return terminates the<br />

input before N points are entered.<br />

[X,Y] = GINPUT gathers an unlimited number of points until the<br />

return key is pressed.<br />

[X,Y,BUTTON] = GINPUT(N) returns a third result, BUTTON, that<br />

contains a vector of integers specifying which mouse button was<br />

used (1,2,3 from left) or ASCII numbers if a key on the keyboard<br />

was used.<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.43


CAPÍTULO<br />

5<br />

EXERCÍCIOS<br />

PLANO DO CAPÍTULO<br />

5.1 – Exercícios (Parte A)<br />

5.2 – Exercícios (Parte B)<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.44


5.1 EXERCÍCIOS (PARTE A):<br />

Os exercícios a efectuar <strong>de</strong>verão ser apresentados sob a forma <strong>de</strong> listagem do Matlab.<br />

1. Preten<strong>de</strong>-se utilizar para cálculos futuros uma matriz A,<br />

⎡2<br />

A =<br />

⎢<br />

⎢<br />

3<br />

⎢⎣<br />

1<br />

5<br />

8<br />

3<br />

7 ⎤<br />

4<br />

⎥<br />

⎥<br />

9⎥⎦<br />

1.1. Faça ecoar esta matriz para o monitor.<br />

1.2. Se preten<strong>de</strong>sse não visualizar a matriz como faria ?<br />

2. Calcule a transposta da matriz A.<br />

3. Preten<strong>de</strong>-se utilizar, igualmente, uma matriz B<br />

⎡3<br />

B =<br />

⎢<br />

⎢<br />

1<br />

⎢⎣<br />

1<br />

2<br />

4<br />

7<br />

5⎤<br />

6<br />

⎥<br />

⎥<br />

8 ⎥⎦<br />

3.1. Calcule a matriz C em que C = A + B.<br />

3.2. Calcule a matriz D em que D = A – B.<br />

4. Introduza agora um vector E.<br />

E =<br />

[ 5 6 1]<br />

4.1. Calcule a Matriz F correspon<strong>de</strong>nte <strong>ao</strong> produto <strong>de</strong> B por E. Efectue todos os cálculos<br />

necessários, especificando-os.<br />

5. Efectue a divisão à direita <strong>de</strong> A por B.<br />

6. Eleve <strong>ao</strong> cubo o vector E.<br />

7. Apresente os seguintes vectores:<br />

7.1. Iniciando em 2 e terminando em 8 com incrementos <strong>de</strong> 2<br />

1 .<br />

7.2. Iniciando em 14 e terminando em 1 com incrementos fornecidos por uma variável β.<br />

Consi<strong>de</strong>re que β = −<br />

1<br />

.<br />

10<br />

8. Qual o resultado que espera obter após a introdução da seguinte expressão:<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.45


A(2,2) = A(2,3) + B(2,2)<br />

9. Determine uma matriz com 2 colunas em que uma <strong>de</strong>las é obtida <strong>de</strong>:<br />

X = (0.0 : 0.2 : 3.0)<br />

E a outra <strong>de</strong> :<br />

Y = exp (-X) .* sin(X)<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.46


5.2 EXERCÍCIOS (PARTE B):<br />

A resolução do exercícios <strong>de</strong>ve ser apresentada em disquete ou em listagem do MATLAB. Os<br />

ficheiro <strong>de</strong>vem ter os nomes especificados no enunciado <strong>de</strong> cada exercício.<br />

10. Fazer um m-file em que é pedido <strong>ao</strong> utilizador para introduzir um número, o programa<br />

<strong>de</strong>ve <strong>de</strong>terminar a que intervalo pertence o número e produzir o seguinte output :<br />

Nº INTRODUZIDO OUTPUT<br />

0 .. 5 Mau<br />

5 .. 7 Bom<br />

7 .. 10 Muito Bom<br />

(o m-file <strong>de</strong>ve ter o nome: if1.m)<br />

11. Preencha uma matriz 4x4 em que os elementos da diagonal principal <strong>de</strong>verão ser 1 e os<br />

restantes elementos são calculados através da expressão:<br />

⎛ 3 x i<br />

a i j<br />

j ⎟ ⎞<br />

( , ) =<br />

⎜<br />

⎝ ⎠<br />

2<br />

Utilize ciclos FOR. (O m-file <strong>de</strong>ve ter o nome: for1.m)<br />

12. Faça o exercício 2 utilizando o ciclo WHILE. (O m-file <strong>de</strong>ve ter o nome: wh1.m)<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.47


6- ÍNDICE<br />

1.1 COMMAND WINDOW................................................................................................................................ 2<br />

1.2 OPERAÇÕES ARITMÉTICAS ................................................................................................................... 2<br />

1.3 VARIÁVEIS EM MATLAB ........................................................................................................................ 4<br />

1.4 COMENTÁRIOS E PONTUAÇÃO............................................................................................................ 7<br />

1.5 NÚMEROS COMPLEXOS .......................................................................................................................... 8<br />

1.6 FUNÇÕES MATEMÁTICAS..................................................................................................................... 10<br />

1.7 FICHEIROS SCRIPT OU M-FILES......................................................................................................... 12<br />

1.8 COMO ENCONTRAR AJUDA NO MATLAB..................................................................................... 14<br />

2.1 DEFINIÇÃO DE VECTORES .................................................................................................................. 20<br />

2.2 ENDEREÇAMENTO DE ELEMENTOS DE UM VECTOR ............................................................. 22<br />

2.3 DEFINIÇÃO DE MATRIZES................................................................................................................... 22<br />

2.4 OPERAÇÕES COM MATRIZES............................................................................................................. 23<br />

2.5 OPERAÇÕES COM ARRAYS................................................................................................................... 26<br />

2.6 MANIPULAÇÃO DOS ELEMENTOS DE UMA MATRIZ............................................................... 28<br />

2.7 MATRIZES ESPECIAIS E FUNÇÕES COM MATRIZES................................................................ 29<br />

MATRIZES ESPECIAIS ................................................................................................................................... 29<br />

3.1 OPERADORES RELACIONAIS............................................................................................................... 32<br />

3.2 OPERADORES LÓGICOS ........................................................................................................................ 33<br />

3.3 ESTRUTURA DE ESCOLHA (IF-THEN-END).................................................................................... 34<br />

3.4 ESTRUTURAS DE REPETIÇÃO ............................................................................................................ 35<br />

4.1 O COMANDO PLOT................................................................................................................................... 40<br />

4.3 GRIDS AND LABELS ................................................................................................................................ 41<br />

4.4 COMANDO HOLD ...................................................................................................................................... 42<br />

4.5 – SUBPLOTS................................................................................................................................................. 42<br />

4.6 - UTILIZAR VÁRIAS JANELAS COM FIGURAS ................................................................................. 43<br />

5.1 EXERCÍCIOS:.............................................................................................................................................. 45<br />

5.2 EXERCÍCIOS:.............................................................................................................................................. 47<br />

6- ÍNDICE............................................................................................................................................................ 48<br />

ENIDH/DMM – Luis M. Mendonça<br />

Pág.48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!