You are on page 1of 12

Universidade Federal de Sao Joao Del-Rei

Engenharia de Telecomunicacoes
Programacao para Engenharia
Aula Pratica I - Introducao Matlab
Professor: Gustavo Fernandes Rodrigues
Nome:

INSTRUC

OES:
1. Os arquivos contendo funcoes em Matlab sao salvos com a extensao .m;
2. Para obter ajuda no Matlab digite o comando help e nome da funcao. Caso queira ler o script de uma
func ao digite type e o nome da mesma;
3. Objetivo: Introduzir o ambiente Matlab no curso e aplicar conceitos basicos de processamento digital de
sinais e sistemas discretos.
I - Introducao ao Matlab
O MATLAB (abreviatura de Matrix Laboratory) e um programa para desenvolvimento e
implementacao de algoritmos numericos ou simbolicos que oferece ao usuario um ambiente in-
terativo de programa cao para estudo e pesquisa nas diversas areas das ciencias exatas.
Um dos aspectos mais poderosos e o fato da linguagem MATLAB permitir construir suas
proprias ferramentas reutilizaveis. Isto e feito atraves da escrita de suas proprias funcoes e pro-
gramas especiais conhecidos como arquivos .m.
A primeira versao do MATLAB foi escrita nas Universidades do Novo Mexico e Stanford, na
decada de 1970, e destinava-se a cursos de teoria matricial, algebra linear e analise numerica. Os
pacotes para manipula cao de sub-rotinas em FORTRAN, denominados LINPACK e EISPACK,
foram os precursores do MATLAB. O MATLAB tem evoludo continuamente, com a contribui cao
e sugestoes de in umeros usuarios. No meio universitario, o MATLAB tornou-se quase que uma
ferramenta padrao em cursos introdutorios e avan cados de

