You are on page 1of 45

NTRODUAO EM MATLAB

Por

Marcos Antonio da Rocha Ferreira
Introduo em MATLAB
ii

1. INTRODUO................................................................................................ 4
1.1. O QUE O MATLAB?..................................................................................... 4
1.2. AMBIENTE DE TRABALHO................................................................................. 4
1.3. LINHA DE COMANDO.......................................................................................... 6
1.4. UTILIZAO DO COMANDO HELP................................................................... 7
1.5. COMANDOS DO SISTEMA OPERACIONAL..................................................... 8
2. MATRIZES E VETORES......................................................................... 9
2.1. VARIVEIS NO MATLAB................................................................................. 9
2.1.1. CRIAO DE VETORES ATRAVES DA LINHA DE COMANDO ................................... 10
2.1.2. CRIAO DE MATRIZES ATRAVES DA LINHA DE COMANDO.................................. 11
2.2. CRIAO DE MATRIZES ATRAVS DE FUNES...................................... 11
2.2.1. MATRIZ IDENTIDADE............................................................................................. 11
2.2.2. MATRIZ COMPOSTA POR ELEMENTOS UNITARIOS ................................................. 12
2.2.3. MATRIZ NULA....................................................................................................... 12
2.2.4. MATRIZ ALEATORIA.............................................................................................. 12
2.3. INDEXAO......................................................................................................... 13
2.4. CONCATENAO DE MATRIZES..................................................................... 14
2.5. REMOO DE VETORES.................................................................................. 15
2.6. EXERCCIOS........................................................................................................ 16
3. OPERAES COM MATRIZES E VETORES..................... 18
3.1. OPERAES ARITMTICAS COM MATRIZES.............................................. 18
3.2. OPERADORES RELACIONAIS......................................................................... 20
3.3. OPERADORES LGICOS.................................................................................. 22
3.4. EXERCCIOS........................................................................................................ 23
4. FUNES........................................................................................................ 26
4.1. FUNES ESCALARES.................................................................................... 26
4.2. FUNES ESTATSTICAS ................................................................................ 27
4.3. FUNES VETORIAIS....................................................................................... 28
4.4. FUNES MATRICIAIS ..................................................................................... 29
4.5. SCRIPT E FUNES.......................................................................................... 29
4.6. EXERCCIOS........................................................................................................ 30
5. IMPORTAO E EXPORTAO DE ARQUIVOS........... 32
Introduo em MATLAB
iii
5.1. COMANDOS LOAD E SAVE......................................................................... 32
5.2. COMANDO IMPORTDATA - IMPORTAO DE DADOS ....................... 33
5.4. COMANDO FOPEN - EXPORTAO DE DADOS FORMATADOS.......... 34
5.5. COMANDO FCLOSE - EXPORTAO DE DADOS FORMATADOS ....... 35
5.6. COMANDO FPRINTF - EXPORTAO DE DADOS FORMATADOS....... 35
5.7. EXERCCIOS........................................................................................................ 36
6. PROGRAMAO EM MATLAB..................................................... 37
6.1. ESTRUTURAS DE CONTROLE NO MATLAB.............................................. 37
6.2. ESTRUTURA DE REPETIO - INSTRUO FOR...................................... 37
6.2. ESTRUTURA DE REPETIO - INSTRUO WHILE................................. 38
6.3. ESTRUTURA CONDICIONAL - INSTRUO IF............................................ 39
6.4. ESTRUTURA CONDICIONAL - INSTRUO CASE................................... 40
6.5. COMANDO DE PARADA - BREAK................................................................ 42
6.6. ARQUIVOS ".M"................................................................................................. 43
6.7. EXERCCIOS........................................................................................................ 43
BIBLIOGRAFIA.................................................................................................. 45
Curso de MATLAB Introduo ao MATLAB
4
1. Introduo
1.1. O que o MATLAB?
Desde a sua primeira verso (1984) o MATLAB (Matrix Laboratory) tido como produto lder
na rea de computao numrica e cientfica. Mas do que um software, o MATLAB um
ambiente integrado de modelagem de sistemas e algoritmos, ideal para a implementao de
projetos complexos, e por esta razo vem sendo adotado como ferramenta de desenvolvimento
padro pelas principais universidades e empresas no mundo.

O MATLAB um ncleo de um ambiente de computao de um ambiente de computao
numrico baseado em matrizes que integram:
- Funes de tratamento numrico de performance;
- Sofisticados recursos de gerao de grficos para visualizao;
- Poderosa linguagem de programao de alto nvel.
Seus elementos bsicos so matrizes que no requerem dimensionamento. Ele permite
implementar e resolver problemas matemticos muito mais rpida e eficientemente que atravs
de outras linguagens como C, Java, Dephi e Fortran.

Ainda, o MATLAB possui uma famlia de aplicativos especficos (toolboxes), que so
colees de funes usadas para resolver determinados problemas tais como: otimizao,
manipulao algbrica, redes neurais, processamento de sinais, simulao de sistemas
dinmicos, entre outros.
1.2. Ambiente de TrabaIho
O ambiente de trabalho do MATLAB est organizado em reas. As reas principais so:
- Linha de Comando (Command Windows) Figura 1.a rea onde so digitados
dados e instrues para o MATLAB e exibidos os resultados. As teclas '' (seta
para cima) e '*' repetem comandos digitados anteriormente;
- rea de Memria (Workspace) Figura 1.b rea de memria do MATLAB, na qual
ficam armazenadas todas as variveis definidas interativamente (criadas na linha de
comando) no MATLAB. Se uma varivel for clicada duas vezes surgir a janela de
edio da workspace, local onde essa varivel pode ser editada de forma visual;

Curso de MATLAB Introduo ao MATLAB
5
- Histrico de Comandos (Command History) Figura 1.c rea onde ficam
armazenados todos os comando digitados na linha de comando. Para executar as
linhas armazenadas no histrico de comandos necessrio o seguinte
procedimento: com o mouse selecione a linha desejada, pressione o boto direito do
mouse para exibir o menu de opes que disponibiliza a opo [Evaluate Selection]
para executar as instrues selecionadas;
- Diretrio Corrente (Current Directory) Figura 1.d exibe ou configura o diretrio de
trabalho corrente.


Figura 1. TeIa principaI do MATLAB: Iinha de comando (A), workspace(B), histrico(C) e
diretrio corrente(D).
A
D
B
C
Curso de MATLAB Introduo ao MATLAB
6
1.3. Linha de Comando
A linha de comando ativada quando se inicia o MATLAB, e o "prompt" padro (>>) exibido
na tela. A partir deste ponto, o MATLAB espera as instrues do usurio.

