Você está na página 1de 27

Mini Curso

Introduo ao MATLAB

Aline Villela Chaia


Maria Ribeiro Daibert

GET Engenharia de Produo - UFJF


Sumrio:

Introduo ..........................................................................................................................3

Objetivos.............................................................................................................................3

Histrico..............................................................................................................................3

Layout .................................................................................................................................4

Help ....................................................................................................................................9

Dados ................................................................................................................................ 10

Funes ............................................................................................................................. 17

Grficos ............................................................................................................................. 20

Programao ..................................................................................................................... 24
Introduo
O MATLAB, abreviao para MATrix LABoratory, um software com linguagem simples
e direta, que realiza clculos de engenharia, e por isso possui uma ampla biblioteca de funes
matemticas pr-definidas. Essas funes permitem que problemas de programao sejam
resolvidos de maneira muito mais simples do que com outras linguagens computacionais.

Objetivos
Esta apostila tem como objetivo introduzir o MATLAB como ferramenta de
programao computacional, usando como base o clculo de matrizes. Alm disso, apresenta
algumas de suas aplicaes nesta rea e exemplos para melhor fixao do contedo.

Histrico
A linguagem foi desenvolvida na dcada de 70 por Clever Moler, ento presidente do
departamento de Cincias da Computao da Universidade do Novo Mxico. Pela simplicidade
e facilidade de uso, foi aderida por muitas universidades e logo se destacou na comunidade
matemtica.
Em 1984, em parceria com Steve Bangert e o engenheiro Jack Little, a MathWorks
(detentora dos direitos autorais) foi fundada e o MATLAB foi reescrito na linguagem C.
Por ser um ambiente integrado de modelagem de sistemas e algoritmos, ideal para
implementao de projetos complexos, a ferramenta se tornou um produto lder na rea de
computao numrica e cientfica.
Layout
Pode-se dizer que o MATLAB possui cinco janelas principais. Duas nas quais o usurio
trabalha: Command Window e Editor. E trs que mostram dados importantes: Command
History Window, Workspace e Figure. A seguir, uma descrio detalhada de cada janela.

Command Window

a janela dos clculos e da programao. Nesta janela, so inseridos os dados,


que so interpretados pelo programa, e ento os resultados so retornados. Caso o
usurio queira, esta janela tambm mostra o desenvolvimento dos clculos realizados,
mostrando os valores de cada varivel, aps terem sido executadas as aes
referentes a elas.
Editor

a janela onde so criados cdigos que podem ser salvos como arquivos do
MATLAB. a janela mais utilizada, uma vez que nela podem ser digitados cdigos
completos para s depois serem rodados na Command Window. Alm disso, com o
modo Debug, que ser explicado mais adiante, pode-se rodar o cdigo linha por linha,
para ver todos os passos realizados pelo programa.
Command History Window

Esta janela mostra todos os comandos inseridos na Command Window


recentemente, classificados por ordem cronolgica. Ao apertar a seta pra cima do
teclado na Command Window, visualizamos os comandos armazenados na Command
History Window.
Workspace

O workspace mostra todas as variveis utilizadas recentemente e seus


respectivos tipos e valores. Com ele, possvel verificar se alguma varivel teve seu
valor modificado quando o cdigo foi rodado, e assim encontrar eventuais erros na
programao.
Figure Window

A Figure Window a janela que exibe grficos. Estes podem ser criados em
duas ou trs dimenses. Mais adiante, ser explicado como plotar grficos em duas
dimenses.
Help
O comando help consiste em uma ferramenta de ajuda sobre todas as funes,
comandos e operadores existentes no MATLAB. Para acessar, basta digitar na Command
Window:

>>help funo/comando/operador

A partir do comando dado, aparecem informaes sobre o termo pesquisado.


Primeiramente, fornecida uma definio. Em seguida, so dados exemplos de uso e todas as
possibilidades de aplicao, bem como informaes sobre tpicos relacionados pesquisa.
A seguir, tem-se um exemplo do comando help close.
Dados
A linguagem
guagem do MATLAB, chamada M-cdigo
M cdigo simples e objetiva, o que torna a
declarao de dados muito prtica. A unidade fundamental uma matriz (array), a qual se
trata da organizao de elementos distribudos
di em linhas e colunas.
Um escalar uma matriz de dimenses 1x1 e um vetor uma matriz de uma nica
dimenso (linha ou coluna). Os ndices dos elementos so sempre iniciados com 1.

Existem inmeras funes pr-definidas