Algebra Aplicada, Processamento de
Sinais, Sistemas de Controle, Estatstica e in umeras outras areas do conhecimento.
O MATLAB contempla ainda uma grande famlia de aplicacoes especcas, as quais sao de-
nominadas Toolboxes (caixas de ferramentas) tais como: Processamento de Sinais, Projeto de
Sistemas de Controle, Simulacao Dinamica de Sistemas, Identicacao de Sistemas, Redes Neu-
ronais, Logica Fuzzy (nebulosa ou difusa), Otimizacao de Sistemas, Wavelets, Calculo Simbolico,
e outras areas.
Usos tpicos:
Matematica e computa cao;
Desenvolvimento de algoritmos;
Aquisicao de dados;
Construcao de interface visual do usuario;
Modelagem, simulacao e prototipagem;
Analise de dados, exploracao e visualizacao.
Para inicializar o Programa MATLAB bastar um duplo clique no cone do MATLAB.
II - Tela da linha de comando do Matlab
A tela da linha de comando do MATLAB (ou workspace) e a tela na qual o usuario re-
cebe o sinal de pronto (prompt) do sistema MATLAB, podendo executar comandos MATLAB,
escrevendo-os na linha de comando (ou command line).
Na tela da linha de comando, o usuario fornece dados aos comandos do MATLAB, executa
comandos, recebe os dados de sada do programa MATLAB, controla o uxo de dados, inicia
o modo de edicao de arquivos, executa comandos gracos, ou seja, interage com o programa
MATLAB.
Ao criar funcoes, comandos e variaveis no programa MATLAB e importante estar atento
para o fato de que este programa e sensvel a caracteres mai usculos e min usculos, portanto a
variavel xqualquer e diferente da variavel Xqualquer para o MATLAB.
III - Criacao de Arquivos no Matlab
Existem basicamente duas formas de trabalhar no sistema MATLAB: 1) executando-se co-
mando na linha de comando; ou 2) criando-se um arquivo de comandos do MATLAB.
Para trabalhar na linha de comando do MATLAB basta digitar qualquer comando valido do
MATLAB na linha de comando. Assim, e possvel criar variaveis, executar comandos, visualizar
gracos, etc.
Muitas vezes e necessario executar um n umero grande de comandos, e repeti-los sistemati-
camente. Nestes casos, utilizam-se os arquivos de lote, ou arquivos de comandos MATLAB.
Conforme ja citada anteriormente, a extensao de arquivos de comando do MATLAB e m. O
MATLAB busca primeiramente o arquivo de comandos no seu diretorio de trabalho (pasta) e
posteriormente no seu caminho (path). Portanto, e necessario que o arquivos MATLAB esteja
no diretorio de trabalho ou no caminho do MATLAB.
Os arquivos de comando do MATLAB devem estar no diretorio de trabalho ou no caminho
(path) para serem reconhecidos e executados Os arquivos do MATLAB podem ser criados atraves
de qualquer editor que salva textos no formato ASCII (por exemplo bloco de notas, notepad,
write, word, etc). Uma vez editados os arquivos devem ser gravados com extensao m antes de
serem executados.
Os arquivos MATLAB podem ser abertos ou criados atraves da op cao arquivo (le), escolhendo-
se a opcao novo (new) ou abrir (open), ou diretamente digitando o nome do arquivo .m na tela
de comandos.
IV - Utilizando o Help do Matlab
A melhor apostila tutorial sobre o MATLAB que possa existir e o HELP do proprio MAT-
LAB. Todas as informacoes possveis h a no HELP, principalmente sobre as toolboxes, sobre
funcoes, SIMULINK e entre outros.
O HELP pode ser aberto de varias formas: i) a primeira e atraves da barra de menu; ii) outra
forma e pela tecla de atalho F1; iii) uma terceira forma e pelo botao START, posicionado logo
abaixo do COMMAND HISTORY.
Dando continuidade, quando se deseja obter informa coes sobre uma dada fun cao, e possvel
consultar diretamente no HELP ou pelo COMMAND WINDOW. Para isso, basta digitar help
e em seguida a funcao requerida, de acordo com o exemplo abaixo:
>> help dirac
Outra forma e digitar o comando (neste caso sera aberto uma janela):
>> helpwin dirac
outra opc~ ao e digitar:
>> doc dirac
V - Ambiente de Trabalho
A gura abaixo retrata o ambiente de utilizacao do Matlab. Pode-se visualizar ao mesmo
tempo a janela de comando, o workspace, o diretorio atual, e o historico de comandos digitados.
Workspace:
O workspace e o local onde todas as variaveis criadas cam armazenadas, como pode ser ob-
servado pela gura a seguir. Ao se observar a gura anterior, pode-se notar que os procedimentos
executados na janela de comando (Command Window) sao armazenados temporariamente no
workspace na forma de variaveis, de modo que ao fechar o Matlab ou ao digitar o comando clear
todos os dados serao perdidos.
VI - Operacoes Basicas e Expressoes Logicas
O MATLAB oferece as seguintes opera coes aritmeticas basicas:
A ordem nas expressoes segue a ordem matematica - potencia, seguida da multiplicacao e da
divisao, que por sua vez sao seguidas pelas opera coes de adi cao e subtra cao. Parentesis podem
ser usados para alterar esta ordem. Neste caso, os parentesis mais internos sao avaliados antes
dos mais externos.
Uma expressao se diz logica se os operadores sao logicos e os operandos sao relacoes e/ou
variaveis do tipo logico. Os operadores relacionais realizam compara coes entre valores do mesmo
tipo. Os operadores relacionais utilizados pelo MATLAB sao:
Note que (=) e usado para atribuicao de um valor a uma variavel, enquanto que (==) e
usado para comparacao de igualdade. No MATLAB os operadores relacionais podem ser usados
para comparar vetores de mesmo tamanho ou escalares. O resultado de uma relacao ou de uma
expressao logica e verdadeiro ou falso; contudo, no MATLAB o resultado e numerico, sendo que
1 signica verdadeiro e 0 signica falso. Por exemplo:
5>8
ans =0
5==5
ans = 1
Os operadores logicos permitem a combinacao ou negacao das rela coes logicas. Os operadores
logicos do MATLAB sao:
Operadores e Caracteres especiais:
- Operador \ :
Proposito: executar divisao de escalares ou a multiplicacao de uma matriz inversa por outra
matriz.