MATLAB uma linguagem de expresso. Na sua janela linha de comando ele interpreta e
avalia as expresses digitadas, que so geralmente na forma:

Varivel = expresso

Por exemplo:

|
|
.
|

\
|
|
.
|

\
|
=
5
tan log
t
x

Seria equivalente em linha de comando do MATLAB como:

>> x=log(sqrt(tan(pi/5)))
x =
-0.1597

A ferramenta MATLAB 'case sensitive', ou seja, a linguagem diferencia maisculas de
minsculas. Por exemplo, um erro comum o seguinte:

>> x=LOG(sqrt(tan(pi/5)))
??? Capitalized internal function LOG; Caps Lock may be on.

O MATLAB retorna um erro avisando que o comando foi digitado em maisculo e recomenda
desativar a tecla 'Caps Lock'. Portanto:
- NO digite comando MATLAB em maisculo;
- NO utilize maiscula em nome de variveis;
- NO utilize maiscula em nome de funes;
Curso de MATLAB Introduo ao MATLAB
7
- Em resumo, NO utilize maiscula para NADA no MATLAB.
Por default o MATLAB trabalha em "modo verboso. Ou seja, aps o usurio ter terminado de
digitar o comando e teclado <enter > imediatamente o MATLAB exibe o resultado na tela.
Caso deseje no exibir imediatamente os resultados do MATLAB utilize no final do comando ';'.
Por Exemplo:
>> x=log(sqrt(tan(pi/5)));
>>
1.4. UtiIizao do Comando HeIp
O comando mais importante do MATLAB o help: que fornece informaes sobre a maior
parte de um tpico especfico. Por exemplo:

>> help title
TITLE Graph titIe.
TITLE('text') adds text at the top of the current axis.

TITLE('text','Property1',PropertyVaIue1,'Property2',PropertyVaIue2,...)
sets the vaIues of the specified properties of the titIe.

H = TITLE(...) returns the handIe to the text object used as the titIe.

See aIso XLABEL, YLABEL, ZLABEL, TEXT.

Note-se que no exemplo mostrado para adicionar o ttulo a um grfico, TITLE ('TEXT') est
escrito em Ietras maiscuIas somente para destacar. importante salientar que todos os
comandos do MATLAB devem ser escritos em Ietras minscuIas, portanto, para adicionar
o texto "Ttulo do Grfico" a um grfico, deve-se utilizar:

>> title ('Ttulo do Grfico')
Curso de MATLAB Introduo ao MATLAB
8
1.5. Comandos do Sistema OperacionaI
Para controlar a janela da linha comando, o MATLAB disponibiliza os comandos do sistema
operacional:
Comando Descrio ExempIo
cd

Ou

pwd


nforma ou altera diretrio corrente.
>> cd
C:\MATLABR12\work
>> cd \
>> cd
C:\

dir
Ou
Is


Lista contedo do diretrio.
>> dir
. .. mat.m

what
Exibe os arquivos do MATLAB contido no
diretrio.
>> what
M-files in the current directory C:\MATLABR12\work
mat


which


dentifica e localiza arquivos.
>> which mat
C:\MATLABR12\work\mat.m
>> which xyz
xyz not found.




!




Chama um comando do sistema operacional.
>> !dir *.*
O volume na unidade C no tem nome.
O nmero de s,rie do volume , B4E8-E5F6
Pasta de C:\MATLABR12\work
04/03/2004 10:43 <DR> .
04/03/2004 10:43 <DR> ..
04/03/2004 10:43 5 mat.m
1 arquivo(s) 5 bytes
2 pasta(s) 1.175.961.600 bytes
disponveis
cIc Limpa a tela da linha de comando. >> clc
why No help, esse comando descrito como
"Fornece respostas sucintas quase todas
perguntas. Na verdade, um 'ovo de pscoa'
dos programadores do MATLAB.
>> why
Some hamster suggested it.
Curso de MATLAB Matrizes, a Base do MATLAB
9
2. Matrizes e Vetores
2.1. Variveis no MATLAB
Todas as variveis do MATLAB so do tipo matriz e a sua criao automtica. Em alguns
casos, um tratamento especial dado a uma matriz 1 x 1 (escaIar) ou a matrizes 1 x n ou n x 1
(vetores).

Existem algumas variveis que so intrnsecas ao MATLAB e que no podem ser apagadas.

ans Resposta mais recente no atribuda a nenhuma varivel.
eps Preciso da mquina.
reaImax Maior nmero de ponto flutuante.
reaImin Menor nmero de ponto flutuante..
pi 3.14159265358979
i, j
Unidade imaginria ( 1 ). Deve ser observado que
como essas letras podem ser usadas como nome de
varivel convm ter o cuidado de confirmar o seu valor
antes de usar.


Variaveis
Escalares Vetores Matrizes
Vetores Linha Vetores Colunas
Numericos 'Strings
Curso de MATLAB Matrizes, a Base do MATLAB
10
2.1. Como Criar Matrizes e Vetores?
As matrizes e vetores podem ser produzidos no MATLAB de diferentes modos:
- ntroduzida na Janela de Comando (lista explcita de elementos), mtodo mais
simples apresentado agora;
- Geradas por comandos e funes intrnsecas do MATLAB (Ex. funo zeros, ones,
rand, etc.);
- Criadas em arquivos ".m. Este mtodo ser abordado em detalhes no tpico sobre
criao de funes em script;
- Carregadas a partir de um arquivo de dados externo. Mtodo que ser abordado
no tpico sobre importao e exportao de dados no MATLAB;
- Utilizando mtodos de programao for. Mais detalhes no tpico sobre
programao.
2.1.1. Criao de Vetores Atravs da Linha de Comando
O caractere dois pontos, ":", permite a gerao de vetores na linha de comando do MATLAB.
Por exemplo:

>> a=1:5
a =
1 2 3 4 5

Outros incrementos podem ser utilizados, como o do seguinte exemplo:
>> y = 0 : pi/4 : pi
y =

0 0.7854 1.5708 2.3562 3.1416

