Documente Academic
Documente Profesional
Documente Cultură
HENRIQUE
DEPARTAMENTO DE MQUINAS MARTIMAS
MANUAL
DE INTRODUO
AO
MATLAB
Por:
Prof. Luis Fernandes Mendona
E.N.I.D.H. - 2003/2004
ENIDH/DMM Luis M. Mendona Pg.1
CAPTULO
1
INTRODUO AO
MATLAB
O MATLAB um software interactivo constitudo por um conjunto de ferramentas
matemticas que proporcionam uma grande ajuda nos clculos de engenharia. Neste
software as matrizes assumem um papel fundamental.
O nome MATLAB advm da combinao de 2 palavras, MATrix LABoratory.
Inicialmente escrito em FORTRAN, o MATLAB hoje inteiramente escrito em
linguagem C, sendo um sistema integrado, incluindo grficos e macros programveis.
No Ensino Superior, o MATLAB tornou-se uma ferramenta muito importante,
utilizada em diferentes matrias como a lgebra linear e a anlise de sistemas de
controlo, entre outras.
Na indstria, o MATLAB utilizado na procura e na resoluo de problemas prticos
de engenharia.
PLANO DO CAPTULO
1.1 Command Window
1.2 Operaes Aritmticas
1.3 Variveis em MATLAB
1.4 Comentrios e Pontuao
1.5 Nmeros Complexos
1.6 Funes Matemticas
1.7 Ficheiros Script ou m-files
1.8 Como Encontrar Ajuda no MATLAB
ENIDH/DMM Luis M. Mendona Pg.2
1.1 COMMAND WINDOW
Quando iniciamos o MATLAB aparece-nos uma janela, designada por Command window,
atravs da qual iremos fazer a interaco com o programa. Nela aparece, alm de uma barra
de menus, o smbolo (prompt), que nos indica que o MATLAB est pronto para executar as
operaes e instrues por ns introduzidas.
Commands to get started: intro, demo, help help
Commands for more information: help, whatsnew, info, subscribe
No quadro seguinte apresentam-se alguns comandos muito utilizados:
Command Window
clc
Limpa o contedo do Command window.
diary
Grava o contedo do Command window
para um ficheiro de texto chamado diary.
diary nome_ficheiro
Grava tudo o que se passa durante uma
sesso (excepto grficos) para o ficheiro
escolhido. Se depois escrevermos diary off
o MATLAB interrompe a gravao do que
se passa. Se introduzirmos o comando diary
on o MATLAB retoma a gravao.
home
Move o cursor para o canto superior
esquerdo.
more
Obriga os dados a sarem para o ecr pgina
a pgina. (more on e more off)
O comando more(n) obriga sada de n
linhas por ecr.
1.2 OPERAES ARITMTICAS
O MATLAB possui todas as operaes bsicas da matemtica podendo ser utilizado com
uma simples mquina de calcular. Aqui esto alguns exemplos:
56/8
ans =
7
8\56
ans =
7
ENIDH/DMM Luis M. Mendona Pg.3
4+2
ans =
6
4*250 + 2*100
ans =
1200
OPERAES ARITMTICAS
OPERAO SMBOLO EXEMPLO
Adio, a + b + 5 + 3
Subtraco, a b - 23 - 12
Multiplicao, a . b * 3.14 * 0.85
Diviso, a b / ou \ 56/8 = 8\56
Potenciao, a
b
^ 5^2
As regras de precedncia utilizadas na avaliao das expresses so as seguintes: as
expresses so avaliadas da esquerda para a direita, em que a operao de maior precedncia
a potenciao, depois vm as operaes de multiplicao e diviso, e por fim as operaes
de adio e subtraco.
Utilizam-se parnteses para alterar as precedncias e o modo como as operaes so
avaliadas.
FORMATOS NUMRICOS
No MATLAB podemos apresentar os nmeros segundo diversos formatos. Aqui esto
alguns exemplos:
preco=1/3
preco =
0.3333
format long preco % Utiliza 16 dgitos
preco
preco =
0.33333333333333
format short e % Utiliza 5 dgitos mais expoente
preco
preco =
3.3333e-001
format long e % Utiliza 16 dgitos mais expoente
preco
ENIDH/DMM Luis M. Mendona Pg.4
preco =
3.333333333333333e-001
format hex % O nmero escrito em formato hexadecimal
preco
preco =
3fd5555555555555
format bank % Escreve o nmero utilizando duas casas decimais
preco
preco =
0.33
format rat % Utilizando fraces
preco
preco =
1/3
format short % Utiliza 5 dgitos
preco
preco =
0.3333
Nota: A representao interna dos nmeros no alterada quando se utilizam estes
comandos
1.3 VARIVEIS EM MATLAB
Considerando o exemplo da pgina anterior vamos mostrar que podemos efectuar os
mesmos clculos utilizando variveis:
cadernos=4
cadernos =
4
canetas=2
canetas =
2
itens=cadernos+canetas
itens =
6
custo_total=cadernos*250+canetas*100
custo_total =
1200
Quando se atribuem nomes s variveis h que ter em conta as seguintes observaes:
ENIDH/DMM Luis M. Mendona Pg.5
Ter cuidado com a utilizao de letras maisculas e minsculas.
Caderno, caderno e cadErno - so 3 variveis diferentes para o MATLAB.
As variveis devem ter no mximo 19 caracteres pois o MATLAB ignora os restantes
caracteres.
equetalestenomeparaumavariavel=2
equetalestenomepara =
2
As variveis no podem ter smbolos de pontuao. permitido utilizar o smbolo _
.
e_que_tal_este_nome_para_uma_variavel =0
e_que_tal_este_nome =
0
Variveis Especiais
Ans
Varivel onde so guardados, por defeito, os
resultados das operaes - ans o diminutivo
de ANSwer.
pi
Valor de = 3.1416.
Eps
Unidade de arredondamento da mquina, i.e.,
o menor valor que adicionado a 1 representa
um nmero maior que 1
Flops
Contador do nmero de operaes efectuadas.
Estamos a falar de operaes em vrgula
flutuante.
Inf
Representa +, isto , 1/0
NaN
Not-a-Number, smbolo que representa 0/0 ou
outra expresso no determinada.
MATLAB WORKSPACE
O MATLAB recorda-se de todos os comandos que vo sendo introduzidos ao longo de
uma sesso, permitindo que os utilizadores repitam ou aproveitem comandos inseridos
noutras alturas. De igual modo, todas as variveis que vo sendo definidas ao longo da sesso
ficam disponveis para serem utilizadas em ocasies futuras.
O local onde esta informao est guardada designa-se por MATLAB workspace.
De seguida enumeram-se algumas das coisas que podemos fazer, relacionadas com o
workspace:
ENIDH/DMM Luis M. Mendona Pg.6
Podemos utilizar as teclas e para rever os comandos anteriormente inseridos. Para
alterar a estrutura de um desses comando socorrermo-nos das teclas e .
Se quisermos obter uma lista com as variveis presentes no workspace basta utilizar o
comando who. Tambm podemos utilizar o comando whos que juntamente com os
nomes das variveis refere, tambm, qual a memria que cada uma ocupa assim como a
sua dimenso - o que muito til se as variveis forem matrizes.
who
Your variables are:
ans canetas itens
cadernos custo_total
Tambm possvel gravar o contedo do Workspace para um ficheiro. Para isso
podemos utilizar o menu [File] [Save Workspace As] ou utilizar os comandos
save e load. As variveis presentes no Workspace podem ser gravadas em formato
binrio ou formato ascii.
Se utilizarmos apenas o comando save sem especificar qual o nome do ficheiro em que
pretendemos guardar a informao, ela ser gravado no ficheiro matlab.mat.
(Para obter uma explicao mais completa deste comando escreva help save)
save
Saving to: matlab.mat
save meu
% grava as variveis em format binrio para o ficheiro meu.mat
save dados canetas cadernos custo_total -ascii
% as variveis foram gravadas em formato ascii
% podemos escolher quais as variveis que queremos gravar
Podemos remover alguma ou todas as variveis presentes no Workspace utilizando o
comando clear.
who
Your variables are:
ans equetalestenomepara
cadernos itens
canetas preco
custo_total e_que_tal_este_nome
clear cadernos
who
Your variables are:
ENIDH/DMM Luis M. Mendona Pg.7
ans equetalestenomepara
canetas itens
custo_total preco
e_que_tal_este_nome
% se escrevermos o comando clear sem nenhum argumento o MATLAB apaga
todas as variaveis
1.4 COMENTRIOS E PONTUAO
Para introduzir comentrios deve utilizar-se o smbolo %.
canetas=10 % Nmero de canetas%
canetas =
10
% tudo o que est para a frente deste smbolo % ignorado
Quando inserimos um comando no MATLAB ele produz um eco, i.e., surge uma
confirmao da operao efectuada no ecr. Se no quisermos que tal acontea devemos
utilizar o smbolo ;.
canetas=10 % este comando produz eco
canetas =
10
canetas=10; % este comando no produz eco
Podemos utilizar a virgula (,) para introduzir vrios comando na mesma linha
canetas=3, vidros=20, lapis=4
canetas =
3
vidros =
20
lapis =
4
Se quisermos concluir um comando na linha seguinte devemos utilizar o smbolo .
itens=canetas+ ...
lapis+vidros
itens =
27
ENIDH/DMM Luis M. Mendona Pg.8
% os ... dizem ao Matlab que o resto do comando segue na prxima linha.
% nao pode ser utilizado na continuao de comentrios nem de nomes de
variveis.
1.5 NMEROS COMPLEXOS
No MATLAB a definio de nmeros complexos faz-se de uma maneira natural, apesar
disso, eles podem ser definidos utilizando vrios mtodos:
Definio de um complexo utilizando o i para identificar a parte imaginria.
c1=1-2i
c1 =
1.0000 - 2.0000i
Definio de um complexo utilizando o j para identificar a parte imaginria.
c1=1-2j % o j tambm serve
c1 =
1.0000 - 2.0000i
Definio de um complexo utilizando o sqrt(-1) para identificar a parte imaginria.
c2=3*(2-sqrt(-1)*3)
c2 =
6.0000 - 9.0000I
Definio de um complexo em funo de outro complexo.
c4=6+sin(.5)*i % neste caso foi necessrio por sin(.5)*I
c4 =
6.0000 + 0.4794i
Sempre que aparecem razes de nmeros negativos ento o MATLAB considera esse
valor como um complexo.
c3=sqrt(-2)
c3 =
0 + 1.4142i
As operaes aritmticas entre complexos so escritas de forma semelhante ao que se fazia
para os reais.
ENIDH/DMM Luis M. Mendona Pg.9
c6=c1+c2
c6 =
7.0000 -11.0000i
c7=(c1+c2)/c3
c7 =
-7.7782 -4.9497i
Para o MATLAB o resultado de uma operao entre nmeros complexos um complexo.
c8=i^2 % o quadrado de i o real -1
c8 =
-1.0000 + 0.0000i
Apesar de i
2
= -1 ser um real o MATLAB mantm a parte imaginria do nmero igual a
zero. Para eliminar a parte imaginria de um nmero complexo utiliza-se a funo real.
c9=real(c6)
c9 =
7
Apresentam-se, agora, as funes utilizadas para estabelecer a correspondncia entre a
representao algbrica (z = a+ bi) e a representao polar ( z = r (cos + sen ), em que r =
|z|):
A funo abs determina o valor absoluto de um complexo.
c1
c1 =
1.0000 - 2.0000i
mag_c1=abs(c1)
mag_c1 =
2.2361
A funo angle determina o argumento de um complexo em radianos.
angle_c1=angle(c1)
angle_c1 =
-1.1071
deg_c1=angle_c1*180/pi
deg_c1 =
-63.4349
Com estas duas funes conseguimos obter as coordenadas polares que desejamos.
ENIDH/DMM Luis M. Mendona Pg.10
abs(z) - obtemos o valor do mdulo r = |z| =
2 2
b a +
angle(z) - obtemos o valor do argumento de z, = ) ( tan
1
a
b
cos r a = , sin r b =
Outras duas funes utilizadas com nmeros complexos so:
A funo conj d-nos o complexo conjugado de um nmero complexo.
conj(c1)
ans =
1.0000 + 2.0000i
A funo imag d-nos a parte imaginria de um complexo.
imag_c1=imag(c1)
imag_c1 =
-2
A funo real d-nos a parte real de um imaginrio.
real_c1=real(c1)
real_c1 =
1
1.6 FUNES MATEMTICAS
De seguida apresenta-se um quadro com as principais funes matemticas que o
MATLAB possui.
Alguns exemplos de aplicao dessas funes matemticas so apresentados em seguida:
x=sqrt(2)/2
x =
0.7071
y=asin(x)
y =
0.7854
y_deg=y*180/pi
y_deg =
45.0000
ENIDH/DMM Luis M. Mendona Pg.11
TRIGONOMETRICAS EXPONENTIAL
sin
Seno
exp
Exponencial
sinh
Seno hiperblico
log
Logaritmo natural
asin
Arco cujo o seno
log10
Logaritmo de base 10
asinh
Arco cujo seno hiperblico
sqrt
Raiz quadrada
cos
Co-seno
cosh
Co-seno hiperblico
acos
Arco cujo o co-seno
acosh
Arco cujo co-seno hiperblico
COMPLEXAS
tan
Tangente
abs
Valor Absoluto
tanh
Tangente hiperblica
angle
Argumento (em radianos)
atan
Arco cuja tangente
conj
Complexo conjugado
atanh
Arco cuja tangente hiperblica
imag
Parte imaginaria
sec
Secante
real
Parte real
sech
Secante hiperblica
asec
Arco cujo co-seno hiperblico
asech
Arco cujo co-seno hiperblico
csc
Co-secante
csch
Co-secante hiperblica
acsc
Arco cuja co-secante NUMRICAS
acsch
Arco cuja co-secante hiperblica
round
Arredonda para o inteiro
cot
Co-tangente
mais prximo
coth
Co-tangente hiperblica
rem
Resto da diviso
acot
Arco cuja co-tangente
sign
Sinal de um nmero
acoth
Arco cuja co-tangente hiperblica
z=rem(23,4)
z =
3
z1=23/4
z1 =
5.7500
a=exp(c1)
a =
-1.1312 - 2.4717i
sign(1.2)
ans =
1 % a resposta 1 pois o nmero positivo
sign(-23.4)
ans =
-1 % a resposta 1 quando o nmero negativo
ENIDH/DMM Luis M. Mendona Pg.12
sign(0)
ans =
0
1.7 FICHEIROS SCRIPT OU M-FILES
Quando o nmero de comandos a serem introduzidos muito grande e tambm quando
queremos reavaliar as expresses entretanto introduzidas torna-se mais prtico utilizar
ficheiros de texto com comandos de MATLAB denominados Script files (ou m-files).
Tambm podemos utilizar m-files para definir novas funes (function m-file) mas a
abordagem deste tpico ser feita no Captulo 4. Por agora, apenas, vamos considerar os m-
files como uma lista de comandos ou instrues de MATLAB.
Para criarmos um novo script (ou m-file) basta procurar o comando [New] localizado no
menu [File] e seguidamente escolher [M-file].
Como um m-file um ficheiro de texto ento, pode ser feito em qualquer editor de texto
o ficheiro tem de ter a extenso .m.
Para executar um m-file basta introduzir o seu nome, por exemplo:
exemplo
O MATLAB procura o ficheiro exemplo.m e executa todos os comandos como se eles
fossem inseridos directamente no command window.
Ao utilizar m-files tenha em ateno que:
Os comandos presentes no m-file tm acesso s variveis anteriormente definidas no
workspace.
As variveis definidas no m-file passam a fazer parte do workspace e podem ser
utilizadas aps a execuo do m-file.
O comando echo on diz ao MATLAB para fazer o eco dos comandos que vai lendo e
executando. O comando echo off faz o contrrio.
Exemplo de um m-file:
%Exemplo1 m-files
cadernos=4;
canetas=input(' Introduza o n de canetas > ');
itens=cadernos+canetas
custo_total=cadernos*250+canetas*100
A execuo deste m-file produz os seguintes resultados:
exemplo1
ENIDH/DMM Luis M. Mendona Pg.13
Introduza o n de canetas > 4
itens =
8
custo_total =
1400
Reparar na utilizao da funo input. Esta funo pode receber como valor de entrada
qualquer expresso matemtica que seja equivalente ao valor que se pretende introduzir.
exemplo1
Introduza o n de canetas > round(sqrt(13))+3
itens =
11
custo_total =
1700
Aqui est um quadro com algumas das funes teis na construo de m-files.
FUNES PARA OS M-FILES
disp(varivel)
Mostra o valor de uma varivel sem apresentar
o seu nome.
echo
Controla o eco dos comandos, presentes no
m-file, que vo sendo executados.
(echo on e echo off)
input
Espera pela introduo de um valor pelo
utilizador.
keyboard
Interrompe a execuo de um m-file dando
liberdade ao utilizador para executar outros
comandos. Retoma-se a execuo do m-file
fazendo return..
pause(n)
H uma pausa de n segundos na execuo.
waitforbuttonpress
Existe uma pausa na execuo do m-file at
que se carregue numa tecla do rato ou do
teclado.
Exemplo de um m-file em que se utiliza o comando keyboard :
%Exemplo2 - .m files
cadernos=4;
ENIDH/DMM Luis M. Mendona Pg.14
canetas=2;
keyboard
itens=cadernos+canetas
custo_total=cadernos*250+canetas*100
A execuo deste m-file produz o seguinte resultado:
exemplo2
K
K who
Your variables are:
a equetalestenomepara
angle_c1 imag_c1
ans itens
c1 lapis
c2 mag_c1
c3 preco
c4 real_c1
c6 vidros
c7 x
c8 y
cadernos y_deg
canetas z
custo_total z1
deg_c1
e_que_tal_este_nome
K return
itens =
6
custo_total =
1200
1.8 COMO ENCONTRAR AJUDA NO MATLAB
Existem dois comandos que permitem encontrar ajuda no MATLAB: O comando help e o
comando lookfor.
Um mtodo equivalente ao comando help baseia-se na utilizao do menu [Help].
help
HELP topics:
toolbox\local - Local function library.
matlab\datafun - Data analysis and Fourier transform functions.
matlab\elfun - Elementary math functions.
ENIDH/DMM Luis M. Mendona Pg.15
matlab\elmat - Elementary matrices and matrix manipulation.
matlab\funfun - Function functions - nonlinear numerical methods.
matlab\general - General purpose commands.
matlab\color - Color control and lighting model functions.
matlab\graphics - General purpose graphics functions.
matlab\iofun - Low-level file I/O functions.
matlab\lang - Language constructs and debugging.
matlab\matfun - Matrix functions - numerical linear algebra.
matlab\ops - Operators and special characters.
matlab\plotxy - Two dimensional graphics.
matlab\plotxyz - Three dimensional graphics.
matlab\polyfun - Polynomial and interpolation functions.
matlab\sounds - Sound processing functions.
matlab\sparfun - Sparse matrix functions.
matlab\specfun - Specialized math functions.
matlab\specmat - Specialized matrices.
matlab\strfun - Character string functions.
matlab\dde - DDE Toolbox.
matlab\demos - Demonstrations and samples.
simulink\simulink - SIMULINK model analysis and construction functions.
simulink\blocks - SIMULINK block library.
simulink\simdemos - SIMULINK demonstrations and samples.
toolbox\signal - Signal Processing Toolbox.
toolbox\ident - System Identification Toolbox.
nnet\examples - Neural Network Toolbox examples.
nnet\nnet - Neural Network Toolbox.
toolbox\robust - Robust Control Toolbox.
mutools\commands - Mu-Analysis and Synthesis Toolbox.
mutools\subs - Mu-tools examples and internal routines.
toolbox\optim - Optimization Toolbox.
toolbox\splines - Spline Toolbox.
toolbox\control - Control System Toolbox.
toolbox\mmle3 - MMLE3 Identification Toolbox.
toolbox\wintools - GUI tools for MATLAB for MS Windows.
For more help on directory/topic, type "help topic".
Se j soubermos aquilo que procuramos podemos utilizar o comando help de uma forma
mais precisa.
help general
ENIDH/DMM Luis M. Mendona Pg.16
General purpose commands.
Managing commands and functions.
help - On-line documentation.
what - Directory listing of M-, MAT- and MEX-files.
type - List M-file.
lookfor - Keyword search through the HELP entries.
which - Locate functions and files.
demo - Run demos.
path - Control MATLAB's search path.
Managing variables and the workspace.
who - List current variables.
whos - List current variables, long form.
load - Retrieve variables from disk.
save - Save workspace variables to disk.
clear - Clear variables and functions from memory.
pack - Consolidate workspace memory.
size - Size of matrix.
length - Length of vector.
disp - Display matrix or text.
Working with files and the operating system.
cd - Change current working directory.
dir - Directory listing.
delete - Delete file.
getenv - Get environment value.
! - Execute operating system command.
unix - Execute operating system command & return result.
diary - Save text of MATLAB session.
Controlling the command window.
cedit - Set command line edit/recall facility parameters.
clc - Clear command window.
home - Send cursor home.
format - Set output format.
echo - Echo commands inside script files.
more - Control paged output in command window.
Starting and quitting from MATLAB.
quit - Terminate MATLAB.
startup - M-file executed when MATLAB is invoked.
ENIDH/DMM Luis M. Mendona Pg.17
matlabrc - Master startup M-file.
General information.
info - Information about MATLAB and The MathWorks, Inc.
subscribe - Become subscribing user of MATLAB.
hostid - MATLAB server host identification number.
whatsnew - Information about new features not yet documented.
ver - MATLAB, SIMULINK, and TOOLBOX version information.
help sqrt
SQRT Square root.
SQRT(X) is the square root of X. Complex results are
produced if X is not positive.
See also SQRTM.
No caso de o MATLAB no encontrar informao sobre o tpico pretendido obtemos uma
mensagem deste tipo.
help controladores
controladores not found.
Se pretendermos procurar comandos que estejam relacionados com determinada palavra ou
conceito podemos utiliza a instruo lookfor
lookfor complex
CPLXPAIR Sort numbers into complex conjugate pairs.
CONJ Complex conjugate.
IMAG Complex imaginary part.
REAL Complex real part.
CDF2RDF Complex diagonal form to real block diagonal form.
RSF2CSF Real block diagonal form to complex diagonal form.
CPLXDEMO Maps of functions of a complex variable.
CPLXGRID Polar coordinate complex grid.
CPLXMAP Plot a function of a complex variable.
GRAFCPLX Demonstrates complex function plots in MATLAB.
LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex
CCEPS Complex cepstrum.
PHASE Computes the phase of a complex vector
mixedalg.m: % [MULT,XQO] = MIXEDALG(T,XQI,K) finds the existence of a
complex,diagonal
DSORT Sort complex discrete eigenvalues in descending order.
ENIDH/DMM Luis M. Mendona Pg.18
ESORT Sort complex continuous eigenvalues in descending order
LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex
ENIDH/DMM Luis M. Mendona Pg.19
CAPTULO
2
MATRIZES E
VECTORES
PLANO DO CAPTULO
2.1 Definio de Vectores
2.2 Endereamento de Elementos de Um Vector
2.3 Definio de Matrizes
2.4 Operaes com Matrizes
2.5 Operaes com Arrays
2.6 Manipulao dos Elementos de uma Matriz
2.7 Matrizes Especiais e Funes com Matrizes
ENIDH/DMM Luis M. Mendona Pg.20
2.1 DEFINIO DE VECTORES
Quando se pretende introduzir um vector deve fazer-se:
a=[1 2 3 4 5 6]
a =
1 2 3 4 5 6
Tambm possvel definir um novo vector custa de outro j existente:
x= [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x =
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
y=sin(x)
y =
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
Exemplo de um vector de nmeros complexos. (Consegue notar a modificao que se
produz com a introduo dos parnteses)
u=[1 -2i 3 4 5+6i]
u =
Columns 1 through 4
1.0000 0 - 2.0000i 3.0000 4.0000
Column 5
5.0000 + 6.0000i
v=[(1 -2i) 3 4 5+6i]
v =
1.0000 - 2.0000i 3.0000 4.0000 5.0000 +
6.0000i
ENIDH/DMM Luis M. Mendona Pg.21
Na definio de vectores um smbolo muito utilizado o : . Aqui esto alguns exemplos
da sua utilizao.
x=1:5 % comea em 1 e termina em 5 com incrementos de 1
x =
1 2 3 4 5
Se pretendermos utilizar um incremento diferente fazemos:
y=0:pi/4:pi % comea em 0 e termina em pi com incrementos de pi/4
y =
0 0.7854 1.5708 2.3562 3.1416
Tambm possvel utilizar incrementos negativos:
z=6:-1:1
z =
6 5 4 3 2 1
Outra maneira de definir o vector y=sin(x) a seguinte.
y1=(0:0.1:1)*pi
y1 =
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
Existem duas funes que podemos utilizar para criar vectores.
l=linspace(0,pi,11)
l =
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
g=logspace(0,2,11)
g =
Columns 1 through 7
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489
Columns 8 through 11
ENIDH/DMM Luis M. Mendona Pg.22
25.1189 39.8107 63.0957 100.0000
Mtodos para Definir Vectores
x=[2 2*pi sqrt(2) 2-3j]
Cria o vector x com os elementos
especificados. (Os elementos podem ser
expresses ou nmeros complexos).
x=n
i
:n
f
Cria um vector comeando no nmero n
i
e
terminando em n
f
, com incrementos de 1.
x=n
i
:i:n
f
Cria um vector comeando no nmero n
i
e
terminando em n
f
, com incrementos de i.
x=linspace(primeiro,ultimo,n)
Cria um vector comeando no primeiro e
terminando no ltimo, com n elementos.
x=logspace(primeiro,ultimo,n)
Cria um vector comeando em 10
primeiro
e
terminando em 10
ltimo
, com n elementos.
2.2 ENDEREAMENTO DE ELEMENTOS DE UM VECTOR
Existem vrios mtodos de enderear (ou de aceder) aos elementos de um vector.
Indicando a posio do elemento no vector
y(3) % queremos o terceiro elemento
ans =
1.5708
y(5) % queremos o quinto elemento
ans =
3.1416
Utilizando os :
z(1:4) % queremos do primeiro at ao quarto elemento
ans =
6 5 4 3
Usando outro vector para extrair os elementos pela ordem pretendida
y([4 2 3 1])
ans =
2.3562 0.7854 1.5708 0
2.3 DEFINIO DE MATRIZES
ENIDH/DMM Luis M. Mendona Pg.23
A introduo de uma matriz deve ser feita da seguinte forma: A=[1 2 3; 4 5 6; 7 8 9], em
que o smbolo ; divide as linhas da matriz.
A=[1 2 3;4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
B=[1;2;3;4;5]
B =
1
2
3
4
5
Podemos criar uma nova matriz adicionando novos elementos a uma matriz j existente.
C=[A;10 11 12]
C =
1 2 3
4 5 6
7 8 9
10 11 12
2.4 OPERAES COM MATRIZES
TRANSPOSTA
Para obter a transposta da matriz A e explicit-la pela matriz T devemos fazer:
T=A'
T =
1 4 7
2 5 8
3 6 9
Para vectores tudo se passa de modo semelhante,
x=[-1 0 2]'
x =
-1
0
2
ENIDH/DMM Luis M. Mendona Pg.24
ADIO E SUBTRACO
Considerando os vectores A e B vamos determinar A+B.
A=[1 2 3;4 5 6; 7 8 9]
A =
7 8 9
B=[1 4 7; 2 5 8; 3 6 0]
B =
1 4 7
2 5 8
3 6 0
A+B
ans =
2 6 10
6 10 14
10 14 9
MULTIPLICAO
A multiplicao de matrizes efectuada utilizando o smbolo * e tal como acontece nas
operaes de soma e subtraco h que ter em considerao as dimenses das matrizes
X=[-1 0 2]
X =
-1 0 2
Y=[-2 -1 1]'
Y =
-2
-1
1
X*Y
ans =
4
Y*X
ans =
2 0 -4
1 0 -2
-1 0 2
Quando se multiplica uma constante por um vector o resultado o seguinte:
pi*X
ans =
-3.1416 0 6.2832
pi*Y
ans =
-6.2832
-3.1416
3.1416
ENIDH/DMM Luis M. Mendona Pg.25
DIVISO
Existem dois tipos de diviso: a diviso esquerda (A\b) e a diviso direita (A/b). Podemos
ver qual a diferena entre estes dois tipos de diviso atravs de um exemplo.
Considere o seguinte sistema de equaes:
A=[1 2 3; 4 5 6; 7 8 0]
A =
1 2 3
4 5 6
7 8 0
b=[366;804;351]
b =
366
804
351
Diviso esquerda ( x = A\b soluo para A * x = b)
x=A\b
x =
25.0000
22.0000
99.0000
A*x
ans =
366
804
351
Diviso direita ( y = A/b soluo para x * A = b)
y=A/b
??? Error using ==> /
Matrix dimensions must agree.
x*A
??? Error using ==> *
Inner matrix dimensions must agree.
Devido as dimenses das matrizes no possvel realizar a diviso direita teria que se
modificar as dimenses de b, fazendo a sua transformada por exemplo.
A relao entre estas duas divises dada por: A\b = (b/A)
A\b
ans =
b x . A
351
804
366
x
x
x
0 8 7
6 5 4
3 2 1
3
2
1
=
.
ENIDH/DMM Luis M. Mendona Pg.26
25.0000
22.0000
99.0000
(b'/A')'
ans =
25.0000
22.0000
99.0000
Tambm conseguimos resolver um sistema de equaes lineares utilizando a funo inv para
calcular a inversa de uma matriz - x = A
-1
* b antes, porm, devemos verificar se o sistema
tem uma soluo nica calculando o seu determinante.
det(A)
ans =
27
x=inv(A)*b
x =
25.0000
22.0000
99.0000
2.5 OPERAES COM ARRAYS
Quando se utiliza o termo operaes com arrays pretende-se referir que as operaes
aritmticas so feitas de elemento para elemento.
ADIO E SUBTRACO
Para a adio e subtraco as operaes com array e as operaes com matrizes so iguais.
(Utiliza-se os mesmos smbolos)
MULTIPLICAO E DIVISO
A multiplicao de array efectuada elemento a elemento, sendo representada por .* . Se
A e B tm dimenses iguais ento C = A .* B resulta numa matriz em que cada um dos seus
elementos igual ao produto dos elementos individuais de A e B, nas mesmas posies
A=[2 4 6]
A =
2 4 6
B=[2 2 2]
B =
2 2 2
C=A.*B
C =
4 8 12
No que diz respeito diviso; se tivermos D = A ./ B ou E = A .\ B cada elemento de D e E
obtidos atravs da diviso ( esquerda ou direita) envolvendo os elementos respectivos de A
e B.
D=A./B
ENIDH/DMM Luis M. Mendona Pg.27
D =
1 2 3
E=A.\B
E =
1.0000 0.5000 0.3333
POTENCIAO
A potenciao elemento a elemento efectuada utilizando os smbolos .^ .
P=A.^B
P =
4 16 36
Contudo, o expoente poder ser um escalar.
Pe=A.^3
Pe =
8 64 216
Mas tambm podemos ter a base como um escalar
Ps=3.^A
Ps =
9 81 729
Operaes com Arrays
Sabendo que : A = [a
1
a
2
a
n
]; B = [b
1
b
2
b
n
]; c Escalar
Adio com um escalar
A+c = [a
1
+c a
2
+c a
n
+c]
Multiplicao com um escalar
A*c = [a
1
*c a
2
*c a
n
*c]
Adio
A+B = [a
1
+b
1
a
2
+b
2
a
n
+b
n
]
Multiplicao
A.*B = [a
1
.*b
1
a
2
.*b
2
a
n
.*b
n
]
Diviso esquerda
A.\B = [a
1
.\b
1
a
2
.\b
2
a
n
.\b
n
]
Diviso direita
A./B = [a
1
./b
1
a
2
./b
2
a
n
./b
n
]
Potenciao
A.^c = [a
1
.^c a
2
.^c a
n
.^c]
c.^A = [c.^a
1
c.^a
2
.^c c.^a
n
]
A.^B = [a
1
.^b
1
a
2
.^b
2
a
n
.^b
n
]
ENIDH/DMM Luis M. Mendona Pg.28
2.6 MANIPULAO DOS ELEMENTOS DE UMA MATRIZ
Podemos alterar o valor de apenas um elemento da matriz fazendo:
A=[1 2 3; 4 5 6; 7 8 0]
A =
1 2 3
4 5 6
7 8 0
A(3,3)=9 % modifica o elemento na 3linha, 3coluna para 9
A =
1 2 3
4 5 6
7 8 9
Tambm podemos fazer:
A(2,2)=A(1,2)+A(3,2)
A =
1 2 3
4 10 6
7 8 9
Outra manipulao dos elementos de uma matriz que o MATLAB permite a seguinte:
b=A(:) % transformamos uma matriz num vector coluna
b =
1
4
7
2
10
8
3
6
9
Se quisermos criar um matriz B invertendo a ordem das linhas de A, fazemos:
B=A(3:-1:1,1:3) % escolhemos as linhas, comeando na 3 e acabando na 1
B = % escolhemos as coluna, comeando na 1 e acabando na 3
7 8 0
4 5 6
1 2 3
De modo semelhante podemos obter uma submatriz de A.
C=A(1:2,2:3)
C =
2 3
6
ENIDH/DMM Luis M. Mendona Pg.29
Manipulao dos Elementos de uma Matriz
A(l,c)
Resulta uma submatriz de A com as linhas definas pelo
vector l e com as colunas definas (ou indexadas) pelo vector
c.
A(l,:)
Obtemos uma submatriz de A com as linhas definas pelo
vector l e com todas as colunas de A.
A(:,c)
Resulta uma submatriz de A com todas as linhas de A e com
as colunas definas (ou indexadas) pelo vector c.
A(:,c)
Obtemos um vector coluna com todos os elementos de A
tendo estes sido retirados coluna a coluna da matriz A.
2.7 MATRIZES ESPECIAIS E FUNES COM MATRIZES
De seguida apresentam-se algumas das matrizes especiais que possvel criar utilizando o
MATLAB.
Matrizes Especiais
zeros(3)
ans =
0 0 0
0 0 0
0 0 0
ones(3)
ans =
1 1 1
1 1 1
1 1 1
ones(3)*pi
ans =
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416
eye(3) % matriz identidade 3x3
ans =
1 0 0
0 1 0
0 0 1
ENIDH/DMM Luis M. Mendona Pg.30
Algumas Matrizes Especiais
[]
Matriz vazia
eye
Matriz identidade
ones
Matriz com todos elementos iguais a 1.
zeros
Matriz com todos elementos iguais a 0.
pascal
Matriz (triangular) de Pascal.
rand
Matriz preenchida aleatoriamente com elementos entre 0 e 1
(distribuio uniforme).
randn
Matriz preenchida aleatoriamente e segundo a distribuio
normal com u = 0 e = 1.
FUNES COM MATRIZES
O MATLAB possui inmeras funes com matrizes no quadro seguinte vamos apresentar
apenas algumas.
Funes com Matrizes
det(A)
Determinante
expm(A)
Matriz exponencial
logm(A)
Matriz logaritmo
inv(A)
Inversa da matriz A
d=eig(A)
[V,D]=eig(A)
Valores prprio e vectores prprios.
poly(A)
Polinmio caracterstico
ENIDH/DMM Luis M. Mendona Pg.31
CAPTULO
3
OPERADORES RELACIONAIS,
OPERADORES LGICOS E
ESTRUTURAS DE CONTROLO
PLANO DO CAPTULO
3.1 Operadores Relacionais
3.2 Operadores Lgicos
3.3 Estrutura de Escolha (IF ELSE-END)
3.4 Estruturas de Repetio (FOR, WHILE)
ENIDH/DMM Luis M. Mendona Pg.32
3.1 OPERADORES RELACIONAIS
No MATLAB utilizamos os operadores lgicos e relacionais para, juntamente com as
estruturas de repetio, controlar a ordem de execuo de um conjunto de instrues ou
comandos do MATLAB. Os nicos outputs ou resultados possveis para uma expresso
contendo operadores relacionais e lgicos so 1 (Verdadeiro) ou 0 (Falso)
3<4
ans =
1 % Verdadeiro
3>4
ans =
0 % Falso
Operadores Relacionais
<
Menor que
<=
Menor ou igual a
>
Maior que
>=
Maior ou igual a
==
Igual a
~=
Diferente de
Estes operadores podem ser utilizados na comparao entre duas matrizes, com as mesmas
dimenses, ou para comparar um escalar com os elementos que compem a matriz
A=1:9, B=9-A
A =
1 2 3 4 5 6 7 8 9
B =
8 7 6 5 4 3 2 1 0
ENIDH/DMM Luis M. Mendona Pg.33
VF=A>4 % Os zeros correspondem a elementos que so menores que 4
VF =
0 0 0 0 1 1 1 1 1
A==B
ans =
0 0 0 0 0 0 0 0 0
3.2 OPERADORES LGICOS
Os principais operadores lgicos so:
Operadores Lgicos
&
And (e)
|
Or (ou)
~
Not (negao)
xor(x,y)
Exclusive Or (Ou exclusivo)
Apresentam-se de seguida alguns exemplos da sua aplicao:
VF=A>4
VF =
0 0 0 0 1 1 1 1 1
VF1=~(A>4) % negamos a expresso anterior
VF1 =
1 1 1 1 0 0 0 0 0
A expresso seguinte devolve uns nas posies em que os elementos da matriz A verificam
a condio, i.e., so maiores do que 2 e menores do que 6.
VF2=(A>2)&(A<6)
VF2 =
0 0 1 1 1 0 0 0 0
ENIDH/DMM Luis M. Mendona Pg.34
3.3 ESTRUTURA DE ESCOLHA (IF-THEN-END)
Utilizamos esta estrutura quando queremos condicionar a execuo de uma dada instruo
ou comando ao valor (verdadeiro ou falso) de uma da expresso relacional ou lgica.
O quadro seguinte apresenta a sintaxe da estrutura IF-THEN-END.
IF expresso
Comandos
ELSEIF
Comandos
ELSE
Comandos
END
IF expresso
Comandos
END
Os Comandos so executados apenas se a expresso for verdadeira.
Podemos, tambm, consultar o MATLAB para obter mais informaes sobre a estrutura
IF.
help if
IF Conditionally execute statements.
The general form of an IF statement is:
IF variable, statements, END
The statements are executed if the real part of the variable
has all non-zero elements. The variable is usually the result of
expr rop expr where rop is ==, <, >, <=, >=, or ~=.
For example:
IF I == J
A(I,J) = 2;
ELSEIF ABS(I-J) == 1
A(I,J) = -1;
ELSE
A(I,J) = 0;
END
Apresentam-se, de seguida, dois exemplos que utilizam a estrutura IF.
laranjas=10;
Custo=laranjas*20
Custo =
200
if laranjas>5
ENIDH/DMM Luis M. Mendona Pg.35
Custo=(1-0.2)*Custo % faz-se um desconto de 20%
end
Custo =
160
Exemplo: Escreva um m-file que:
Pede ao utilizador para introduzir um nmero.
Verifica se esse nmero maior ou menor do que 5.
Se for maior imprime no ecr a palavra GRANDE, caso contrrio imprime a
palavra PEGUENO.
n = input('INDIQUE UM NMERO MAIOR QUE 0 ->');
if (n > 5)
disp('GRANDE')
elseif (n < 5)
disp('PEQUENO')
else
disp('BATOTA NO VALE! O NMERO DEVE SER MAIOR OU MENOR QUE 5')
end
3.4 ESTRUTURAS DE REPETIO
FOR
O ciclo FOR permite a repetio de um ou mais comandos. necessrio estabelecer na
sintaxe do comando qual o nmero de repeties a efectuar.
FOR
Varivel=expresso
Comando1
Comando2
ComandoN
END
FOR
Varivel=expresso
Comando
END
Se, no lugar da expresso tivermos um array ou uma matriz ento os comandos so
executados um nmeros de vezes iguais ao nmero de colunas do array ou matriz.
Podemos consultar o MATLAB para obter mais informaes sobre a estrutura FOR.
ENIDH/DMM Luis M. Mendona Pg.36
help for
FOR Repeat statements a specific number of times.
The general form of a FOR statement is:
FOR variable = expr, statement, ..., statement END
The columns of the expression are stored one at a time in
the variable and then the following statements, up to the
END, are executed. The expression is often of the form X:Y,
in which case its columns are simply scalars. Some examples
(assume N has already been assigned a value).
FOR I = 1:N,
FOR J = 1:N,
A(I,J) = 1/(I+J-1);
END
END
FOR S = 1.0: -0.1: 0.0, END steps S with increments of -0.1
FOR E = EYE(N), ... END sets E to the unit N-vectors.
De seguida apresentamos alguns exemplos do uso desta estrutura.
for n=1:10
x(n)=sin(n*pi/10);
n=10;
end
x
x =
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end
disp(n)
ENIDH/DMM Luis M. Mendona Pg.37
end
1
2
3
4
5
A
A =
2 5 10 17 26
5 8 13 20 29
10 13 18 25 34
17 20 25 32 41
26 29 34 41 50
Exemplo: Faa um m-file que preencha uma matriz. Pea ao utilizador o nmeros de linhas
e de colunas que ele deseja para a matriz.
n=1;
s=1;
disp('PREENCHIMENTO DE UMA MATRIZ')
n = input('INDIQUE O NMERO DE LINHAS ->');
s = input('INDIQUE O NMERO DE COLUNAS ->');
for i=1:n,
for j=1:s,
a(i,j)=1/(i+j-1);
end
end
disp(' A MATRIZ :')
disp(a)
WHILE
O ciclo WHILE executado enquanto a expresso for verdadeira.
ENIDH/DMM Luis M. Mendona Pg.38
WHILE Varivel
Comando1
Comando2
ComandoN
END
WHILE Varivel
Comando
END
Consultando o MATLAB obtemos a seguinte informao sobre a estrutura WHILE.
help while
WHILE Repeat statements an indefinite number of times.
The general form of a WHILE statement is:
WHILE variable, statement, ..., statement, END
The statements are executed while the variable has all
non-zero elements. The variable is usually the result of
expr rop expr where rop is ==, <, >, <=, >=, or ~=.
For example (assuming A already defined):
E = 0*A; F = E + EYE(E); N = 1;
WHILE NORM(E+F-E,1) > 0,
E = E + F;
F = A*F/N;
N = N + 1;
END
De seguida apresentamos um exemplo de utilizao da estrutura WHILE.
n=10; % queremos preencher um vector com os nmeros de 1 a 10
i=1;
while i <= n
a(i)= i;
i=i+1;
end
disp(' O VECTOR :')
disp(a)
O VECTOR :
1 2 3 4 5 6 7 8 9 10
ENIDH/DMM Luis M. Mendona Pg.39
CAPTULO
4
GRFICOS
PLANO DO CAPTULO
4.1 O comando plot
4.2 Tipo de linhas e de cores
4.3 Grid and Labels
4.4 Comando hold
4.5 Subplots
4.6 Utilizar vrias janelas com figuras
ENIDH/DMM Luis M. Mendona Pg.40
4.1 O COMANDO PLOT
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
z=cos(x);
plot(x,y,x,z)
Podemos traar vrias funes no mesmo grfico utilizando vrios argumentos no comando
plot.
plot(x,y,z)
??? Error using ==> plot
Not enough input arguments.
Se um dos argumentos for uma matriz e o outro for um vector o matlab representa cada
coluna da matriz vs o vector.
W=[y;z];
plot(x,W)
plot(W,x)
plot(y)
length(y)
ans =
30
plot(1:length(y),y)
k=1:30
kk=i+1.1*i*j
plot(kk)
%plot(real(k),imag(k))
5.2 - Tipo de linhas e cores
Ns podemos definir qual as cores e o tipo de linha que pretendemos introduzindo mais
argumentos no comando plot
Cores: Se no for especificado o tipo de cores que que se pretende para o grfico o matlab
comea no amarelo e faz um ciclo pelas seis cores disponveis.
Linestyle: a linha utilizada, por defeito, o trao continuo.
ENIDH/DMM Luis M. Mendona Pg.41
plot(x,y,'g:',x,z,'r-') % utilizando linhas para unir os pontos
plot(x,y,'g:',x,z,'r-',x,y,'wo',x,z,'c+') % tambm com smbolos
assinalando cada ponto
plot(x,y,'wo',x,z,'c+') % apenas com smbolos
LETRA CORES
y
amarelo
m
magenta
c
cyan
r
encarnado
g
verde
b
azul
w
branco
k
preto
SMBOLO TIPO DE LINHA
-
linha slida
:
ponteada
-.
trao - ponto
--
trao interropido
SMBOLO MARKERS
.
ponto
o
crculo
x
x-mark
+
sinal +
*
Estrela
4.3 GRIDS AND LABELS
plot(x,y,x,z)
grid
grid
grid on
grid off
xlabel ('variavel independente x')
ylabel ('variaveis dependentes y e z')
ENIDH/DMM Luis M. Mendona Pg.42
title ('Seno e Coseno')
Podemos introduzir texto em qualquer parte do grfico utilizando comando text e as
respectivas coordenadas.
text(2.5,0.7,'sin(x)')
gtext('cos (x)') %utilizando o rato para escolher a posio
4.4 COMANDO HOLD
plot (x,y)
plot(x,z)
hold
Current plot held
plot(x,y)
plot(x,y,'m')
4.5 SUBPLOTS
O comando subplot(m,n,p) subdivide a figure windows numa matriz m por n e a rea activa
corresponde posio p.
a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps);
subplot(2,2,1)
plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2)
plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3)
plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4)
plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
grid
subplot(2,2,2)
grid
ENIDH/DMM Luis M. Mendona Pg.43
4.6 - UTILIZAR VRIAS JANELAS COM FIGURAS
h1=figure
h1 =
1
plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
h2=figure
h2 =
2
plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
h3=figure
h3 =
3
plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
h4=figure
h4 =
4
plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
figure(4)
grid
close
close (2)
help close
clf
GINPUT Graphical input from a mouse or cursor.
[X,Y] = GINPUT(N) gets N points from the current axes and returns
the X- and Y-coordinates in length N vectors X and Y. The cursor
can be positioned using a mouse (or by using the Arrow Keys on some
systems). Data points are entered by pressing a mouse button
or any key on the keyboard. A carriage return terminates the
input before N points are entered.
[X,Y] = GINPUT gathers an unlimited number of points until the
return key is pressed.
[X,Y,BUTTON] = GINPUT(N) returns a third result, BUTTON, that
contains a vector of integers specifying which mouse button was
used (1,2,3 from left) or ASCII numbers if a key on the keyboard
was used.
ENIDH/DMM Luis M. Mendona Pg.44
CAPTULO
5
EXERCCIOS
PLANO DO CAPTULO
5.1 Exerccios (Parte A)
5.2 Exerccios (Parte B)
ENIDH/DMM Luis M. Mendona Pg.45
5.1 EXERCCIOS (PARTE A):
Os exerccios a efectuar devero ser apresentados sob a forma de listagem do Matlab.
1. Pretende-se utilizar para clculos futuros uma matriz A,
1.1. Faa ecoar esta matriz para o monitor.
1.2. Se pretendesse no visualizar a matriz como faria ?
2. Calcule a transposta da matriz A.
3. Pretende-se utilizar, igualmente, uma matriz B
3.1. Calcule a matriz C em que C = A + B.
3.2. Calcule a matriz D em que D = A B.
4. Introduza agora um vector E.
4.1. Calcule a Matriz F correspondente ao produto de B por E. Efectue todos os clculos
necessrios, especificando-os.
5. Efectue a diviso direita de A por B.
6. Eleve ao cubo o vector E.
7. Apresente os seguintes vectores:
7.1. Iniciando em 2 e terminando em 8 com incrementos de
2
1
.
7.2. Iniciando em 14 e terminando em 1 com incrementos fornecidos por uma varivel .
Considere que
10
1
= .
8. Qual o resultado que espera obter aps a introduo da seguinte expresso:
=
9 3 1
4 8 3
7 5 2
A
=
8 7 1
6 4 1
5 2 3
B
| | 1 6 5 E =
ENIDH/DMM Luis M. Mendona Pg.46
A(2,2) = A(2,3) + B(2,2)
9. Determine uma matriz com 2 colunas em que uma delas obtida de:
X = (0.0 : 0.2 : 3.0)
E a outra de :
Y = exp (-X) .* sin(X)
ENIDH/DMM Luis M. Mendona Pg.47
5.2 EXERCCIOS (PARTE B):
A resoluo do exerccios deve ser apresentada em disquete ou em listagem do MATLAB. Os
ficheiro devem ter os nomes especificados no enunciado de cada exerccio.
10. Fazer um m-file em que pedido ao utilizador para introduzir um nmero, o programa
deve determinar a que intervalo pertence o nmero e produzir o seguinte output :
N INTRODUZIDO
OUTPUT
0 .. 5
Mau
5 .. 7
Bom
7 .. 10
Muito Bom
(o m-file deve ter o nome: if1.m)
11. Preencha uma matriz 4x4 em que os elementos da diagonal principal devero ser 1 e os
restantes elementos so calculados atravs da expresso:
Utilize ciclos FOR. (O m-file deve ter o nome: for1.m)
12. Faa o exerccio 2 utilizando o ciclo WHILE. (O m-file deve ter o nome: wh1.m)
2
j
i x 3
j i a
|
|
.
|
\
|
= ) , (
ENIDH/DMM Luis M. Mendona Pg.48
6- NDICE
1.1 COMMAND WINDOW................................................................................................................................ 2
1.2 OPERAES ARITMTICAS................................................................................................................... 2
1.3 VARIVEIS EM MATLAB........................................................................................................................ 4
1.4 COMENTRIOS E PONTUAO............................................................................................................ 7
1.5 NMEROS COMPLEXOS .......................................................................................................................... 8
1.6 FUNES MATEMTICAS..................................................................................................................... 10
1.7 FICHEIROS SCRIPT OU M-FILES......................................................................................................... 12
1.8 COMO ENCONTRAR AJUDA NO MATLAB..................................................................................... 14
2.1 DEFINIO DE VECTORES .................................................................................................................. 20
2.2 ENDEREAMENTO DE ELEMENTOS DE UM VECTOR............................................................. 22
2.3 DEFINIO DE MATRIZES................................................................................................................... 22
2.4 OPERAES COM MATRIZES............................................................................................................. 23
2.5 OPERAES COM ARRAYS................................................................................................................... 26
2.6 MANIPULAO DOS ELEMENTOS DE UMA MATRIZ............................................................... 28
2.7 MATRIZES ESPECIAIS E FUNES COM MATRIZES................................................................ 29
MATRIZES ESPECIAIS ................................................................................................................................... 29
3.1 OPERADORES RELACIONAIS............................................................................................................... 32
3.2 OPERADORES LGICOS........................................................................................................................ 33
3.3 ESTRUTURA DE ESCOLHA (IF-THEN-END).................................................................................... 34
3.4 ESTRUTURAS DE REPETIO ............................................................................................................ 35
4.1 O COMANDO PLOT................................................................................................................................... 40
4.3 GRIDS AND LABELS ................................................................................................................................ 41
4.4 COMANDO HOLD...................................................................................................................................... 42
4.5 SUBPLOTS................................................................................................................................................. 42
4.6 - UTILIZAR VRIAS JANELAS COM FIGURAS ................................................................................. 43
5.1 EXERCCIOS:.............................................................................................................................................. 45
5.2 EXERCCIOS:.............................................................................................................................................. 47
6- NDICE............................................................................................................................................................ 48