ESCOLA NÁUTICA INFANTE D. HENRIQUE
DEPARTAMENTO DE MÁQUINAS MARÍTIMAS
MANUAL
DE INTRODUÇÃO
AO
MATLAB
Por:
Prof. Luis Fernandes Mendonça
E.N.I.D.H. - 2003/2004
CAPÍTULO
1
INTRODUÇÃO AO
MATLAB
O MATLAB é um software interactivo constituído por um conjunto de ferramentas
matemáticas que proporcionam uma grande ajuda nos cálculos de engenharia. Neste
software as matrizes assumem um papel fundamental.
O nome MATLAB advém da combinação de 2 palavras, MATrix LABoratory.
Inicialmente escrito em FORTRAN, o MATLAB é hoje inteiramente escrito em
linguagem C, sendo um sistema integrado, incluindo gráficos e macros programáveis.
No Ensino Superior, o MATLAB tornou-se uma ferramenta muito importante,
utilizada em diferentes matérias como a álgebra linear e a análise de sistemas de
controlo, entre outras.
Na indústria, o MATLAB é utilizado na procura e na resolução de problemas práticos
de engenharia.
PLANO
DO
CAPÍTULO
1.1 – Command Window
1.2 – Operações Aritméticas
1.3 – Variáveis em MATLAB
1.4 – Comentários e Pontuação
1.5 – Números Complexos
1.6 – Funções Matemáticas
1.7 – Ficheiros Script ou m-files
1.8 – Como Encontrar Ajuda no MATLAB
ENIDH/DMM – Luis M. Mendonça
Pág.1
1.1 COMMAND WINDOW
Quando iniciamos o MATLAB aparece-nos uma janela, designada por Command window,
através da qual iremos fazer a interacção com o programa. Nela aparece, além de uma barra
de menus, o símbolo » (prompt), que nos indica que o MATLAB está pronto para executar as
operações e instruções por nós 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
Limpa o conteúdo do Command window.
clc
diary
diary nome_ficheiro
home
more
Grava o conteúdo do Command window
para um ficheiro de texto chamado diary.
Grava tudo o que se passa durante uma
sessão (excepto gráficos) para o ficheiro
escolhido. Se depois escrevermos diary off
o MATLAB interrompe a gravação do que
se passa. Se introduzirmos o comando diary
on o MATLAB retoma a gravação.
Move o cursor para o canto superior
esquerdo.
Obriga os dados a saírem para o ecrã página
a página. (more on e more off)
O comando more(n) obriga à saída de n
linhas por ecrã.
1.2 OPERAÇÕES ARITMÉTICAS
O MATLAB possui todas as operações básicas da matemática podendo ser utilizado com
uma simples máquina de calcular. Aqui estão alguns exemplos:
» 56/8
ans =
7
» 8\56
ans =
7
ENIDH/DMM – Luis M. Mendonça
Pág.2
» 4+2
ans =
6
» 4*250 + 2*100
ans =
1200
OPERAÇÕES ARITMÉTICAS
OPERAÇÃO
Adição, a + b
Subtracção, a – b
Multiplicação, a . b
Divisão, a ÷ b
Potenciação, ab
SÍMBOLO
EXEMPLO
+
*
/ ou \
^
5+3
23 - 12
3.14 * 0.85
56/8 = 8\56
5^2
As regras de precedência utilizadas na avaliação das expressões são as seguintes: as
expressões são avaliadas da esquerda para a direita, em que a operação de maior precedência
é a potenciação, depois vêm as operações de multiplicação e divisão, e por fim as operações
de adição e subtracção.
Utilizam-se parênteses para alterar as precedências e o modo como as operações são
avaliadas.
FORMATOS NUMÉRICOS
No MATLAB podemos apresentar os números segundo diversos formatos. Aqui estão
alguns exemplos:
» preco=1/3
preco =
0.3333
» format long preco
% Utiliza 16 dígitos
» preco
preco =
0.33333333333333
» format short e
% Utiliza 5 dígitos mais expoente
» preco
preco =
3.3333e-001
» format long e
% Utiliza 16 dígitos mais expoente
» preco
ENIDH/DMM – Luis M. Mendonça
Pág.3
preco =
3.333333333333333e-001
» format hex
% O número é escrito em formato hexadecimal
» preco
preco =
3fd5555555555555
» format bank
% Escreve o número utilizando duas casas decimais
» preco
preco =
0.33
» format rat
% Utilizando fracções
» preco
preco =
1/3
» format short
% Utiliza 5 dígitos
» preco
preco =
0.3333
Nota: A representação interna dos números não é alterada quando se utilizam estes
comandos
1.3 VARIÁVEIS
EM
MATLAB
Considerando o exemplo da página anterior vamos mostrar que podemos efectuar os
mesmos cálculos utilizando variáveis:
» 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 variáveis há que ter em conta as seguintes observações:
ENIDH/DMM – Luis M. Mendonça
Pág.4
ƒ
Ter cuidado com a utilização de letras maiúsculas e minúsculas.
Caderno, caderno e cadErno - são 3 variáveis diferentes para o MATLAB.
ƒ
As variáveis devem ter no máximo 19 caracteres pois o MATLAB ignora os restantes
caracteres.
» equetalestenomeparaumavariavel=2
equetalestenomepara =
2
ƒ
As variáveis não podem ter símbolos de pontuação. É permitido utilizar o símbolo “ _
”.
» e_que_tal_este_nome_para_uma_variavel =0
e_que_tal_este_nome =
0
Variáveis Especiais
Ans
pi
Eps
Flops
Inf
NaN
Variável onde são guardados, por defeito, os
resultados das operações - ans é o diminutivo
de ANSwer.
Valor de π = 3.1416.
Unidade de arredondamento da máquina, i.e.,
o menor valor que adicionado a 1 representa
um número maior que 1
Contador do número de operações efectuadas.
Estamos a falar de operações em vírgula
flutuante.
Representa +∞, isto é, 1/0
Not-a-Number, símbolo que representa 0/0 ou
outra expressão não determinada.
MATLAB WORKSPACE
O MATLAB recorda-se de todos os comandos que vão sendo introduzidos ao longo de
uma sessão, permitindo que os utilizadores repitam ou aproveitem comandos inseridos
noutras alturas. De igual modo, todas as variáveis que vão sendo definidas ao longo da sessão
ficam disponíveis para serem utilizadas em ocasiões futuras.
O “local” onde esta informação 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. Mendonça
Pág.5
ƒ
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 variáveis presentes no workspace basta utilizar o
comando who. Também podemos utilizar o comando whos que juntamente com os
nomes das variáveis refere, também, qual a memória que cada uma ocupa assim como a
sua dimensão - o que é muito útil se as variáveis forem matrizes.
» who
Your variables are:
ƒ
ans
canetas
cadernos
custo_total
itens
Também é possível gravar o conteúdo do Workspace para um ficheiro. Para isso
podemos utilizar o menu [File] Æ [Save Workspace As…] ou utilizar os comandos
save e load. As variáveis presentes no Workspace podem ser gravadas em formato
binário ou formato ascii.
Se utilizarmos apenas o comando save sem especificar qual o nome do ficheiro em que
pretendemos guardar a informação, ela será gravado no ficheiro matlab.mat.
(Para obter uma explicação mais completa deste comando escreva help save)
» save
Saving to: matlab.mat
» save meu
% grava as variáveis em format binário para o ficheiro meu.mat
» save dados canetas cadernos custo_total -ascii
% as variáveis foram gravadas em formato ascii
% podemos escolher quais as variáveis que queremos gravar
ƒ
Podemos remover alguma ou todas as variáveis 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. Mendonça
Pág.6
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 COMENTÁRIOS
E
PONTUAÇÃO
Para introduzir comentários deve utilizar-se o símbolo %.
» canetas=10
% Número de canetas%
canetas =
10
» % tudo o que está para a frente deste símbolo % é ignorado
Quando inserimos um comando no MATLAB ele produz um eco, i.e., surge uma
confirmação da operação efectuada no ecrã. Se não quisermos que tal aconteça devemos
utilizar o símbolo ;.
» canetas=10
% este comando produz eco
canetas =
10
» canetas=10;
% este comando não produz eco
»
Podemos utilizar a virgula (,) para introduzir vários 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 símbolo ….
» itens=canetas+ ...
lapis+vidros
itens =
27
ENIDH/DMM – Luis M. Mendonça
Pág.7
% os ... dizem ao Matlab que o resto do comando segue na próxima linha.
» % nao pode ser utilizado na continuação de comentários nem de nomes de
variáveis.
1.5 NÚMEROS COMPLEXOS
No MATLAB a definição de números complexos faz-se de uma maneira natural, apesar
disso, eles podem ser definidos utilizando vários métodos:
ƒ
Definição de um complexo utilizando o i para identificar a parte imaginária.
» c1=1-2i
c1 =
1.0000 - 2.0000i
ƒ
Definição de um complexo utilizando o j para identificar a parte imaginária.
» c1=1-2j
% o j também serve
c1 =
1.0000 - 2.0000i
ƒ
Definição de um complexo utilizando o sqrt(-1) para identificar a parte imaginária.
» c2=3*(2-sqrt(-1)*3)
c2 =
6.0000 - 9.0000I
ƒ
Definição de um complexo em função de outro complexo.
» c4=6+sin(.5)*i % neste caso foi necessário por sin(.5)*I
c4 =
6.0000 + 0.4794i
ƒ
Sempre que aparecem raízes de números negativos então o MATLAB considera esse
valor como um complexo.
» c3=sqrt(-2)
c3 =
0 + 1.4142i
As operações aritméticas entre complexos são escritas de forma semelhante ao que se fazia
para os reais.
ENIDH/DMM – Luis M. Mendonça
Pág.8
» c6=c1+c2
c6 =
7.0000 -11.0000i
» c7=(c1+c2)/c3
c7 =
-7.7782 -4.9497i
Para o MATLAB o resultado de uma operação entre números complexos é um complexo.
» c8=i^2
% o quadrado de i é o real -1
c8 =
-1.0000 + 0.0000i
Apesar de i2 = -1 ser um real o MATLAB mantêm a parte imaginária do número igual a
zero. Para eliminar a parte imaginária de um número complexo utiliza-se a função real.
» c9=real(c6)
c9 =
7
Apresentam-se, agora, as funções utilizadas para estabelecer a correspondência entre a
representação algébrica (z = a+ bi) e a representação polar ( z = r (cos θ + sen θ ), em que r =
|z|):
ƒ
A função abs determina o valor absoluto de um complexo.
» c1
c1 =
1.0000 - 2.0000i
» mag_c1=abs(c1)
mag_c1 =
2.2361
ƒ
A função 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 funções conseguimos obter as coordenadas polares que desejamos.
ENIDH/DMM – Luis M. Mendonça
Pág.9
abs(z)
- obtemos o valor do módulo r = |z| =
angle(z)
a2 + b2
- obtemos o valor do argumento de z, θ = tan −1 ( ba )
a = r cos θ , b = r sin θ
Outras duas funções utilizadas com números complexos são:
ƒ
A função conj dá-nos o complexo conjugado de um número complexo.
» conj(c1)
ans =
1.0000 + 2.0000i
ƒ
A função imag dá-nos a parte imaginária de um complexo.
» imag_c1=imag(c1)
imag_c1 =
-2
ƒ
A função real dá-nos a parte real de um imaginário.
» real_c1=real(c1)
real_c1 =
1
1.6 FUNÇÕES MATEMÁTICAS
De seguida apresenta-se um quadro com as principais funções matemáticas que o
MATLAB possui.
Alguns exemplos de aplicação dessas funções matemáticas são 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. Mendonça
Pág.10
TRIGONOMETRICAS
Seno
Seno hiperbólico
Arco cujo o seno é
Arco cujo seno hiperbólico é
Co-seno
Co-seno hiperbólico
Arco cujo o co-seno é
Arco cujo co-seno hiperbólico é
Tangente
Tangente hiperbólica
Arco cuja tangente é
Arco cuja tangente hiperbólica é
Secante
Secante hiperbólica
Arco cujo co-seno hiperbólico é
Arco cujo co-seno hiperbólico é
Co-secante
Co-secante hiperbólica
Arco cuja co-secante é
Arco cuja co-secante hiperbólica é
Co-tangente
Co-tangente hiperbólica
Arco cuja co-tangente é
Arco cuja co-tangente hiperbólica é
sin
sinh
asin
asinh
cos
cosh
acos
acosh
tan
tanh
atan
atanh
sec
sech
asec
asech
csc
csch
acsc
acsch
cot
coth
acot
acoth
exp
log
log10
sqrt
EXPONENTIAL
Exponencial
Logaritmo natural
Logaritmo de base 10
Raiz quadrada
abs
angle
conj
imag
real
COMPLEXAS
Valor Absoluto
Argumento (em radianos)
Complexo conjugado
Parte imaginaria
Parte real
round
rem
sign
NUMÉRICAS
Arredonda para o inteiro
mais próximo
Resto da divisão
Sinal de um número
» 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 número é positivo
» sign(-23.4)
ans =
-1
% a resposta é –1 quando o número é negativo
ENIDH/DMM – Luis M. Mendonça
Pág.11
» sign(0)
ans =
0
1.7 FICHEIROS SCRIPT
OU M-FILES
Quando o número de comandos a serem introduzidos é muito grande e também quando
queremos reavaliar as expressões entretanto introduzidas torna-se mais prático utilizar
ficheiros de texto com comandos de MATLAB denominados Script files (ou m-files).
Também podemos utilizar m-files para definir novas funções (function m-file) mas a
abordagem deste tópico será feita no Capítulo 4. Por agora, apenas, vamos considerar os mfiles como uma lista de comandos ou instruções 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 então, pode ser feito em qualquer editor de texto –
o ficheiro tem de ter a extensão .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 atenção que:
ƒ
Os comandos presentes no m-file têm acesso às variáveis anteriormente definidas no
workspace.
ƒ
As variáveis definidas no m-file passam a fazer parte do workspace e podem ser
utilizadas após a execução 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 contrário.
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 execução deste m-file produz os seguintes resultados:
» exemplo1
ENIDH/DMM – Luis M. Mendonça
Pág.12
Introduza o nº de canetas > 4
itens =
8
custo_total =
1400
Reparar na utilização da função input. Esta função pode receber como valor de entrada
qualquer expressão matemática 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 funções úteis na construção de m-files.
FUNÇÕES
PARA OS M-FILES
disp(variável)
Mostra o valor de uma variável sem apresentar
o seu nome.
echo
Controla o eco dos comandos, presentes no
m-file, que vão sendo executados.
(echo on e echo off)
input
Espera pela introdução de um valor pelo
utilizador.
keyboard
Interrompe a execução de um m-file dando
liberdade ao utilizador para executar outros
comandos. Retoma-se a execução do m-file
fazendo return..
pause(n)
Há uma pausa de n segundos na execução.
waitforbuttonpress
Existe uma pausa na execução 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. Mendonça
Pág.13
canetas=2;
keyboard
itens=cadernos+canetas
custo_total=cadernos*250+canetas*100
A execução 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 método equivalente ao comando help baseia-se na utilização 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. Mendonça
Pág.14
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. Mendonça
Pág.15
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. Mendonça
Pág.16
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 não encontrar informação sobre o tópico 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 instrução 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)
CCEPS
Complex cepstrum.
PHASE
is the matrix natural logarithm of
X .
Complex
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. Mendonça
Pág.17
ESORT
Sort complex continuous eigenvalues in descending order
LOGM2
LOGM2(X)
is the matrix natural logarithm of
ENIDH/DMM – Luis M. Mendonça
X .
Complex
Pág.18
CAPÍTULO
2
MATRIZES E
VECTORES
PLANO
DO
CAPÍTULO
2.1 – Definição de Vectores
2.2 – Endereçamento de Elementos de Um Vector
2.3 – Definição de Matrizes
2.4 – Operações com Matrizes
2.5 – Operações com Arrays
2.6 – Manipulação dos Elementos de uma Matriz
2.7 – Matrizes Especiais e Funções com Matrizes
ENIDH/DMM – Luis M. Mendonça
Pág.19
2.1 DEFINIÇÃO
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
Também é possível 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
2.8274
3.1416
0.5878
0.8090
0.3090
0.0000
1.2566
1.5708
1.8850
0.9511
1.0000
0.9511
Columns 8 through 11
2.1991
2.5133
» y=sin(x)
y =
Columns 1 through 7
0
0.3090
Columns 8 through 11
0.8090
0.5878
Exemplo de um vector de números complexos. (Consegue notar a modificação que se
produz com a introdução dos parênteses)
» u=[1 -2i 3 4 5+6i]
u =
Columns 1 through 4
1.0000
0 - 2.0000i
3.0000
4.0000
4.0000
5.0000 +
Column 5
5.0000 + 6.0000i
» v=[(1 -2i) 3 4 5+6i]
v =
1.0000 - 2.0000i
3.0000
6.0000i
ENIDH/DMM – Luis M. Mendonça
Pág.20
Na definição de vectores um símbolo muito utilizado é o “ : ”. Aqui estão alguns exemplos
da sua utilização.
» x=1:5
% começa 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
% começa em 0 e termina em pi com incrementos de pi/4
y =
0
0.7854
1.5708
2.3562
3.1416
Também é possível 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
1.2566
1.5708
1.8850
6.3096
10.0000
15.8489
Columns 8 through 11
2.1991
2.5133
2.8274
3.1416
Existem duas funções que podemos utilizar para criar vectores.
» l=linspace(0,pi,11)
l =
Columns 1 through 7
0
0.3142
0.6283
0.9425
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
Columns 8 through 11
ENIDH/DMM – Luis M. Mendonça
Pág.21
25.1189
39.8107
63.0957
100.0000
Métodos para Definir Vectores
x=ni:i:nf
Cria o vector x com os elementos
especificados. (Os elementos podem ser
expressões ou números complexos).
Cria um vector começando no número ni e
terminando em nf, com incrementos de 1.
Cria um vector começando no número ni e
terminando em nf, com incrementos de i.
x=linspace(primeiro,ultimo,n)
Cria um vector começando no primeiro e
terminando no último, com n elementos.
x=logspace(primeiro,ultimo,n)
Cria um vector começando em 10primeiro e
terminando em 10último, com n elementos.
x=[2 2*pi sqrt(2) 2-3j]
x=ni:nf
2.2 ENDEREÇAMENTO
DE
ELEMENTOS
DE UM
VECTOR
Existem vários métodos de endereçar (ou de aceder) aos elementos de um vector.
ƒ
Indicando a posição 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
2.3 DEFINIÇÃO
0.7854
DE
1.5708
0
MATRIZES
ENIDH/DMM – Luis M. Mendonça
Pág.22
A introdução de uma matriz deve ser feita da seguinte forma: A=[1 2 3; 4 5 6; 7 8 9], em
que o símbolo “ ; ” 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 OPERAÇÕES
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. Mendonça
Pág.23
ADIÇÃO
E
SUBTRACÇÃO
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
MULTIPLICAÇÃO
A multiplicação de matrizes é efectuada utilizando o símbolo “ * ” e tal como acontece nas
operações de soma e subtracção há que ter em consideração as dimensões 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
1
-1
0
0
0
-4
-2
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. Mendonça
Pág.24
DIVISÃO
Existem dois tipos de divisão: a divisão à esquerda (A\b) e a divisão à direita (A/b). Podemos
ver qual a diferença entre estes dois tipos de divisão através de um exemplo.
Considere o seguinte sistema de equações:
1
4

 7