Curso de MATLAB Matrizes, a Base do MATLAB
11
2.1.2. Criao de Matrizes Atrves da Linha de Comando
O mtodo mais fcil de introduzir pequenas matrizes no MATLAB utilizando uma lista
explcita. Os elementos de cada linha da matriz so separados por espaos em branco ou
vrgulas e as colunas separadas por ponto e vrgula, colocando-se parntesis em volta do
grupo de elementos que formam a matriz com o objetivo de a limitar. Por exemplo, introduzindo
a expresso:
>> a=[1 2 3; 4 5 6; 7 8 9]
a = 1 2 3
4 5 6
7 8 9
A matriz a guardada na memria RAM do computador, ficando armazenada para uso
posterior. As matrizes podem tambm ser introduzidas linha a linha, o que indicado para
matrizes de grande dimenso. Por exemplo:
>> a=[1 2 3
4 5 6
7 8 9]

2.2. Criao de Matrizes Atravs de Funes
O MATLAB disponibiliza uma srie de funes para criao imediata de matrizes com
caracteristicas "especiais. Esses tipos de matrizes possuem ampla utilizao em aplicaes
MATLAB. As principais funes so descristas nos prximos tpicos.

2.2.1. Matriz Identidade
De modo a construir uma matriz identidade quadrada ou com dimenso n x m, a funo a
utilizar dada por eye (n, m). Exemplo:
>> eye(3)
Curso de MATLAB Matrizes, a Base do MATLAB
12
ans = 1 0 0
0 1 0
0 0 1
2.2.2. Matriz Composta por EIementos Unitrios
No caso de ser necessria a obteno de uma matriz composta apenas por elementos
unitrios, temos que: >> ones(n,m). Por exemplo:
>> ones(3)
ans = 1 1 1
1 1 1
1 1 1

2.2.3. Matriz NuIa
Para efetuar qualquer tipo de manipulao matricial poder ser til a construo de uma
matriz composta por elementos nulos: >> zeros(n,m). Por exemplo:
>> zeros(3)
ans = 0 0 0
0 0 0
0 0 0
2.2.4. Matriz AIeatria
A elaborao de testes para qualquer script desenvolvido no MATLAB, ou para utilizao de
um outro qualquer modo, poder fazer uso de matrizes compostas por nmeros aleatrios
uniformemente distribudos no intervalo entre 0 e 1: >> rand(n,m). Por exemplo:
>> rand(3)
ans = 0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214


Curso de MATLAB Matrizes, a Base do MATLAB
13
2.3. Indexao
O padro de indexao matricial no MATLAB a forma tradicional (linha, coluna). Por
exemplo:

>> a=[1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16]

a =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

>> a(2,3) %Acesso ao elemento da linha 2 na coluna 3
ans =
7
Da mesma forma que possvel obter um elemento de uma matriz (que um escalar, ou
seja, uma matriz 1 x 1), tambm possvel obter pedaos inteiros da mesma matriz. Por
exemplo, seja a matriz a:
>> a=[1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16]
a =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> a (2:4, 3:4)
ans =
7 8
11 12
15 16

Curso de MATLAB Matrizes, a Base do MATLAB
14
Como podemos traduzir a operao feita acima pelo MATLAB? O MATLAB interpretou da
seguinte forma: pegue todos elementos da linha 2 at a linha 4 e selecione desta linhas os
elementos localizados entre 3 a 4 colunas.
Outra facilidade deste mtodo de indexao visto no exemplo a seguir:
>> a(:,3)
ans =
3
7
11
15
Nesta notao Usar os dois pontos sozinhos significa todos os elementos da respectiva linha
ou coluna.
Este tipo de notao facilita enormemente a criao de programas. Saber aproveitar esse
importante recurso do MATLAB ajuda a evitar muita "dor de cabea na elaborao de rotinas
em MATLAB.
2.4. Concatenao de matrizes
Concatenar matrizes consiste em formar uma matriz a partir de outras menores. A notao
dntica utilizada para formar matrizes com nmeros. Os seguintes exemplos ilustram a
concatenao de matrizes.

>> a= [1 2; 3 4]
a =1 2
3 4
>> r= [a a; a a]
r = 1 2 1 2
3 4 3 4
1 2 1 2
3 4 3 4
>> b= (1:4)'
b = 1
2
Curso de MATLAB Matrizes, a Base do MATLAB
15
3
4
>>r= [b b [a;a]]
r = 1 1 1 2
2 2 3 4
3 3 1 2
4 4 3 4
2.5. Remoo de Vetores
possvel remover de uma dada matriz qualquer conjunto de linhas e colunas. Para tal,
basta atribuir o valor de uma matriz vazia definida por"[] s linhas e colunas que se pretende
remover. No exemplo que se segue, elimina-se a 2 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 remoo de um elemento isolado de uma matriz NO POSSVEL uma vez que esta deixaria
de respeitar as propriedades de uma matriz. Segue a baixo a mesagem de erro retornado pelo
MATLAB quando se tenta efetuar essa operao.

Curso de MATLAB Matrizes, a Base do MATLAB
16
>> a(1,2)=[]
??? Indexed empty matrix assignment is not allowed.
2.6. Exerccios
1. Gere uma seqncia de nmeros pares com incio em 4 e a terminar no nmero 100.
2. Gere uma seqncia numrica decrescente com incio em 5 e a terminar em -5.
3. Gere uma seqncia numrica com 100 elementos pertencentes ao intervalo [0 . . . 1].
4. Gere uma seqncia de nmeros mltiplos de 3 compreendidos entre 100 e 132,
dispostos num vetor por ordem decrescente.
5. Criar um vetor de nmeros pares entre 31 e 75
6. Gere uma seqncia a comear em t e acabar em ~t com um passo de
15
t

.
7. Crie uma matriz 3 3 em que todos os elementos so iguais a 3.
8. Crie um vetor coluna com 100 elementos aleatrios com uma distribuio uniforme.
9. Crie uma matriz 4 4 em que todos os elementos so iguais a 1 + j2.
10. Com a funo eye crie uma matriz diagonal 4 4 em que todos os elementos da diagonal
so iguais a 3.
11. Gere o seguinte vetor: x comea em 0, vai at 152, passo 10*t.
12. Construa um vetor com 128 elementos com a seguinte seqncia.
13. [ 0 1 0 ~1 0 1 ... 0 ~1 ]
14. Crie uma matriz com dimenso 4 4 em que cada coluna seja o vetor v = [1, 2, 3, 4].
15. Forme a matriz quadrada com dimenso 66 constituda por quatro blocos em que os
elementos de cada bloco sejam "um ou zero, tal como ilustrado na seguinte matriz:
16.
1 1 1 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 1 1 1