E a chamada divisao esquerda. Sintaxe: v1 \ v2 ou mldivide(v1,v2).
Descricao: Invoca a funcao mldivide. Esta opera cao e equivalente a v1
1
(sendo v1
1
a matriz
inversa da matriz v1). Para que esta opera cao seja possvel e necessario que v1 seja inversvel, ou
seja, matriz nao-singular (matriz quadrada com determinante nao-nulo). Observe que na algebra
matricial a multiplicacao nao e comutativa, ou seja a*b e diferente de b*a, portanto a/b equivale
a a b
1
, que por sua vez e diferente de b\a, equivalente a b
1
a.
Operador :
Proposito: executar a transposi cao de matrizes ou a declaracao de uma cadeia de caracteres
(string). Sintaxe: v1 ou v2=bom dia
Descricao: v1 produz a matriz v1*T (matriz transposta conjugada da matriz v1, troca de lin-
has por colunas dos conjugados dos n umeros complexos da matriz v1). v2=bom dia cria uma
variavel do tipo string, onde cada caractere ocupa 2 bytes na memoria. Exemplos: a*b ou salu-
tation=Hello!.
Caracter . :
Proposito: executar operacoes elemento-a-elemento (opera coes algebricas escalares (/, \, ,,

),
nao-matriciais); indexar campos em estruturas; ou ponto decimal.
Sintaxe: a. a; a./b; c.\f; x.2; x.y para operacoes algebricas; ou est.campo
Descricao: a.*b multiplica o elemento a(i,j) pelo elemento b(i,j).
a. e a matriz transposta nao conjugada da matriz a.
Caracter : :
Proposito: Criar varredura limitada pelos n umeros `a direita e `a esquerda de :.
Sintaxe: j:k; j:d:k.
Descricao: j:k e o mesmo que [j j+1 j+2 ... k].
Caracter = :
Proposito: executa atribui coes.
Exemplos: x=[1 2 3; 4.5 6 7.5];
Caracter , :
Proposito: separar elementos em uma matriz; indexar matrizes; separar argumento de uma
funcao; separar comando em uma linha com varios comandos.
Exemplos: 2*a(2,3); plot(x,y); x(i,j); mat=[a, b, c]; clear, disp(memoria limpa).
Caracter ; :
Proposito: usado em declara cao de matrizes para separar linhas; ou usado para omitir a ap-
resentacao do resultado de uma operacao na tela.
Exemplos: x=[1 2 3; 9 8 7]; a=2+3;
Caracter ! :
Proposito: invoca comando do sistema operacional.
Exemplos: ! mkdir novo.
Caracter % :
Proposito: torna o texto `a direita de % um comentario.
Exemplos: x=[1 2 3; 4.5 6 7.5]; % cria matriz x.
Caracter .. :
Proposito: representa o primeiro diretorio na hierarquia de diretorios.
Exemplos: cd .. sobe um diretorio na hierarquia.
Caracter ... :
Proposito: representa continuacao de linha.
Exemplos: a=2+...
3 e o mesmo que a=2+3.
Caracteres ( ) :
Proposito: indicam precedencia em operacoes matematicas ou indexam matrizes.
Exemplos: (a +b)
c
, a soma e realizada antes da potenciacao; x(3) e o terceiro elemento do vetor
x; x([1 2 3]) sao os tres primeiros elementos do vetor x.
Caracteres { } :
Proposito: sao utilizadas para formar estruturas (conjunto de celulas), onde cada celula pode
ser outra estrutura, uma matriz ou uma string. Funciona como os [ ], porem seus elementos
podem ser outras matrizes.
Podem tambem ser utilizadas para indexar estruturas e dar acesso aos seus campos.
Exemplo: l={isto e uma matriz linha: [1224]}, l e uma estrutura com 5 campos.
Constantes e variaveis:
Alguns caracteres sao constantes denidos pelo MATLAB. Estes valores podem ser alterados
temporariamente atraves de atribuicao.
Constante :
Denicao: e a constante (3,1416...)
Constante i e j :
Proposito: caracteres reservados com a unidade imaginaria -1 .
Sintaxe: n umero seguido de i ou j, ou multiplicado por i ou j.
Exemplos: 5+3i ou 5+3*i; 5+3j ou 5+ 3*j.
Constante ans :
Denicao: e uma variavel cujo valor e o resultado da ultima opera cao aritmetica realizada pelo
MATLAB. Opera coes de atribuicao nao sao armazenadas em ans. Abreviatura para answer.
Constante inf :
Denicao: e o resultado de uma opera cao aritmetica cujo valor ultrapassa a maior capacidade
de representa cao do MATLAB. Por exemplo, divisao por zero. Abreviatura para innite.
Constante NaN :
Denicao: e o resultado de uma operacao aritmetica indeterminada. Por exemplo, 0/0 Abre-
viatura para Not a Number.
Comandos de Propositos Gerais:
ver
Proposito: informa as versoes do MATLAB, SIMULINK e toolboxes.
version
Proposito: informa as versoes do MATLAB
demo
Proposito: executa programas de demonstracao desenvolvidos em ambiente MATLAB.
whatsnew
Proposito: Ajuda em tempo real (on-line). O texto e apresentado em uma janela de navega cao
separada.
Exemplo: whatsnew MATLAB; whatsnew general.
bench
Proposito: executa um conjunto de funcoes MATLAB com a nalidade de avaliar o desem-
penho do processador atual utilizado em relacao a outros processadores.
who
Proposito: lista as variaveis atuais.
whos
Proposito: lista as variaveis atuais, suas dimensoes e memoria que cada uma ocupa.
clear
Proposito: limpa completamente a memoria, fun cao ou variavel.
Descricao: clear limpa toda a memoria da area de trabalho; clear arg exclui a fun cao ou variavel
arg da memoria da area de trabalho.
Exemplo: clear; clear x1.
clc
Proposito: limpa completamente a area de trabalho, porem nao a memoria, fun cao ou variavel.
save
Proposito: salva as variaveis da memoria da area de trabalho em arquivo. Sintaxe: save fname;
save fname v1 v2 ... vn.
Descricao: save fname salva todas as variaveis da area de trabalho no arquivo cujo nome e cam-
inho sao descritos em fname.
save fname v1 v2 ... vn salva apenas as variaveis v1, v2 e vn.
Exemplo: save a:\hoje; save c:\MATLAB\ arq x y.
load
Proposito: carrega as variaveis de um arquivo para a memoria da area de trabalho.
Sintaxe: load fname; load fname v1 v2 ... vn.
Descricao: load fname carrega todas as variaveis do arquivo cujo nome e caminho sao descritos
em fname para a memoria da area de trabalho.
load fname v1 v2 ... vn carrega apenas as variaveis v1, v2 e vn. Exemplo: load a:\hoje; load
c:\MATLAB\arq x y.
quit
Proposito: encerra a sessao de trabalho do MATLAB
what
Proposito: lista os nomes de arquivos de fun coes e comandos de um grupo especco do MAT-
LAB.
Sintaxe: what nome; var=what(nome).
Descricao: what nome lista todos os arquivos e funcoes do grupo descrito por nome.
var=what(nome) cria uma estrutura cujos campos descrevem os diversos arquivos relacionados
com o grupo denido por nome.
Exemplo: what general; w=what(signal).
type
Proposito: lista o conte udo de um arquivo de comandos do MATLAB.
Sintaxe: type arq.
Exemplo: type multi.m; type c:\MATLAB\marisa\xtudo.m.
edit
Proposito: edita arquivo do MATLAB
Sintaxe: edit; edit arq.
Descricao: somente edit inicia a edicao de um novo arquivo; edit arq abre a edi cao de um arquivo
arq ja existente.
Exemplo: edit; edit gs.m.
open
Proposito: abre um arquivo do MATLAB
lookfor
Proposito: busca a palavra-chave em todos os arquivos contidos no caminho do MATLAB.
Sintaxe: lookfor palavra.
Descricao: procura, em todos os arquivos do caminho, a palavra-chave contida na string palavra,
e lista o nome dos arquivos nos quais existe a palavra-chave.
Exemplo: lookfor matrix.
path
Proposito: verica ou dene o caminho de diretorios.
Sintaxe: path; path=caminho; v=path.
Descricao: path lista na tela da linha de comando o caminho atual. path=caminho dene o cam-
inho atual como sendo a string contida em caminho. v=path carrega a string correspondente ao
caminho atual em v.
Exemplo: path; path=c:\usuario\MATLAB; p1=path.
addpath
Proposito: adiciona diretorios ao caminho.
Sintaxe: addpath nome.
Descricao: adiciona o diretorio descrito na string nome ao caminho atual.
Exemplo: addpath c:\user\pink.
rmpath
Proposito: remove diretorios do caminho.
Sintaxe: rmpath nome.
Descricao: remove o diretorio descrito na string nome ao caminho atual.
Exemplo: rmpath c:\user\pink.
echo
Proposito: habilita ou inibe a apresenta cao dos resultados de comando de um arquivo MAT-
LAB na linha de comando.
Sintaxe: echo on; echo o.
Descricao: echo on habilita a apresenta cao e echo o desabilita.
diary
Proposito: salva todo o texto da sessao de trabalho em arquivo
Sintaxe: diary on; diary o; diary(nome).
Descricao: apos diary on todo texto que aparece na janela de comando e tambem enviado para
um arquivo nomeado automaticamente pelo MATLAB.
diary o interrompe o salvamento em arquivo. diary(nome) salva o texto da janela de comando
no arquivo cujo nome e descrito pela string nome.
Exemplo: diary on; diary o; diary(31-8-00).
format
Proposito: determina o formato no qual os dados serao expressos na janela de comando.
Sintaxe: format op cao.
Descricao: expressa os dados conforme opcao. opcao: 1) short ou em branco: formato ponto dec-
imal com 5 dgitos; 2) long: formato ponto decimal com 15 dgitos; 3) short e: formato ponto
utuante com 5 dgitos; 4) long: formato ponto utuante com 15 dgitos; 5) short g: o MATALAB
seleciona entre o formato ponto decimal com 5 dgitos ou ponto utuante com 5 dgitos; 6) long
g: o MATALAB seleciona entre o formato ponto decimal com 15 dgitos ou ponto utuante com
15 dgitos; 7) hex: hexadecimal; 8) +: apresenta o sinal + ou - para os valores; 9) bank: formato
bancario com $ e centavos; 10) rat: aproxima para a fra cao mais proxima do valor a ser expresso.
A tabela abaixo ilustra as opcoes de formata cao:
cd
Proposito: altera o diretorio de trabalho atual.
Sintaxe: cd diretorio.
Exemplo: cd c:\MATLAB\usuario.
pwd
Proposito: exibe o diretorio de trabalho atual.
Sintaxe: pwd.
dir
Proposito: lista os arquivos do diretorio atual.
Sintaxe: dir.
delete
Proposito: exclui arquivo do diretorio.
Sintaxe: delete arq.
Exemplo: delete tarefa.m.
dos
Proposito: executa comando do MS-DOS.
Sintaxe: dos comando.
Exemplo: dos copy a:\antigo.m a:\novo.m.
computer
Proposito: denir o tipo de computador em uso.
Sintaxe: computer.
Descricao: retorna uma string com o tipo do computador em uso.
web
Proposito: abrir pagina na internet ou arquivo html com o browser padrao do sistema.
Sintaxe: web arquivo; web endereco.
Exemplo: web c:\paginas\info.htm; web http://www.mathworks.com.
Exerccios
1) Examine tambem os comandos: which; pcode; inmem; mex; editpath; getenv; unix; vms; real-
max; realmin; clock; cputime; date; etime; tic; toc. Para cada um dos comandos acima dena
sua funcao e de exemplos.
2) Para cada um dos comandos vistos na aula de hoje de exemplos praticos de como usa-los.