pr definidas armazenadas no software, prontas para serem
usadas. Tambm existe a possibilidade do usurio criar sua prpria biblioteca de funes.
Neste item, sero abordados os seguintes temas:: salvar um arquivo, executar um
arquivo, criao de dados, operaes entre matrizes e elemento a elemento.
elemento

Salvando um arquivo

possvel salvar um cdigo em um arquivo de texto com extenso .m,


utilizando o Editor.. Para isso, basta clicar na barra de menu em File>>New>M-File. Veja
o exemplo abaixo:

Feito isso, o arquivo ser salvo na pasta de destino desejada e as alteraes


feitas tambm podero ser salvas.
Executar um arquivo

Existem duas maneiras de executar um arquivo salvo, a primeira delas


selecionando o que se deseja executar e em seguida clicar em F9 ou na barra de menu
em Text>Evaluate Selection.
A segunda opo pelo nome que foi dado ao arquivo: basta digit-lo na
janela de comando e em seguida apertar Enter, e o arquivo ser executado.

Criando Dados

Declarar uma varivel no MATLAB muito simples, basta digitar o nome


desejado e o valor a ser atribudo a essa varivel. Caso se deseja que a varivel ainda
no tenha um valor atribudo, basta declar-la como vazio.

>>x=[];

No necessrio declarar o tipo de varivel, o prprio programa a identifica.


Ao declarar uma matriz utiliza-se espao para separar elementos de uma
mesma linha e ponto e vrgula (;) para colunas.

>>nome_da_varivel=[dados];

Exemplo:

>> a=10;

>> c=[1 2 3];

No exemplo acima, ao final da linha de cdigo h o ponto e vrgula (;). Tal


mecanismo utilizado caso no seja necessrio exibir seu processamento na linha
abaixo. A seguir, um exemplo em que o desenvolvimento mostrado:

>> m=[ 1 5 10; 2 10 30]

m=

1 5 10

2 10 30

Para acessar um elemento de uma matriz, basta digitar o nome da varivel


seguido dos ndices da linha e coluna desejada. Pode-se tambm acessar todos os
elementos de determinada linha ou coluna, como nos exemplos a seguir:

>> matriz1=[ 2 3 6 7; 8 6 4 0; 5 1 3 9]

matriz1 =

2 3 6 7

8 6 4 0

5 1 3 9
>> matriz1(1,4)

ans =

>> matriz1(3,:)

ans =

5 1 3 9

O ltimo elemento de uma linha ou coluna pode ser acessado por um


comando especial:

>> matriz1(end,2)

ans =

>> matriz1(end,end)

ans =

>> matriz1(3,end)

ans =

No primeiro caso, o elemento acessado foi o ltimo da segunda coluna. No


segundo foi o ltimo da ltima linha. E no terceiro, foi o ltimo da terceira linha.
Para acessar x elementos de uma matriz, utilizam-se dois pontos (:) para
indicar entre que intervalo deve-se exibir os elementos. Caso seja necessrio exibir
todos os elementos de uma linha ou coluna, utilizam-se apenas os dois pontos (:).
Exemplo:

>> matriz1(1,2:4)

ans =

3 6 7

>> matriz1(:,3)

ans =
6

H outras formas de inicializao de matrizes, duas delas so apresentadas


abaixo:

>>nome_da_varivel
nome_da_varivel = primeiro:incremento:ltimo

>>nome_da_variavel=linspace
nome_da_variavel=linspace (primeiro,ltimo,nmero de elementos)

Exemplos:

>> a=1:2:10

a=

1 3 5 7 9

>> b=linspace(2,10,5)

b=

2 4 6 8 10

Operaes com escalares

Todas as operaes entre escalares so feitas de forma simples. So realizadas


da esquerda para a direita, obedecendo ordem: potenciao, diviso/multiplicao,
diviso/m
adio/subtrao.

Operaes com matrizes

Entre matrizes: Para realizar operaes bsicas entre matrizes necessrio


estar atento para algumas regras:

 Soma e Subtrao: matrizes de mesma dimenso;


 Multiplicao: nmero de colunas da primeira igual ao nmero de
linhas da segunda;
 Diviso: matrizes com mesmo nmero de linhas;
 Potncia: matrizes quadradas.
Exemplos:

>> a=[1 2 3];

>> b=[ 2 4 6];

>> c=a/b

c=

0.5000

>> c*a

ans =

0.5000 1.0000 1.5000

>> a= [1 2; 3 4]

a=

1 2

3 4

>> a^2

ans =

7 10

15 22

Existem alguns comandos especiais para operaes com matrizes. Veja a tabela
abaixo:

Elemento a elemento:
elemento As operaes so feitas elemento a elemento de
matrizes quadradas. Para isto, basta colocar o sinal de ponto (.) antes do sinal
da operao
rao desejada. Exemplo:
E
>>a =

1 2

3 4

>> b=[ 5 67; 100 3]

b=

5 67

100 3

>> a.*b

ans =

5 134

300 12

Operadores relacionais: Os operadores relacionais so utilizados quando se


necessita conhecer algum tipo de relao entre elementos seja de uma matriz,
vetor ou escalar. Os dados so retornados em forma de matriz, com 0 para
falso e 1 para verdadeiro.

Exemplo:

>> d= [12 56 78]

d=

12 56 78

>> e=[ 2 90 22]

e=

2 90 22

>> d>e

ans =

1 0 1

Concatenao de matrizes: A concatenao de matrizes consiste em unir


partes de diferentes matrizes em uma nova matriz. Pode-se agrupar
horizontalmente (mesmo nmero de linhas), verticalmente (mesmo nmero
de colunas) ou somente alguns elementos.

>> A

A=

1 2 3

>> B

B=

3 4 5

>> C=[A B]

1 2 3 3 4 5

>> C=[A;B]

C=

1 2 3
3 4 5

>> D=[B(1,1);A(1,2)]

D=
3
2
Funes
Como j foi mencionado anteriormente, existem inmeras funes pr-definidas
pr no
MATLAB. Nesta seo sero apresentadas algumas delas e suas principais aplicaes, alm de
como devem ser manipuladas.

Funes de inicializao de matrizes

O software apresenta funes que possibilitam inicializar matrizes com zeros,


ums, identidade, entre outras. Essas funes esto reunidas na tabela abaixo.

A manipulao dessas funes simples, basta digit-las


digit las e adicionar as
dimenses da matriz.

Funes Matemticas

As funes matemticas so de grande importncia e permitem ao usurio


agilizar e simplificar seus clculos. Em primeiro lugar, deve-se
deve se destacar
destac que as funes
devem ser declaradas como char, ou seja, deve-se se colocar o valor da funo entre
apstrofos.

Exemplo:

>> f='2*x^2'

f=

2*x^2
A seguir esto algumas tabelas contendo as principais funes de aproximao,
exponenciais, trigonomtricas e complexas.

Funes de Aproximao

Funes Exponenciais

Funes Trigonomtricas

Funes Complexas
As funes derivada (diff) e integral (int) merecem ateno especial por sua
grande aplicao na matemtica. Como j foi dito, necessrio declarar a funo sobre
a qual se deseja calcular a operao como char. Veja os exemplos abaixo:

>> f=x^2+3
f=
x^2+3

>> derivada=diff(f)
derivada =
2*x

>> f = '3*x^2 - 15*x + 18' % Cria a funo como char

f=

3*x^2 - 15*x + 18

>> integral = int(f) % faz a integral da funo

integral =

x^3-15/2*x^2+18*x

Funes Aleatrias

As funes aleatrias so aquelas capazes de gerar uma determinada


quantidade de nmeros aleatoriamente. possvel limitar o intervalo em que so
gerados e tambm o tipo de nmero gerado. Tais funes esto descritas abaixo com
sua nomenclatura:

rand(i,j) : gera matriz de i linhas, j colunas, com elementos que variam de 0 a 1


randint(i,j,[mnimo mximo]) : gera matriz de i linhas, j colunas, com
elementos inteiros que variam de mnimo a mximo

Para uma melhor compreenso, veja os exemplos que seguem:

>> matriz=rand(2,2)

matriz =

0.8147 0.1270

0.9058 0.9134

>> matriz2=randint(1,3,[0 10])

matriz2 =

5 8 1
Grficos

Os grficos no MATLAB podem ser criados em duas ou trs dimenses, utilizando-se de


vrios comandos diferentes. Eles utilizam pontos discretos para o desenho. Ou seja, par de
pontos nicos pelos quais a linha do grfico ir passar. Portanto, quanto mais pontos
fornecidos ao programa, melhor ser a visualizao da curva desejada. A seguir, o passo a
passo pra a criao de grficos em duas dimenses e algumas funes que podem ser
utilizadas, a partir do comando plot.

Como plotar o grfico


Primeiramente, deve-se criar dois vetores que armazenem, respectivamente,
os valores das variveis X e Y que sero os eixos do grfico. Ento, o comando a ser
dado :

>> plot(x,y,Opes de Estilo)

O campo Opes de Estilo diz respeito cor da linha, do tipo de tracejado e da


