You are on page 1of 7

I

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES

SIMULAO DE SISTEMAS DE COMUNICAO


Prtica Laboratorial - 1- Introduo ao Matlab

Comandos
Relatrio da experincia laboratorial
Data:_____________ Turma:_____________ Equipa:_____________
Aluno No._________ Nome:____________________________________________
Aluno No._________ Nome:____________________________________________
Aluno No._________ Nome:____________________________________________
Aluno No._________ Nome:____________________________________________
Aluno No._________ Nome:____________________________________________

I.- Introduo.
A interface do Matlab intuitiva e simples. Ao abrir a aplicao tem acesso ao ambiente de
desenvolvimento que se caracteriza por disponibilizar as seguintes seces:
Barra de Menus dependentes da tarefa seleccionada;
rea de introduo de comandos e visualizao de resultados (prompt);
Menu de navegao de directrios;
Visualizao do Workspace (variveis criadas e existentes na memria);
Visualizao do histrico dos comandos introduzidos por sesso de trabalho;
Acesso ao Editor para programao.
Vamos proceder
potencialidades.

abertura

de

alguns mdulos programados para verificar as

Na linha de comandos escreva seguido de enter,


>> travel
>> truss
>> teapotdemo

II.- Configurao do directrio de trabalho.


Antes de iniciar a sesso de trabalho necessrio modificar o directrio de trabalho menu
superior. Assim, tudo o que estiver neste directrio estar disponvel para o Matlab. So
exemplos disso os M-Files desenvolvidos.
Caso pretendas reconhecer o contedo de um directrio mas trabalhar noutro ento ters de
adicionar o primeiro ao conjunto de directrios em que o Matlab procura por cdigo,
Menu File/Set_Path
Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES

III.- Iniciando com a Simulao em Matlab.


3.1.- Elementos da lgebra
Pode definir constantes. Os nomes das variveis no devem comear por nmeros.
a) Faa:
>> a = 10, b = 5, c = 2
O operador , serve para realizar espaamento entre instrues. Pode realizar mais do
que uma instruo na mesma linha.
O que v na prompt do Matlab? Visualize o Workspace. O que regista?
[Resposta:]_Foram declaradas variveis e atribudas valores e observou-se espaamentos entre
instrues, pelo operador , . O workspace regista os valores das variveis.
Para limpar variveis da memria pode apag-las. Estando a monitorizar o workspace faa,
>> clear a
>> clear all
b) Volte a definir as mesmas variveis, mas agora com uma pequena alterao nas linha
de cdigo,
>> a = 10; b = 5; c = 2;
Tambm se pode pedir ao Matlab a listagem do workspace, na prompt faa: >> whos.
O que v na prompt do Matlab? Visualize o Workspace. Qual a funo do operador ;
nesta linha de cdigo?
[Resposta:] Com ; no h espaamento entre variveis. O ; entre parentsis para indicar o fim
de uma matriz, e tambm usado depois de uma expresso para supremir a sua impresso.
Sobre as variveis pode realizar operaes. Para se aceder listagem de operaes
disponveis, faa na prompt do Matlab,
>> help +
Sempre que queira saber algo ( precise de ajuda sobre uma funo ) pode na prompt do
Matlab introduzir:
>> help [nome_funo], (sem parentesis).
Outra forma de pedir ajuda recorrer barra de menus.
c) Realize a seguintes operaes:
>> a = 10; b = 5; c = 2;
>> rho = ( 1 + sqrt(5))/2
Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES


>> b = abs(3+4*i)
>> ISUTC= exp(log(realmax))
Que clculo realizado em cada instruo?

[Resposta:]Em cada instruo, por exemplo na primeira instruo feita a declarao de variveis e a
respectiva atribuio de valores, na segunda linha h uma declarao da varivel rho que realiza uma
serie operaes, sqrt(5) calcula a raz quadrada de 5, depois soma por 1, e o resultado divide por 2, na
terceira linha h declarao de uma varivel b e feita a operao abs(3+4*i), dentro de parntesis
temos um nmero complexo, o i indica a parte imaginrio, e abs() calcula o valor absoluto do que
est dentro de parntesis, e a ltima linha, declara a varivel ISUTC e realiza a operao realmax
que o valor real mximo, a operao log() que calcula o logaritmo, e a operao exp() que calcula
a constante de euller, elevado o que est dentro de parntesis.
Com certeza reparou que foram feitas referncias a variveis no existentes no workspace e
o cdigo correu sem problemas. O Matlab tem um conjunto de nmeros definidos por defeito.
Qual o valor de
[R]
Pi: 3,1416
i :0+1.0000i
j :0+1.0000i
eps :2.2204e-0.16
realmax :1.7977e+308
realmin :2.2251e-308
inf :Infinito
NaN : Indeterminao
3.2.- Trabalho com Matrizes.
Iniciemos com a manipulao de matrizes.
a) Defina na prompt do Matlab a matriz A,
>> A = [ 16 , 2, 3 , 13 ; 5 , 11, 10, 8 ; 9 , 7, 6, 12; 4 , 14, 15, 1]
Os vectores e matrizes definem-se sempre por parntesis rectos. Dentro dos argumentos
do vector o operador , separa os elementos e o operador ; muda de linha.
Quais so as dimenses da matriz definida?
[Resposta:] A dimenso da matriz 4x4
A dimenso de uma matriz pode ser lida pelo comando size.
b) Realize a soma dos valores por coluna da matriz, faa,
>> sum(A)

Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES

Alguma particularidade na resposta?


[Resposta:] Pode-se notar que efectuou-se a soma das colunas da matriz
c) Transponha a matriz A e defina a matriz B como sendo a transposta, faa,
>> B = A
d) Realize a soma dos valores por coluna. Alguma particularidade?
[Resposta:] Somando cada coluna, o resultado ser igual a soma das colunas da matriz A.
e) Aceda aos elementos da diagonal da matriz A e some-os, faa,
>> sum( diag(A) )
Pode encadear operaes numa mesma instruo. Caso prefiras por legibilidade de
cdigo podes fazer uma instruo por linha.
Note-se: As funes tm sempre parntesis curvo para receber os argumentos.
O resultado anterior poderia ser obtido pela referncia a cada elemento da matriz em
particular, faa:
>> A(1,1) + A(2,2) + A(3,3) + A(4,4)
Os elementos de um array so obtidos por referncia dos seus ndices dentro de
parntesis curvos.
Qual a dimenso de diag(A)? Alguma particularidade quanto ao resultado?
[Resposta:] A dimenso da diag(A) 4x1.
Acabou de encontrar uma matriz mgica. Faa no Matlab,
>> A magic(4)
Que operao acabou de realizar? Que lhe permite concluir?
[Resposta:] Produz uma matriz com a mesma dimenso mas com valores iguais, podemos concluir
que a matriz
f) Que operaes so realizadas pelas instrues seguintes: (pode fazer help para
pormenores)
>> n = 3
>> zeros(n) Faz uma matriz 3x3 com zeros
>> ones(n) Faz uma matriz 3x3 com 1
Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES


>> eye(n) Faz uma matriz Identidade (I) 3x3
>> rand(n) Faz uma matriz aleatria 3x3 com valores igualmente distribudos entre 0 e 1

Existem operaes especialmente dedicadas manipulao de matrizes j conhecidas.


Aqui so implementadas via,
>> rank(A) devolve o ranking da matriz, neste caso, devolve 3
>> det(A) devolve a determinante da matriz
>> eig(A) devolve os autovalores e os autovectores associados a matriz A
>> inv(A) devolve o inverso da matriz
>> svd(A) devolve a decomposio em valores singulars
g) Aceda apenas a algumas colunas ou linhas da matriz A faa,
>> D = A(1:3,:)
O operador : no primeiro caso lido como do ndice 1 a 3 e no segundo caso
como qualquer.
Qual a semelhana entre D e A?
[Resposta:] A semelhana est nas 3 primeiras linhas, a ltima linha da matriz A foi eliminada a
ultima para fazer a matriz D
h) Apague uma coluna ou linha da matriz, faa:
>> D(:,2) = [ ]
O que foi apagado da matriz original A?
[Resposta:] Foi eliminada a ltima coluna
Quando se define uma matriz nem sempre tem de ser introduzido elemento a elemento.
Podem ser adicionados elementos a matrizes ou criada uma matriz a partir de matrizes.
Chama-se a isto concatenao. Faa na prompt do Matlab,
>> X = A
>> X(4,5) = 17
Qual a dimenso final de X ?
[Resposta:] A dimenso final de X 4x5
3.3.- Trabalho com Vectores.
a) Crie no Matlab o seguinte vector de inteiros:
Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES


>> n = [-5:5]

O operador : nesta instruo indica a existncia de um intervalo, no caso entre -5 e 5


com incremento unitrio.
Como procederias para cumprir o mesmo objectivo noutra linguagem?
[Resposta:]
Sobre um vector de dados pode-se pretender realizar operaes, nomeadamente calcular o
quadrado de cada entrada entre outras.
As operaes sobre elementos de vectores so geralmente acompanhadas do
operador .. (Realizar : >> help + ).
b) Faa as seguintes operaes:
>> pow = [ n, n.^2, 2.^n]
Qual o significado de cada coluna de pow?
[Resposta:]________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
Podem-se realizar grficos de dados armazenados em matrizes. Em relao ao exemplo
cada coluna da matriz tem o significado indicado.
c) Faa na prompt do Matlab:
>> plot(n,pow)
Qual o significado da curva azul, verde e vermelha?
[Resposta:]________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
O nvel de iniciado est concludo. Decerto ficaste cansado de introduzir comandos e
de os reintroduzir quando algum erro acontecia. Utilizar a pompt do Matlab apenas
para amadores, os profissionais utilizam as capacidades de programao que o
Matlab
oferece.

Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAES

Sistemas de Comunicao -I- Relatrio da prtica laboratorial

MM