Você está na página 1de 49

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
Grava o conteúdo do Command window
diary para um ficheiro de texto chamado diary.

Grava tudo o que se passa durante uma


diary nome_ficheiro 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
home esquerdo.
Obriga os dados a saírem para o ecrã página
more 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 SÍMBOLO EXEMPLO

Adição, a + b + 5+3
Subtracção, a – b - 23 - 12
Multiplicação, a . b * 3.14 * 0.85
Divisão, a ÷ b / ou \ 56/8 = 8\56
Potenciação, ab ^ 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

Variável onde são guardados, por defeito, os


Ans resultados das operações - ans é o diminutivo
de ANSwer.
pi Valor de π = 3.1416.
Unidade de arredondamento da máquina, i.e.,
Eps o menor valor que adicionado a 1 representa
um número maior que 1
Contador do número de operações efectuadas.
Flops Estamos a falar de operações em vírgula
flutuante.
Inf Representa +∞, isto é, 1/0
Not-a-Number, símbolo que representa 0/0 ou
NaN 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 itens
cadernos custo_total

ƒ 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| = a2 + b2

angle(z) - 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 EXPONENTIAL
sin Seno exp Exponencial
sinh Seno hiperbólico log Logaritmo natural
asin Arco cujo o seno é log10 Logaritmo de base 10
asinh Arco cujo seno hiperbólico é sqrt Raiz quadrada
cos Co-seno
cosh Co-seno hiperbólico
acos Arco cujo o co-seno é
acosh Arco cujo co-seno hiperbólico é COMPLEXAS
tan Tangente abs Valor Absoluto
tanh Tangente hiperbólica angle Argumento (em radianos)
atan Arco cuja tangente é conj Complexo conjugado
atanh Arco cuja tangente hiperbólica é imag Parte imaginaria
sec Secante real Parte real
sech Secante hiperbólica
asec Arco cujo co-seno hiperbólico é
asech Arco cujo co-seno hiperbólico é
csc Co-secante
csch Co-secante hiperbólica
acsc Arco cuja co-secante é NUMÉRICAS
acsch Arco cuja co-secante hiperbólica é round Arredonda para o inteiro
cot Co-tangente mais próximo
coth Co-tangente hiperbólica rem Resto da divisão
acot Arco cuja co-tangente é sign Sinal de um número
acoth Arco cuja co-tangente hiperbólica é

» 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 m-
files 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» 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) 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. Mendonça Pág.17


ESORT Sort complex continuous eigenvalues in descending order
LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex

ENIDH/DMM – Luis M. Mendonça 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 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 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
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. 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
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 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. Mendonça Pág.21


25.1189 39.8107 63.0957 100.0000

Métodos para Definir Vectores

Cria o vector x com os elementos


x=[2 2*pi sqrt(2) 2-3j] especificados. (Os elementos podem ser
expressões ou números complexos).
Cria um vector começando no número ni e
x=ni:nf terminando em nf, com incrementos de 1.
Cria um vector começando no número ni e
x=ni:i:nf terminando em nf, com incrementos de i.
Cria um vector começando no primeiro e
x=linspace(primeiro,ultimo,n) terminando no último, com n elementos.
Cria um vector começando em 10primeiro e
x=logspace(primeiro,ultimo,n) terminando em 10último, com n elementos.

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 0.7854 1.5708 0

2.3 DEFINIÇÃO DE 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 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. 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 2 3  x 1   366 
4 5 6  .  x 2  =  804 
   
 7 8 0   x 3   351 
A . x = 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 3

» E=A.\B
E =
1.0000 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 2 3
4 5 6
7 8 0

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

A =
1 2 3
4 5 6
7 8 9

Também podemos fazer:

» A(2,2)=A(1,2)+A(3,2)

A =
1 2 3
4 10 6
7 8 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
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. 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) Valores próprio e vectores próprios.


[V,D]=eig(A)

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

B =
8 7 6 5 4 3 2 1 0

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

» A==B
ans =
0 0 0 0 0 0 0 0 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 0 0 1 1 1 1 1

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


VF1 =
1 1 1 1 0 0 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 1 1 0 0 0 0

ENIDH/DMM – Luis M. Mendonça 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 expressão
Comandos Comandos
ELSEIF 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 Comando
Comando2 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 Variável
Comando1 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 4 5 6 7 8 9 10

ENIDH/DMM – Luis M. Mendonça 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+') % também com símbolos


assinalando cada ponto

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

LETRA CORES

y amarelo
m magenta
c cyan
r encarnado
g verde
b azul
w branco
k preto

SÍMBOLO TIPO DE LINHA

- linha sólida
: ponteada
-. traço - ponto
-- traço interropido

SÍMBOLO MARKERS

. ponto
o círculo
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. 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 5 7
A = 3 8 4 
1 3 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 2 5
B = 1 4 6 
1 7 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:

2
3x i
a( i , j ) =  
 j 

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

Você também pode gostar