marcao dos pontos dos vetores. Ao digitar, help plot, pode-se visualizar todas as
opes de estilo existentes no programa e seus respectivos comandos.
Pode-se tambm omitir uma das variveis e/ou a opo de estilo, como no
caso abaixo.

>>plot(y)

Nesta situao, ele plota o grfico na forma padro, que utilizando um vetor
contendo 1, 2, 3, 4... para a varivel que est faltando, e a cor do grfico preto, com a
linha contnua e sem marcao dos pontos.
Plotando uma funo
Uma outra maneira para se plotar um grfico no MATLAB usando o comando
fplot. Ele plota diretamente uma funo dada. Seu formato :

>> fplot(funo,[intervalo de valores], opes de estilo);

Exemplo:
>> fplot('cos(x)',[0,pi],'green')

Mais de um grfico na mesma janela


Em programas que existem mais de um comando de plotagem de grficos, a
cada Figure Window aberta, ela substitui a Figure Window anterior. Caso o objetivo
seja visualizar os grficos simultaneamente, ou simplesmente no perder o grfico
feito anteriormente, existe alguns recursos na biblioteca do MATLAB. So eles: Figure,
Hold on / Hold off e Subplot.

Figure: esse comando abre uma nova Figure Window, onde o prximo grfico
plotado ser mostrado.

>>figure

Hold on / Hold off : o comando hold on fixa a ltima Figure Window gerada, e
todos os plots a partir dele at o comando hold off so gerados na mesma
janela. Ou seja, ele possibilita que vrias curvas sejam mostradas num mesmo
grfico.

>>hold on

>>plot(x,y)

>>plot(w,z)
>>hold off

No exemplo acima, os grficos com eixos x e y, e o com eixos w e z, so


gerados na mesma janela.

Subplot: o comando subplot permite que vrios grficos sejam mostrados


separadamente numa mesma Figure Window. Com ele, aparecero duas ou
mais curvas, cada qual com seus eixos e escalas, lado a lado horizontalmente
e/ou verticalmente, numa mesma janela.

>>plot(x,y)
>>subplot(a,b,p)
>>plot(w,z)

No caso acima, o comando subplot divide a Figure Window em a por b grficos


e plota a prxima curva no p-simo grfico.
Comandos auxiliares
Existem alguns comandos para serem utilizados em Figure Windows que
ajudam a melhorar a aparncia dos grficos e auxiliam na identificao dos dados.
Dentre eles, pode-se destacar: title, xlabel, ylabel e text.

Title: O comando title insere um ttulo ltima Figure Window aberta.

>>title(titulo desejado)

Xlabel: O comando xlabel permite que o eixo das abscissas do grfico seja
identificado.

>>xlabel(identificao abscissas)

Ylabel: O comando ylabel permite que o eixo das ordenadas do grfico seja
identidifcado.

>>ylabel(identificao ordenadas)

Text: O comando text insere um texto digitado pelo usurio numa


determinada posio.

>>text(x,y,texto desejado)

Um exemplo utilizando esses recursos :


>> x=[ 4 8 12 16];
>> y=[ 1 2 3 4];
>> plot(x,y,'green')
>> xlabel('x');
>> ylabel('y');
>> text(8,2,'(8,2)')
Programao
Para implementar cdigos completos e criar programas que sejam funcionais,
necessria a utilizao de alguns recursos que o MATLAB fornece. So os operadores lgicos,
os comandos de limpeza, a indentao, os processos iterativos, a criao de funes
personalizadas, o tempo de simulao e o modo Debug. A seguir, cada um dos recursos
mencionados sero explicados.

Operadores Lgicos

So os operadores de comparao. Eles podem ser usados para relacionar


duas ou mais variveis, ou ento para realizar testes. A tabela abaixo exibe todos os
operadores usados no MATLAB.

Operador Significado

< Menor que

<= Menor ou igual a

> Maior que

>= Maior ou igual a

== Igual a

~= No igual

& Operador e

| Operador ou

~ Operador no

Comandos de Limpeza
Ao programar, para facilitar o entendimento do cdigo quando rodado na
Command Window, existem os recursos de limpeza da tela e das variveis. So eles:
clc, clear all e close all.

Clc: Ao digitar o comando clc na Command Window, ele limpa todos os dados
inseridos anteriormente, porm sem apag-los da memria.

>>clc

Clear all: O comando clear all limpa todos os valores das variveis que foram
armazenados anteriormente.

>>clear all

Close all: O comando close all fecha todas as Figure Windows abertas.

>>close all
Indentao

O recurso da indentao permite que o cdigo digitado no Editor seja