17. Gere uma matriz com dimenso 88 constituda por nmeros aleatrios obtidos com a
funo rand, e obtenha uma sub-matriz constituda pelas colunas de ndice mpar
utilizando a tcnica de remoo de colunas.
Curso de MATLAB Matrizes, a Base do MATLAB
17
18. Resolva o exerccio anterior utilizando uma soluo sem "[].
19. Gere um vetor com todos os nmeros inteiros de 1 a 101 e elimine os elementos pares.
20. Considerando as seguintes matrizes:
0 23 83 14
12 11 10 9
8 7 6 5
4 3 2 1
= a
0 10 1 , 0
3 2 01 , 4
0 4 , 7
=
t
b

a) Atribua o elemento a
32
varivel c
b) Atribua o elemento b
22
varivel c
c) Atribua os elementos a
11
, a
12
e a
13
um vetor d
d) Atribua a 3 coluna da matriz b a um vetor d
e) Atribua a 2 linha de b primeira linha de a. Dica: preencha os espaos restantes com
0.
f) Atribua a 4 linha de a 2 linha de a.


Curso de MATLAB Operaes com Matrizes
18
3. Operaes com Matrizes e Vetores
3.1. Operaes Aritmticas com Matrizes
O MATLAB possui dois tipos diferentes de operaes aritmticas. As operaes aritmticas
matriciais so definidas pelas regras da lgebra Linear. As operaes aritmticas com vetores
so efetuadas elemento por elemento. O caractere de ponto decimal ". distingue as operaes
matriciais das operaes com vetores. No entanto, como as operaes matriciais e com vetor
so iguais para a soma e para a subtrao, o par de caracteres ". + e ". -" no so usados.
Considere o seguinte exemplo:

>> a=[1 2
3 4]
a = 1 2
3 4
>> b=[5 6
8 9]
b = 5 6
8 9
As operaes aritmticas bsicas com matrizes no MATLAB so:
+ Soma >> a+b
ans =
6 8
11 13
- Subtrao >> a-b
ans =
-4 -4
-5 -5
* Multiplicao >> a*b
ans =
21 24
47 54
Curso de MATLAB Operaes com Matrizes
19
.* Multiplicao escalar >> a.*b
ans =
5 12
24 36
/ Diviso matricial ( equivalente a a*b
-
1
)
>> a/b
ans =
2.3333 -1.3333
1.6667 -0.6667
./ Diviso escalar >> a./b
ans =
0.2000 0.3333
0.3750 0.4444
\ Diviso "esquerda (equivalente a
a
-1
*b)
>> a\b
ans =
-2.0000 -3.0000
3.5000 4.5000

As operaes acima citadas so definidas somente se as matrizes possurem as mesmas
dimenses. A exceo para a operao de multiplicao, em que definida somente se a
segunda dimenso de a for igual primeira dimenso de b.
Alm das operaes aritmticas bsicas, o MATLAB disponiliza tambm as seguintes
operaes com matrizes:
^ Potncia (matriz^escalar, equivalente
a a*a*a)
>> a^3
ans = 37 54
81 118
.^ Potncia escalar >> a.^b
ans = 1 64
6561 262144
' Transporta >> a'
ans =
1 3
2 4
Curso de MATLAB Operaes com Matrizes
20
() Precedncia >> a+b*a
ans =
24 36
38 56
>> (a+b)*a
ans =
30 44
50 74
3.2. Operadores ReIacionais
Os operadores usados para comparao de duas matrizes (ou mais matrizes) com as
mesmas dimenses so expressos por:

<
Menor
<=
Menor ou iguaI
>
Maior
>=
Maior ou iguaI
==
IguaI
~=
Diferente

A comparao feita entre os pares de elementos correspondentes e o resultado uma
matriz composta de nmeros um (1) e zero (0), representando respectivamente VERDADEIRO
e FALSO. Por exemplo,
>> 2 + 2 ~= 4
ans = 0
Para uma matriz essa operao relacional seria feita da seguinte forma:
>> a=[2 3 4;5 2 7;9 2 7]
a =
2 3 4
5 2 7
9 2 7
~~ a~3
Curso de MATLAB Operaes com Matrizes
21
ans
0 0 1
1 0 1
1 0 1

Os operadores "<, "<=", ">, e ">= apenas usam a parte real dos operandos para
comparao. Os operadores "== e "~= testam tanto a parte real como a imaginria. Estes
operadores tm precedncia entre os operadores lgicos e aritmticos.
Uma alternativa para os operadores relacionais a funo find(). Segue um exemplo de sua
utilizao:
>> a=rand(3)
a =
0.8501 0.1824 0.6509
0.2488 0.0707 0.9050
0.8953 0.0096 0.7060
>> find (a>0.8)
ans =
1
3
8
Existem ainda algumas funes que so teis com os operadores lgicos, com any ou aII.
Por exemplo:
>> a=[1:6]
a =
1 2 3 4 5 6
>> any(a>4) %Existe algum elemento do vetor maior que 4?
ans =
1
>> all(a>4) %Todos os elementos do vetor so maiores que 4?
ans =
0
Curso de MATLAB Operaes com Matrizes
22
3.3. Operadores Lgicos
Os smbolos "&", "|", e "~" correspondem respectivamente aos operadores lgicos AND, OR
e NOT. Permitem efetuar operaes lgicas entre matrizes com a mesma dimenso compostas
por elementos zero (0) e um (1) que correspondem a FALSO e a VERDADEIRO,
respectivamente. a & b realiza o AND lgico, a | b efetua o OR lgico, e ~a apresenta o
complemento dos elementos de A. A funo xor(a,b) implementa a operao OR excIusivo.

&
"e" Igico
|
"ou" Igico
~
Negao
xor()
"ou" excIusivo

Essas operaes podem ser visualizadas pela seguinte "tabela verdade:


A

B
And
&
OR
|
XOR
xor
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Os operadores lgicos possuem a precedncia mais baixa em comparao aos operadores
aritmticos e relacionais. A precedncia entre os diversos operadores lgicos dada por:
- NOT possui a precedncia mais elevada;
- AND e OR tm igual precedncia, e so avaliados da esquerda para a direita.

Considere as seguintes matrizes:
>> a=rand(1,3)
a =
0.2652 0.4187 0.2065

b =
0.5648 0.8486 0.5509
Curso de MATLAB Operaes com Matrizes
23
>> a<b & a>0.3
ans =
0 1 0
3.4. Exerccios
20. Considere os vetores e matrizes:
a=3,132
1
0
81 , 9
= f
43 13 0
74 65 , 4 32
87 34 5

= i
b=-23,004
i
i
e
g
*
4
8 12
t