2
5
8
A
3  x 1
6  .  x 2
0   x 3
.
x

 366 
 =  804 




 351 
=
b
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
Divisão à esquerda ( x = A\b é solução para A * x = b)
» x=A\b
x =
25.0000
22.0000
99.0000
» A*x
ans =
366
804
351
Divisão à direita ( y = A/b é solução para x * A = b)
» y=A/b
??? Error using ==> /
Matrix dimensions must agree.
» x*A
??? Error using ==> *
Inner matrix dimensions must agree.
Devido as dimensões das matrizes não é possível realizar a divisão à direita teria que se
modificar as dimensões de b, fazendo a sua transformada por exemplo.
A relação entre estas duas divisões é dada por: A\b = (b’/A’)’
» A\b
ans =
ENIDH/DMM – Luis M. Mendonça
Pág.25
25.0000
22.0000
99.0000
» (b'/A')'
ans =
25.0000
22.0000
99.0000
Também conseguimos resolver um sistema de equações lineares utilizando a função inv para
calcular a inversa de uma matriz - x = A-1 * b – antes, porém, devemos verificar se o sistema
tem uma solução única calculando o seu determinante.
» det(A)
ans =
27
» x=inv(A)*b
x =
25.0000
22.0000
99.0000
2.5 OPERAÇÕES
COM
ARRAYS
Quando se utiliza o termo “operações com arrays” pretende-se referir que as operações
aritméticas são feitas de elemento para elemento.
ADIÇÃO
E
SUBTRACÇÃO
Para a adição e subtracção as operações com array e as operações com matrizes são iguais.
(Utiliza-se os mesmos símbolos)
MULTIPLICAÇÃO
E
DIVISÃO
A multiplicação de array é efectuada elemento a elemento, sendo representada por “ .* ”. Se
A e B têm dimensões iguais então 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 posições
» 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 à divisão; se tivermos D = A ./ B ou E = A .\ B cada elemento de D e E é
obtidos através da divisão (à esquerda ou à direita) envolvendo os elementos respectivos de A
e B.
» D=A./B
ENIDH/DMM – Luis M. Mendonça
Pág.26
D =
1
2
» E=A.\B
E =
1.0000
3
0.5000
0.3333
POTENCIAÇÃO
A potenciação elemento a elemento é efectuada utilizando os símbolos “ .^ ”.
» P=A.^B
P =
4
16
36
Contudo, o expoente poderá ser um escalar.
» Pe=A.^3
Pe =
8
64
216
Mas também podemos ter a base como um escalar
» Ps=3.^A
Ps =
9
81
729
Operações com Arrays
Sabendo que : A = [a1 a2 … an]; B = [b1 b2 … bn]; c – Escalar
Adição com um escalar
A+c = [a1+c a2+c … an+c]
Multiplicação com um escalar
A*c = [a1*c a2*c … an*c]
Adição
A+B = [a1+b1 a2+b2 … an+bn]
Multiplicação
A.*B = [a1.*b1 a2.*b2 … an.*bn]
Divisão à esquerda
A.\B = [a1.\b1 a2.\b2 … an.\bn]
Divisão à direita
A./B = [a1./b1 a2./b2 … an./bn]
Potenciação
A.^c = [a1.^c a2.^c … an.^c]
c.^A = [c.^a1 c.^a2.^c … c.^an]
A.^B = [a1.^b1 a2.^b2 … an.^bn]
ENIDH/DMM – Luis M. Mendonça
Pág.27
2.6 MANIPULAÇÃO
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
4
7
2
5
8
» A(3,3)=9
A =
1
4
7
3
6
0
% modifica o elemento na 3ªlinha, 3ªcoluna para 9
2
5
8
3
6
9
Também podemos fazer:
» A(2,2)=A(1,2)+A(3,2)
A =
1
4
7
2
10
8
3
6
9
Outra manipulação 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, começando na 3 e acabando na 1
B =
% escolhemos as coluna, começando 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. Mendonça
Pág.28
Manipulação 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
FUNÇÕES
COM
MATRIZES
De seguida apresentam-se algumas das matrizes especiais que é possível 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
» eye(3)
ans =
1
0
0
3.1416
3.1416
3.1416
3.1416
3.1416
3.1416
% matriz identidade 3x3
0
1
0
0
0
1
ENIDH/DMM – Luis M. Mendonça
Pág.29
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
(distribuição uniforme).
randn
Matriz preenchida aleatoriamente e segundo a distribuição
normal com µ = 0 e σ = 1.
FUNÇÕES
COM
MATRIZES
O MATLAB possui inúmeras funções com matrizes no quadro seguinte vamos apresentar
apenas algumas.
Funções 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 próprio e vectores próprios.
poly(A)
Polinómio característico
ENIDH/DMM – Luis M. Mendonça
Pág.30
CAPÍTULO
3
OPERADORES RELACIONAIS,
OPERADORES LÓGICOS E
ESTRUTURAS DE CONTROLO
PLANO
DO
CAPÍTULO
3.1 – Operadores Relacionais
3.2 – Operadores Lógicos
3.3 – Estrutura de Escolha (IF –ELSE-END)
3.4 – Estruturas de Repetição (FOR, WHILE)
ENIDH/DMM – Luis M. Mendonça
Pág.31
3.1 OPERADORES RELACIONAIS
No MATLAB utilizamos os operadores lógicos e relacionais para, juntamente com as
estruturas de repetição, controlar a ordem de execução de um conjunto de instruções ou
comandos do MATLAB. Os únicos outputs ou resultados possíveis para uma expressão
contendo operadores relacionais e lógicos são 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 comparação entre duas matrizes, com as mesmas
dimensões, ou para comparar um escalar com os elementos que compõem a matriz
» A=1:9, B=9-A
A =
1
2
3
4
5
6
7
8
9
8
7
6
5
4
3
2
1
0
B =
ENIDH/DMM – Luis M. Mendonça
Pág.32
» VF=A>4
% Os zeros correspondem a elementos que são menores que 4
VF =
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
» A==B
ans =
0
3.2 OPERADORES LÓGICOS
Os principais operadores lógicos são:
Operadores Lógicos
&
And (e)
|
Or (ou)
~
Not (negação)
xor(x,y)
Exclusive Or (Ou exclusivo)
Apresentam-se de seguida alguns exemplos da sua aplicação:
» VF=A>4
VF =
0
0
» VF1=~(A>4)
0
0
1
1
1
1
1
0
0
% negamos a expressão anterior
VF1 =
1
1
1
1
0
0
0
A expressão seguinte devolve uns nas posições em que os elementos da matriz A verificam
a condição, i.e., são maiores do que 2 e menores do que 6.
» VF2=(A>2)&(A<6)
VF2 =
0
0
1
ENIDH/DMM – Luis M. Mendonça
1
1
0
0
0
0
Pág.33
3.3 ESTRUTURA
DE ESCOLHA
(IF-THEN-END)
Utilizamos esta estrutura quando queremos condicionar a execução de uma dada instrução
ou comando ao valor (verdadeiro ou falso) de uma da expressão relacional ou lógica.
O quadro seguinte apresenta a sintaxe da estrutura IF-THEN-END.
IF
expressão
IF
Comandos
ELSEIF
expressão
Comandos
END
Comandos
ELSE
Comandos
END
Os Comandos são executados apenas se a expressão for verdadeira.
Podemos, também, consultar o MATLAB para obter mais informações 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. Mendonça
Pág.34
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 número.
Verifica se esse número é maior ou menor do que 5.
Se for maior imprime no ecrã a palavra GRANDE, caso contrário imprime a
palavra PEGUENO.
n = input('INDIQUE UM NÚMERO MAIOR QUE 0 ->');
if (n > 5)
disp('GRANDE')
elseif (n < 5)
disp('PEQUENO')
else
disp('BATOTA NÃO VALE! O NÚMERO DEVE SER MAIOR OU MENOR QUE 5')
end
3.4 ESTRUTURAS
DE
REPETIÇÃO
FOR
O ciclo FOR permite a repetição de um ou mais comandos. É necessário estabelecer na
sintaxe do comando qual o número de repetições a efectuar.
FOR
FOR
Variável=expressão
Variável=expressão
Comando1
Comando2
Comando
END
…
ComandoN
END
Se, no lugar da expressão tivermos um array ou uma matriz então os comandos são
executados um números de vezes iguais ao número de colunas do array ou matriz.
Podemos consultar o MATLAB para obter mais informações sobre a estrutura FOR.
ENIDH/DMM – Luis M. Mendonça
Pág.35
» 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. Mendonça
Pág.36
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: Faça um m-file que preencha uma matriz. Peça ao utilizador o números de linhas
e de colunas que ele deseja para a matriz.
n=1;
s=1;
disp('PREENCHIMENTO DE UMA MATRIZ')
n = input('INDIQUE O NÚMERO DE LINHAS ->');
s = input('INDIQUE O NÚMERO 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 expressão for verdadeira.
ENIDH/DMM – Luis M. Mendonça
Pág.37
WHILE
Variável
WHILE
Comando1
Variável
Comando
Comando2
END
…
ComandoN
END
Consultando o MATLAB obtemos a seguinte informação 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 utilização da estrutura WHILE.
» n=10;
% queremos preencher um vector com os números 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
ENIDH/DMM – Luis M. Mendonça
4
5
6
7
8
9
10
Pág.38
CAPÍTULO
4
GRÁFICOS
PLANO
DO
CAPÍTULO
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 várias janelas com figuras
ENIDH/DMM – Luis M. Mendonça
Pág.39
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 traçar várias funções no mesmo gráfico utilizando vários 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
Nós podemos definir qual as cores e o tipo de linha que pretendemos introduzindo mais
argumentos no comando plot
Cores: Se não for especificado o tipo de cores que que se pretende para o gráfico o matlab
começa no amarelo e faz um ciclo pelas seis cores disponíveis.
Linestyle: a linha utilizada, por defeito, é o traço continuo.
ENIDH/DMM – Luis M. Mendonça
Pág.40
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+')
assinalando cada ponto
% também com símbolos
plot(x,y,'wo',x,z,'c+') % apenas com símbolos
LETRA
y
m
c
r
g
b
w
k
SÍMBOLO
:
-.
-SÍMBOLO
.
o
x
+
*
CORES
amarelo
magenta
cyan
encarnado
verde
azul
branco
preto
TIPO DE LINHA
linha sólida
ponteada
traço - ponto
traço interropido
MARKERS
ponto
círculo
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. Mendonça
Pág.41
title ('Seno e Coseno')
Podemos introduzir texto em qualquer parte do gráfico utilizando comando text e as
respectivas coordenadas.
text(2.5,0.7,'sin(x)')
gtext('cos (x)') %utilizando o rato para escolher a posição
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 à posição 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. Mendonça
Pág.42
4.6 - UTILIZAR VÁRIAS 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. Mendonça
Pág.43
CAPÍTULO
5
EXERCÍCIOS
PLANO
DO
CAPÍTULO
5.1 – Exercícios (Parte A)
5.2 – Exercícios (Parte B)
ENIDH/DMM – Luis M. Mendonça
Pág.44
5.1 EXERCÍCIOS (PARTE A):
Os exercícios a efectuar deverão ser apresentados sob a forma de listagem do Matlab.
1. Pretende-se utilizar para cálculos futuros uma matriz A,
2
A = 3
1
5
8
3
7
4 
9
1.1. Faça ecoar esta matriz para o monitor.
1.2. Se pretendesse não visualizar a matriz como faria ?
2. Calcule a transposta da matriz A.
3. Pretende-se utilizar, igualmente, uma matriz B
3
B = 1
1
2
4
7
5
6 
8 
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.
E = [5
6
1]
4.1. Calcule a Matriz F correspondente ao produto de B por E. Efectue todos os cálculos
necessários, especificando-os.
5. Efectue a divisão à 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 1 .
2
7.2. Iniciando em 14 e terminando em 1 com incrementos fornecidos por uma variável β.
Considere que β = − 1 .
10
8. Qual o resultado que espera obter após a introdução da seguinte expressão:
ENIDH/DMM – Luis M. Mendonça
Pág.45
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. Mendonça
Pág.46
5.2 EXERCÍCIOS (PARTE B):
A resolução do exercícios deve ser apresentada em disquete ou em listagem do MATLAB. Os
ficheiro devem ter os nomes especificados no enunciado de cada exercício.
10. Fazer um m-file em que é pedido ao utilizador para introduzir um número, o programa
deve determinar a que intervalo pertence o número 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 deverão ser 1 e os
restantes elementos são calculados através da expressão:
3x i

a( i , j ) = 
 j 
2
Utilize ciclos FOR. (O m-file deve ter o nome: for1.m)
12. Faça o exercício 2 utilizando o ciclo WHILE. (O m-file deve ter o nome: wh1.m)
ENIDH/DMM – Luis M. Mendonça
Pág.47
6- ÍNDICE
1.1 COMMAND WINDOW................................................................................................................................ 2
1.2 OPERAÇÕES ARITMÉTICAS ................................................................................................................... 2
1.3 VARIÁVEIS EM MATLAB ........................................................................................................................ 4
1.4 COMENTÁRIOS E PONTUAÇÃO............................................................................................................ 7
1.5 NÚMEROS COMPLEXOS .......................................................................................................................... 8
1.6 FUNÇÕES MATEMÁTICAS..................................................................................................................... 10
1.7 FICHEIROS SCRIPT OU M-FILES......................................................................................................... 12
1.8 COMO ENCONTRAR AJUDA NO MATLAB..................................................................................... 14
2.1 DEFINIÇÃO DE VECTORES .................................................................................................................. 20
2.2 ENDEREÇAMENTO DE ELEMENTOS DE UM VECTOR ............................................................. 22
2.3 DEFINIÇÃO DE MATRIZES................................................................................................................... 22
2.4 OPERAÇÕES COM MATRIZES............................................................................................................. 23
2.5 OPERAÇÕES COM ARRAYS................................................................................................................... 26
2.6 MANIPULAÇÃO DOS ELEMENTOS DE UMA MATRIZ............................................................... 28
2.7 MATRIZES ESPECIAIS E FUNÇÕES COM MATRIZES................................................................ 29
MATRIZES ESPECIAIS ................................................................................................................................... 29
3.1 OPERADORES RELACIONAIS............................................................................................................... 32
3.2 OPERADORES LÓGICOS ........................................................................................................................ 33
3.3 ESTRUTURA DE ESCOLHA (IF-THEN-END).................................................................................... 34
3.4 ESTRUTURAS DE REPETIÇÃO ............................................................................................................ 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 VÁRIAS JANELAS COM FIGURAS ................................................................................. 43
5.1 EXERCÍCIOS:.............................................................................................................................................. 45
5.2 EXERCÍCIOS:.............................................................................................................................................. 47
6- ÍNDICE............................................................................................................................................................ 48
ENIDH/DMM – Luis M. Mendonça
Pág.48
Download

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