organizado, de acordo com os espaamentos das margens de cada linha, a fim de
torn-lo mais claro para o usurio. Ele tem como base a hierarquizao dos comandos
utilizados. Para indentar um cdigo, basta selecion-lo, clicar com o boto direito do
mouse e escolher a opo Smart Indent.

Processos Iterativos

Os processos iterativos so aqueles que limitam o cdigo em partes, e


necessitam de condies iniciais ou finais para que aquele trecho seja executado. Eles
so divididos em quatro: If/If-else, While, For e Switch-case.

If / If-else: O comando If, ou Se, executa o trecho do cdigo abaixo dele


apenas se a condio inicial for satisfeita. Seu formato no MATLAB :

if(condio1)
expresses1;
elseif(condio2)
expresses2;
else
expressesn;
end

While: O comando While, ou, Enquanto, executado enquanto alguma


condio inicial satisfeita. Ou seja, para que ele no se torne um loop infinito,
em algum ponto durante o loop, a varivel que define a condio deve ser
modificada para que a condio no seja mais satisfeita. Essa mudana na
varivel de condio denominada flag. O formato do comando while no
MATLAB :

while(condio)
expresses;
end

For: O comando For, ou, Para/Faa, tambm caracterizado como um


loop. Porm ele determina previamente os valores iniciais e finais da varivel
de condio. Ou seja, pr-definida a quantidade de vezes em que o trecho do
comando for ser executado. Seu formato no MATLAB :

for varivel_de_iterao=valor_inicial : valor_final

expresses;

end
Switch-Case: O comando Switch-Case, ou, Escolha, permite que se tenha
diferentes casos para uma determinada varivel. Dependendo do valor que
esta varivel possui, ser executada uma das opes do switch-case. Seu
formato no MATLAB :

switch varivel

case a

expresses;

case b

expresses;

case c

expresses;

otherwise

expresses;

end

Criao de Funes

O MATLAB possui uma biblioteca extensa de funes, porm o usurio


tambm pode criar suas prprias funes. Geralmente, esse recurso utilizado
quando uma parte do cdigo repetida vrias vezes. Por isso, criar uma funo com
determinado trecho deste cdigo, o torna menor e mais fcil de ser visualizado.
Cada funo criada deve possuir sua prpria janela do Editor. E esse arquivo
deve sempre ser salvo na mesma pasta que contm o cdigo todo. O formato que esta
funo deve ser criada :

function sada = nome_da_funo(entrada)

expresses;

O nome_da_funo deve ser sempre escrito em letras minsculas e sem


espaos. Alm disso, ao salvar o arquivo do Editor, este deve possuir o mesmo nome
da funo criada, uma vez que ao chamar esta funo durante o cdigo, ele ira buscar
na pasta pelo arquivo que possui aquele nome. Os dados de entrada da funo so os
parmetros que sero passados do cdigo para a funo e que sero utilizados por ela.
Caso exista mais de um dado de entrada, eles devem ser separados por vrgulas,
dentro dos parnteses. E o dado de sada o valor que a funo retorna e que ser
armazenado pela varivel que chamou a funo.

Pode-se tambm criar uma funo que no retorna nenhum valor. Ela apenas
executa o trecho de cdigo correspondente. Seu formato deve ser:

function nome_da_funo(entrada)

expresses;
Tempo de Simulao

Um recurso bastante til do MATLAB o chamado Tic Toc. Ele calcula e


mostra ao programador o tempo em que determinado trecho demorou para ser
executado. Como de interesse do programador deixar o programa cada vez mais
rpido, o Tic Toc permite essa anlise. Seu formato :

tic

trecho do cdigo desejado

toc

O resultado deste comando mostrado na Command Window.

Modo Debug

O modo Debug, que pode ser utilizado no Editor, permite que o programador
acompanhe a execuo de determinado trecho do seu cdigo, linha por linha. Desta
forma, pode-se visualizar exatamente todos os passos que o programa segue,
facilitando a correo de erros eventuais. Alm disso, ao posicionar a seta do mouse
sobre cada varivel durante o modo Debug, pode-se ver seu valor e
consequentemente, suas mudanas ao longo da execuo.

Para rodar um programa no modo Debug, deve-se seguir alguns passos:

Clicar no trao ao lado do nmero referente linha a partir da qual se deseja


acompanhar. Aparecer uma bolinha vermelha.
Clicar em Debug na barra de menus, e ento em Run. Aparecer uma
setinha verde na linha em que o programa est parado.
Apertar F10 para que o programa prossiga para a prxima linha. Repetir at
quando desejar.
Clicar em Debug e em Exit Debug Mode para sair do modo Debug.

Você também pode gostar