=
c=5*t
24 51 9
12 4 2 1
2 5 , 2 32 , 0
e h
t +
=
43 , 7 4 , 5 3 = d

21. Realize as seguintes operaes aritmticas:
a) a + b +eps
b) g c * f
c) c b * (a / b) f) h* i
d) d e g) a * h i/ c
e) e' + 2 * f
f) f*i
22. Seja o vetor x = 1:10. Verifique as afirmativas:
a) (x.^2) == ( x.*x)
b) a = [1 2 3; 4 5 6; 7 8 9]; a^2 == a.^2
c) any((x.^3)>(3*x))
Curso de MATLAB Operaes com Matrizes
24
d) all((x./(x+1))>((x+1)./(x+1.5)))
23. Extrair a partir do vetor x do exerccio anterior:
a) Elementos maiores que 5.
b) Elementos diferentes de 3 e 5.
c) Elementos iguais a 2 5 8 9.
d) Elementos cujo resto da diviso por 3 1. Dica: utilize a funo rem.
24. Gere a seqncia {1, 2, 3, . . . , 9, 10} e extraia os nmeros maiores que 4.
25. Gere uma seqncia aleatria com distribuio normal e elimine os elementos negativos.
26. Dado que x = [1 5 2 8 9 0 1] e y = [5 2 2 6 0 0 2], executar e explicar os resultados dos
seguintes comandos:
a) x > y
b) y < x
c) x == y
d) x <= y
e) y >= x
f) x | y
g) x & y
h) x & (~y)
i) (x>y)|(y<x)
j) (x>y)&(y<x)
k) Eliminar variveis criadas nestes exerccios.
27. Gere uma seqncia aleatria com distribuio normal e calcule o nmero de elementos
negativos.
28. Gere um sinal aleatrio com distribuio uniforme e com 1000 amostras. Obtenha o de
nmero de amostras com uma amplitude superior a 0.9. Calcule em seguida o nmero de
amostras cujo mdulo possui uma amplitude entre 0.5 e 0.7.
29. Dado x = [3 15 9 12 -1 0 -12 9 6 1], implemente os comandos para:
a) Setar os valores positivos de x para zero;
b) Setar os valores que so mltiplos de 3 para 3;
c) Multiplicar os valores que so pares por 5;
d) Extrair os valores maiores que 10 para um vetor y;
Curso de MATLAB Operaes com Matrizes
25
e) Setar os valores que so menores que a media de x para zero;
f) Setar os valores que so maiores que a media para sua diferena para media

Curso de MATLAB Funes, tudo pronto no MATLAB
26
4. Funes
4.1. Funes EscaIares
Algumas funes no MATLAB operam essencialmente sobre escalares, mas operam sobre
cada elemento se forem aplicadas a uma matriz. As funes escalares mais comuns so:


exp

exponencial
>> exp(5)
ans =
148.4132

abs

VaIor absoIuto
>> abs(-2.9)
ans =
2.9000

log

Logaritmo naturaI
>> log(1)
ans =
0

log10

Logaritmo base 10
>> log10(10)
ans =
1

sqrt

Raiz quadrada
>>sqrt(81)
ans =
9

sin

Seno
>> sin(pi/2)
ans =
1

asin

Arco seno
>> asin(1)
ans =
1.5708

tan

Tangente
>> tan(60)
ans =
0.3200

atan

Arco tangente
>> atan(60)
ans =
1.5541

round

Arredondamento ao inteiro mais prximo
>> round(0.5)
ans =
1

floor

Arredondamento ao inteiro mais prximo na
direo de menos infinito (- )
>> floor(0.5)
ans =
0


ceil
Arredondamento ao inteiro mais prximo na
direo de mais infinito (+ )
>> ceil(0.1)
ans =
1
Curso de MATLAB Funes, tudo pronto no MATLAB
27
rem Resto da diviso

sign Funo sinaI


4.2. Funes Estatsticas
O MATLAB possui uma grande variedade de funes estatsticas para analisar dados.
Quando estas funes recebem uma matriz como entrada, a operao aplicada sobre cada
coluna da matriz. Para calcular a mdia de cada uma das colunas de uma matriz podemos
fazer:
>> m=randn(100,3);
>> mean(m)
ans =
-0.0099 -0.1476 -0.0677
Para calcular o desvio padro pode-se fazer
>> std(m)
ans =
0.9977 0.9659 0.9777
E para obter um histograma de cada coluna de m:
>> hist(m)
-3 -2 -1 0 1 2 3
0
5
10
15
20
25

Se pretender um histograma com mais classes basta acrescentar um segundo argumento
funo com o nmero pretendido.

Curso de MATLAB Funes, tudo pronto no MATLAB
28
4.3. Funes Vetoriais
Outras funes do MATLAB operam essencialmente sobre vetores (Iinha e coIuna), mas
numa matriz n x m, agem de coluna por coluna para produzir um vetor linha com o resultado da
sua aplicao para cada coluna. possvel operar sobre linha por linha transpondo a matriz,
por exemplo: mean(v')'.

v |0.9103 0.3282 0.2470 0.0727 0.7665; 0.7622 0.6326 0.9826 0.6316 0.4777; 0.2625 0.7564 0.7227
0.8847 0.2378; 0.0475 0.9910 0.7534 0.2727 0.2749; 0.7361 0.3653 0.6515 0.4364 0.3593|

~~mean (v')'
ans 0.4649
0.6973
0.5728
0.4679
0.5097

Outros exemplos de funes vetoriais que permitem a anlise da informao contida nas
colunas das matrizes so detalhados na tabela abaixo. Considere o vetor exemplo:
v = rand(1,5) v = 0.2028 0.1987 0.6038 0.2722 0.1988:


max

Valor mximo dos elementos de cada
coluna
>> max(v)
ans =
0.6038

sum

Soma dos eIementos de cada coIuna
>> sum(v)
ans =
1.4763

median

VaIor mediano de cada coIuna
>> median(v)
ans =
0.2028

min

VaIor mnimo dos eIementos de cada
coIuna
>> min(v)
ans =
0.1987

prod

Produto dos eIementos de cada coIuna
>> prod(v)
ans =
0.0013
sort Organizao dos eIementos da coIuna
por ordem decrescente de vaIor
>> sort(v)
ans =
0.1987 0.1988 0.2028 0.2722 0.6038




Curso de MATLAB Funes, tudo pronto no MATLAB
29
4.4. Funes Matriciais
Grande parte da versatilidade do MATLAB vem das suas funes matriciais. As mais
usadas so detalhadas na tabela abaixo. Considere a matriz exemplo abaixo:
>>m=[1 2 3 4; 5 6 7 8]
m =
1 2 3 4
5 6 7 8


size

Retorna um vetor contendo o tamanho de cada
dimenso da matriz.
>> size(m)
ans =
2 4

length

Retorna o comprimento do vetor ou dimenso
mxima do da matriz.
>> length(m)
ans =
4

diag

Retorna a diagonaI de uma matriz ou cria uma
matriz diagonaI.
>> diag(m)
ans =
1
6
fliplr Inverte a ordem dos eIementos da matriz da
esquerda para direita
fliplr(m)
ans =
4 3 2 1
8 7 6 5

flipud

Inverte a ordem dos eIementos de cima para baixo.
>> flipud(m)
ans =
5 6 7 8
1 2 3 4


reshape


Reformata matriz
>> m=1:6
m =
1 2 3 4 5 6
>> m2=reshape(m,2,3)
m2 =
1 3 5
2 4 6


4.5. Script e Funes
Os comandos do MATLAB so normalmente introduzidos atraves da fanela de comando, onde uma
unica linha de comando e introduzida e processada imediatamente.
Curso de MATLAB Funes, tudo pronto no MATLAB
30
O MATLAB e tambem capaz de executar seqncias de comandos armazenadas em arquivos. Os
arquivos que contm as declaraes do MATLAB so chamados arquivos ".m", e consiste em
seqncias de comandos normais do MATLAB escrito no Iormato texto (ASCII).
Para editar um arquivo texto na fanela de comando do MATLAB utilize o comando 'edit. Os arquivos
podem, tambem, ser editados Iora do MATLAB utilizando qualquer editor de texto. Existem dois tipos
de arquivos m:
- Script Seqncia de comandos do Matlab, que serve basicamente para automatizar algum
processo repetitivo. Alem disso, no trabalha com parmetros de entrada nem de saida, sempre
trabalha com variaveis do workspace (variaveis predeIinidas e deIine variaveis no
workspace);
- Funo Tambem uma e uma seqncia de comandos do Matlab, mas que aceita parmetros
de entrada, retorna parmetros de saida, e na qual e possivel implementar, alem de calculos,
estruturas logicas para criao de mecanismos de analise, deciso e controle. Funes utilizam
seu proprio espao de memoria para armazenar suas variaveis locais.
4.6. Exerccios
30. Dado um vetor t = 1:0. 2:2, calcular as seguintes expresses:
a. ln(2 + t + t^2)
b. cos(t).cos(t)+sin(t).sin(t)
c. arc tg(t)
d. cot(t)
e. sec(t)*sec(t)+cot(t)-1
31. Calcular as expresses com o MATLAB
a. 2 + round (6/9+3*2)/2-3
b. 2 + floor(6/9+3*2)/2-3
c. 2 + ceil(6/9+3*2)/2-3

32. Gere um vetor com um milho de amostras obtidas com a funo rand. Calcule a sua
mdia, desvio padro e visualize o seu histograma com 100 classes.
33. Gere agora um vetor com um milho de amostras com a funo randn.Calcule a sua
mdia, desvio padro e visualize o seu histograma com 100 classes. Quais as diferenas
em relao ao exemplo anterior?
Curso de MATLAB Funes, tudo pronto no MATLAB
31
34. Gere uma seqncia com 100 elementos iguais unidade e calcule a sua mdia e desvio
padro.
35. Entre a seguinte matriz:
12 11 10 9
8 7 6 5
4 3 2 1

Ento execute os seguintes comandos sobre esta matriz: rot90, diag, tril, triu.
36. Dado o vetor a = [2 7 9 7; 3 1 5 6; 8 1 2 5], explique o resultado dos seguintes comandos:
a. reshape(A,2,6)
b. flipud(a)
c. fliplr(a)
d. a(1:3,:)
e. [a; a(1:2,:)]
f. sum(a)
g. sum(a')
h. sum(a,2)
i. [[a; sum(a)][sum(a,2); sum(a(:))]]

Curso de MATLAB Programao em MATLAB
32
5. Importao e Exportao de Arquivos
5.1. Comandos LOAD e SAVE

Com estes comandos possvel guardar num arquivo, variveis do MATLAB que estejam no
workspace. O comando save permite guardar as variveis para disco e o comando load permite
carreg-las para o workspace. O exemplo seguinte ilustra a funcionalidade destes comandos.

>>a= rand(2)
a =
0.61543 0.92181
0.79194 0.73821
>>b= rand(1,3)
b=
0.9501 0.2311 0.6068
>>save arquivo a b
>>load arquivo

Se nenhum nome de arquivo for fornecido, as variveis sero armazenadas em arquivo
chamado MATLAB.mat. O arquivo do tipo .mat o formato de armazenamento de dados mais
eficiente (mais compacto e rpido) disponvel no MATLAB.

Os comandos load e save permitem igualmente guardar arquivos em formato ASC
(American Standard Code for Information Interchange), cdigo padro para representao de
caracteres como letras, dgitos, sinais de pontuao, cdigos de controle e outros smbolos.
Tambm denomina o arquivo texto que foi editado sem qualquer recurso associado
(acentuao, negrito, sublinhado, fontes de letras, etc.). Sendo mais fcil para o usurio
verificar o contedo com um simples editor de texto. Abaixo um exemplo da utilizao desse
parmetro:
>>save arquivo a b -ascii
Curso de MATLAB Programao em MATLAB
33
5.2. Comando IMPORTDATA - Importao de Dados
O comando importdata verifica a extenso do nome do arquivo fornecido e executa a
importao dos dados utilizando a funo conveniente. A sintaxe deste comando a seguinte:
estrutura_de_dados = importdata(arquivo)
Parmetros de entrada:
- Arquivo nome do arquivo a ser importado;
Parmetro de sada:
- estrutura_de_dados - estrutura de dados importados.

Abaixo segue os Iormatos reconhecidos pela Iuno importdata:

Extenso Descrio Funo
MAT Formato Matlab load
CVS Numero separados por ,` cvsread
DLM Numero delimitado dlmread
TAB Numeros tabulados dlmread
XLS Planilhas do MS-Excel xlsread
WK1 Planilha do Lotus 123 wk1read
AVI Formato de animao (video) aviread
TIFF
PNG
BMP
GIF
PCX
ICO


Formatos de imagens.


imread
AU Formato de audio auread
WAV Formato de audio wavread
A utilizao do comando importadata (no lugar do comando Ioad) altamente
recomendvel, devido a sua versatilidade na abertura de diferentes tipos de arquivos no
MATLAB.
Curso de MATLAB Programao em MATLAB
34

5.3. Exportao de Dados Formatados
A utilizao do comando save possui a desvantagem de no permitir a formatao dos dados
de sada. Para suprir essa necessidade, foi definida uma srie de comandos especiais para a
utilizao de sadas formatadas de dados no MATLAB. Os principais comandos seriam: fopen,
fcIose, fprintf.
5.4. Comando FOPEN - Exportao de Dados Formatados
Abre arquivos, sua sintaxe a seguinte:
fp=fopen(arquivo,acesso)
[fp, msg]=fopen(arquivo,acesso)
Parmetros de entrada:
- Arquivo nome do arquivo
- Acesso tipo de acesso:
'r' apenas para leitura;
'w' gravao (cria arquivo se necessrio);
'a' para anexao (cria arquivo se necessrio).

Parmetro de sada:
- fp apontador para arquivo (file pointer);
- msg em caso de erro na abertura do arquivo, retorna a mensagem de erro.

>>[fp,msg]=open('arquivo1.txt', 'r');
fp=3
msg=' '

>>[fp,msg]=open('arquivo1.txt', 'r');
fp=-1
msg=
Cannot open file. Existence? Permissions? Memory? . . .


No caso de abertura de arquivo correta (primeiro exemplo), a funo fopen retorna
mensagem de erro vazia. No caso de erro de abertura de arquivo (segundo exemplo), a funo
retorna -1.

Curso de MATLAB Programao em MATLAB
35
5.5. Comando FCLOSE - Exportao de Dados Formatados
Fecha arquivo, sua sintaxe a seguinte:

st=fclose(fp)
st=fclose(all)

Parmetros de entrada:
- fp apontador do arquivo a ser fechado (file pointer);
- all fecha todos os arquivos abertos.
Parmetros de sada:
- st status da execuo da funo. 0 indica execuo correta e -1, erro.

>>st=fclose(fp);

5.6. Comando FPRINTF - Exportao de Dados Formatados
Essa instruo grava dados em arquivos formatados. Sua sintaxe a seguinte:

nbyte = fprintf(fp,fmt, dados)

Parmetro de entrada:
- fp apontador do arquivo (file pointer);
- dados dados a serem gravados;
- fmt - cadeia de caracteres com formato de gravao de cada dado (similar ao utilizado
em linguagem C/C++).

Parmetro de sada:
- nbyte nmero de bytes gravados.

>>fp=fopen('dados.txt','w'); %cria arquivo
>>x=rand|(3);
>>fprintf(fp,'%f %f %f \n');
Curso de MATLAB Programao em MATLAB
36
ans=
81
>>fclose(fp);

A funo fprintf trabalha com matrizes e trata, eficientemente, o conjunto de dados em uma
s chamada. Desta forma, no necessrio criar um procedimento de repetio (for ou whiIe)
5.7. Exerccios
37. Escrever uma rotina em MATLAB, para contar e exibir a freqncia de cada valor de uma
seqncia de N valores. Por exemplo, para N = 8, se a seqncia for:
17 30 00 15 00 17 23 17
o programa deve mostrar algo semelhante a:
17 ocorre 3 vezes
30 ocorre 1 vez
00 ocorre 2 vezes
15 ocorre 1 vez
23 ocorre 1 vez
O programa deve ler o valor N, e os valores da seqncia de um arquivo chamado seq.txt
que tenha sido digitado previamente.

Curso de MATLAB Programao em MATLAB
37
6. Programao em MATLAB
6.1. Estruturas de ControIe no MATLAB
Os comandos que controlam o fluxo especificam a ordem e a estrutura de clculo do
programa. No MATLAB estes comandos so semelhantes aos usados na linguagem C, mas
com uma estrutura diferente. O MATLAB apresenta as seguintes estruturas de controle:
- Estruturas de repetio: for e while;
- Estruturas condicionais: if-else-end e switch-case.
6.2. Estrutura de Repetio - Instruo FOR
Esta instruo permite a repetio de um conjunto de instrues. A sintaxe de utilizao a
seguinte:
for varivel= incio:passo:fim,
nstruo 1
nstruo 2
...
end
A seguir podemos ver alguns exemplos de utilizao
>>r= 10;
>>for n= 1:10,
>>r= r+10
>>end
No difcil verificar que a expresso direita do sinal de igual na instruo for apenas cria
um vetor e que se pode utilizar a instruo for da seguinte forma
>>r=10;
Curso de MATLAB Programao em MATLAB
38
>>v= 1:10;
>>for n= v,
>>r= r+10
>>end
A instruo for s deve ser utilizada quando no se encontra outra forma de implementar o
algoritmo, pois como veremos no tpico sobre Otimizao de algoritmos no MATLAB, torna a
execuo do programa muito lenta uma vez que o Matlab utiliza uma linguagem interpretada.
6.2. Estrutura de Repetio - Instruo WHILE
Estrutura de repetio usada quando no se sabe, a priori, o nmero de iteraes que sero
executadas. Em geral, a expresso um escalar, mas vetores tambm so vlidos.
Sua sintaxe pode se descrita como:

whiIe expresso
instruo
end

Segue um exemplo da utilizao da instruo while:
a = l;
b = 15;
whiIe a<b,
a = a+l
b = b-l
end
disp('fim do loop')

Outro exempIo de utiIizao da instruo whiIe:
Curso de MATLAB Programao em MATLAB
39
%CalculaMedia1 em "MatLab"- usando o comando while
acumulador = 0;
n = 0;
while n<5,
numero = input('Digite o valor: ');
disp('O nmero digitado foi: ');
disp(numero);
n = n+1;
acumulador = acumulador + numero;
end;
media = acumulador/n;
disp('A soma dos nmeros : ');
disp(acumulador);
disp('A mdia dos nmeros : ');
disp(media);

6.3. Estrutura CondicionaI - Instruo IF
Estrutura condicional em que uma seqncia de comandos executada dependendo do
resultado de uma condio lgica. H trs variantes no MATLAB de estruturas if-else-end:
A variante mais simples a seguinte:

if expresso
instruo
end

A variante mais utilizada a seguinte:

if expresso
instruo
eIse
instruo
end

A variante menos utilizada a que utiliza a expresso if-else-end:

If expresso 1
Curso de MATLAB Programao em MATLAB
40
instruo
eIseif expresso 2
instruo
eIseif expresso 3
.
.
.
eIse
instruo
end


Exemplo de utilizao da instruo if-else:

for i = 1:5,
for j = 1:5,
if i == j
A(i,j) = 2;
else
if abs(i-j) == 1
A(i,j) = -1;
else
A(i,j) = 0;
end;
end;
end;
end;

6.4. Estrutura CondicionaI - Instruo CASE
Estrutura condicional baseada em diferentes testes de igualdade de um mesmo argumento,
no mximo, uma das aes executada.
A expresso deve ser um escalar ou uma string. Se expresso for um escalar, ento o teste
feito expresso == opo. Se expresso for uma string, ento o teste feito strcmp
(expresso, opo). O otherwise (opcional) executado quando todos os testes anteriores
foram falsos.
A sintaxe da instruo case a seguinte:
Curso de MATLAB Programao em MATLAB
41
switch expresso
case opo 1
instruo
case opo 2
instruo
: : :
otherwise
instruo
end
Abaixo segue um exemplo de utilizao da instruo switch:
x = input('Digite um real: ');
unidades = input('Digite a unidade: ');
switch unidades
case 'polegadas','pol'g
y=x*2.54;
case f'pes','p'g
y = x*2.54/12;
case f'metros','m'g
y = x/100;
case f'milimetros','mm'g
y =x;
otherwise
disp(['Unidade desconhecida: ' unidades])
y = NaN;
end
Curso de MATLAB Programao em MATLAB
42
6.5. comando de Parada - BREAK
Durante a execuo de um lao de repetio, muitas vezes conveniente utilizar outra forma de
controle de sada deste lao alm do uso do teste. Para tanto, tem-se a opo do comando break, o qual
permite uma sada antecipada de um lao for ou while.
O comando break faz com que o lao mais interno seja terminado imediatamente.
Por exemplo:
%CalculaMedia
acumulador = 0;
n = 0;
whiIe n<5,
numero = input('Digite o valor: ');
disp('O nmero digitado foi: ');
disp(numero);
x = input('Continua? S/N: ');
if x == 'N'
break
eIse
n = n+1;
acumulador = acumulador + numero;
end;
end;
media = acumulador/n;
disp('A soma dos nmeros : ');
disp(acumulador);
disp('A mdia dos nmeros : ');
disp(media);

Curso de MATLAB Programao em MATLAB
43
6.6. Arquivos ".m"
Os comandos do MATLAB so normalmente digitados na Janela de Comando, onde uma
nica linha de comando introduzida e processada imediatamente. O MATLAB tambm
capaz de executar seqncias de comandos armazenadas em arquivos.
O arquivo que contm as declaraes do MATLAB chamado arquivos ".m", e consistem de
uma seqncia de comandos normais do MATLAB, possibilitando incluir outros arquivos ".m"
escrito no formato texto (ASC).
Para editar um arquivo texto na Janela de Comando do MATLAB selecione New M-FiIe para
criar um novo arquivo ou Open M-FiIe para editar um arquivo j existente, a partir do menu
FiIe. Os arquivos podem, tambm, ser editados fora do MATLAB utilizando qualquer editor de
texto.
Existem alguns comandos e declaraes especiais para serem usados nos arquivos, por
exemplo:
%Plota uma funo y=ax^2 + bx + c no intervalo -5<x<5clear
aux='s';
whiIe aux= = 's',
clc
a=input('a =');
b=input('b =');
c=input('c =');
x=-5:0.1:5;
y=a*x.^2+b*x+c;
plot(y)
figure(1)
pause
clc
close
aux=input('Plotar outro ? (s/n) = => ','s');
end
O caractere % usado para inserir um comentrio no texto, o comando cIear apaga todos os
dados da memria, o comando input usado quando se deseja entrar com um dado a partir da
Janela de Comando, pause provoca uma pausa na execuo do arquivo at que qualquer
tecla seja digitada, cIc limpa a Janela de Comando, figure(1) mostra a Janela Grfica nmero
1 e cIose fecha todas as Janelas Grficas.
6.7. Exerccios
Curso de MATLAB Programao em MATLAB
44
38. Gere um vetor com N elementos aleatrios. Escreva uma funo que tenha como entrada
o vetor, e retome o ndice e o valor do maior elemento do vetor, utilizando o comando if.
39. Construa um script que gere duas matrizes A e B de dimenso 4x4 , sendo que os
elementos da matriz A devem ser obtidos randomicamente, e os elementos de B devem
ser gerados a partir do elemento correspondente em A acrescido de 0.5. Por fim, exiba
ambas as matrizes geradas.
40. Construa um arquivo ".m" que solicite a um usurio a entrada de um valor, e calcule e
informe o fatorial deste nmero. Obs: No utilize a funo fatorial do MatLab.
41. Modifique o arquivo gerado no item 2 de forma que o programa passe a solicitar ao
usurio a quantidade de nmeros para os quais ser calculado o fatorial.
42. Gere um vetor com N elementos aleatrios. Escreva uma funo que tenha como entrada
o vetor, e retome o ndice e o valor do maior elemento do vetor, utilizando o comando if.
43. Escreva um programa (utilizando o comando while) que aceite entradas numricas pelo
teclado. Os valores devem ser nmeros entre 0 e 5, e caso o usurio digite algum valor
fora deste intervalo, o programa encerrado.
44. Em uma sala esto 8 pessoas, reunidas em uma mesa circular. Cada uma escolhe um
nmero aleatoriamente e pega o seu nmero e soma com os nmeros das pessoas ao
lado, a sua esquerda e direita. Passa-se as 8 somas para voc, que estava fora da
reunio. Como voc descobre o nmero que cada pessoa escolheu? Utilize o MATLAB.
45. Em uma sala esto oito pessoas, reunidas em uma mesa circular. Cada uma escolhe um
nmero aleatoriamente e pega o seu nmero e soma com os nmeros das pessoas ao
lado, a sua esquerda e direita. Passa-se as 8 somas para voc, que estava fora da
reunio. Como voc descobre o nmero que cada pessoa escolheu? Utilize o MATLAB.
Curso de MATLAB Programao em MATLAB
45
BibIiografia

GASPAR, P. D., SANTO, A. S. Apontamento de MATLAB: Introduo ao MATLAB.
Universidade da Beira nterior, Departamento de Engenharia Electromecnica: Controlo de
Sistema. Abril, 2004.

TODESCO, Jos Leomar, Curso Introdutrio de MATLAB, UNVERSDADE
FEDERAL DE SANTA CATARNA, 1995.

MATSUMOTO, E. Y. MATLAB 6: Fundamentos de programao. So Paulo: rica , 2001