Você está na página 1de 41

Introdução à Programação

em MATLAB
Mini-Curso
I Semana Tecnológica da FEAU
2011

Edgar A. Brito/Leonam J. L. Paula

Depto. de Controle e Automação – FEAU – Unimep.


O MATLAB é um ambiente de
Introdução programação de alto nível para
aplicações Científicas e de Engenharia.

O que é:
 MATLAB é abreviação de MAtrix LABoratory, um programa
de computador especializado em cálculos científicos
otimizados e aplicações de engenharia.

 Foi projetado inicialmente para cálculos com matrizes, mas


ao longo dos anos transformou-se em um sistema
computacional flexível.

 É um programa muito grande, com uma rica variedade de


funções (mais de 1000 funções internas).

 Seu uso popularizou facilmente na engenharia. 2


Vantagens

Facilidades de Uso

 Oferece um leque de bibliotecas de funções pré-definidas.

 Muito amigável em funcionalidades gráficas para


Visualização de Dados.

 Largamente divulgado em Universidades e Laboratórios


de Investigação.

 Muito conveniente para o desenvolvimento de protótipos.

3
Mais Vantagens

Independência de plataforma

 Suporta vários sistemas operacionais.

 Programas escritos em uma plataforma funciona em todas


as outra.

 Podem migrar para novas plataformas quando as


necessidades do usuário se alteram.

4
Ainda mais vantagens!

 Funções Predefinidas
 Interface Gráfica com o usuário (GUI)
 Permite ao programador construir interfaces com o
usuário.
 Programas sofisticados para análise de dados.

 Compilador Matlab
 Programas em códigos independentes (pcode).

 Programas podem ser compilados como executável


(depende de um pacote separado).
 Pode ser distribuído a usuários finais.

5
Desvantagens !!!!!

Existem 2 desvantagens...

 Linguagem interpretada, mais lenta que linguagens compiladas...


(pode ser resolvida com o uso do JIT)

 Compra da licença é Muito CARA!


 Uma licença é aproximadamente de 5 a 10 vezes mais caras que
compiladores tradicionais como o C++ ou Fortran.
 Para empresas pode ser uma opção pela funcionalidade.

Versões para estudantes são mais baratas, o que a torna uma


boa opção para o uso da linguagem, e é idêntica à versão
completa.

6
Opções

 MATLAB Ferramenta Scilab (gratuita)


Sistema aberto desenvolvido pelo IRIA
(França)

 Site oficial do SCILAB. Este programa gratuito é


compatível com o MATLAB.
Faça o download para seu computador do SCILAB 2.6
(10 Mb).Versão Scilab 2.5, download UFRGS.

 * Obs.: Alguns comandos e funções do Matlab NÃO


são aceitos pelo Scilab !
Conceito Básicos
Conteúdo
 Apresentação
 Considerações
iniciais
 Convenções
utilizadas
 Recursos básicos
 Workspace (espaço
de trabalho)
 Funções
Matemáticas
 Estruturas do Matlab
Requisitos

Ambiente computacional:
–Versões do Software: v 4.5 e v 5.1.2 (sala ambiente)
–Requisitos de equipamento pentiun X c/ minimo de 32
MBytes

Conhecimentos gerais:
 Matrizes e vetores.

 Operações algébricas comuns de Matrizes

 Manipulação de conjuntos.

 Linguagens de programação
Documentação
 Documentação do Matlab pode ser encontrado em
http://www.mathworks.com/access/helpdesk/help/fulldocset.s
html

 e
http://www.mathworks.com/access/helpdesk/help/helpdesk.s
html

 Faça o download do Getstart (tutorial para iniciantes em


inglês).
Material complementar pode ser encontrado em :
http://www.math.siu.edu/matlab/tutorials.html - muito bom
tutorial em .pdf com bons exemplos

 http://www.qns.com/~quentin/testbed/mathworks/basics.html
- coleção de links para diversos tutoriais em Universidades.
Em resumo:
 Software para análise numérica
 Cálculo com matrizes
 Processamento de sinais
 Construção de gráficos
 Problemas expressos numa forma mais
próxima da notação matemática
 Interpreta comandos do usuário dados
na janela de comando.
Carregando o MATLAB
Menu Iniciar do Windows clique no ícone do
aplicativo MATLAB.

Quando o MATLAB é carregado, janelas são


exibidas:
Janela de Comando (Command Windows)
Janela Gráfica (Graphic Windows).

A Janela de Comando é ativada quando se inicializa o


MATLAB, e o "prompt" padrão (>>) é exibido na tela.
Área de Trabalho do Matlab

14
Introdução
 Trabalha apenas com um tipo de objeto: Matrizes
 Os elementos das matrizes podem ser números
 complexos
 Escalares são matrizes 1x1
 Vetores são matrizes 1xN ou Nx1
 Entrando com uma matriz (3 maneiras):

>>A = [1 2 3 ;4 5 6;6 7 8] através de um arquivo (ex: gera.m)


Conceitos Básicos
 Variáveis
 No matlab, nome de variável:
 Deve ser um alfanumérico. Ex.: x1, m2, etc.
 Diferencia maiúsculas de minúscula.

 Aceita caractere `_` no meio do nome. Ex.:

Var_ex.
>> x1=10
x1=
10
>> s1=[100 200;300 400]
>> S1=[0.1 0.2 0.3 0.4]

>> Var_exemplo=[1 2 3]`

(*) Nome de variáveis podem conter até 31 caracteres


Mais coisas a considerar...
Se no final da linha for colocado um “;”, o Matlab
executa o comando mas não mostra o resultado

Elementos das matrizes podem ser uma expressão

>>x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]


x=
-1.30000
1.4142
23.0400 0 0 5

Elementos são referenciados por índices entre parênteses:


x(6) = 5
resulta em: x = -1.3000 1
Conceitos Básicos

 Grandes matrizes podem ser geradas a


partir de pequenas:
» r=[10 11 12];
» A=[A;r]

A=

1 2 3
4 5 6
7 8 9
10 11 12
Conceitos Básicos
 Pequenas matrizes podem ser extraídas
de grandes matrizes usando “:”

B=[A(1:3,:)]

B= seleciona as 3 primeiras linhas e


todas as colunas da matriz A atual,
modificando-a para sua forma
1 2 3 original.
4 5 6
7 8 9
Variáveis e informações da área de
trabalho

Variáveis são declaradas na forma:


variável = expressão
“ans”  (answer) variável default caso um nome
seja omitido.

Se a expressão é tão grande que não cabe em uma linha,


pode-se continuar a expressão na próxima linha usando um
espaço em branco e 3 pontos:

>> s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 …


-1/8 + 1/9 - 1/10 + 1/11 - 1/12 + 1/13;
Variáveis e informações da área de
trabalho

 O comando “who” , lista as


variáveis da área de trabalho

 “whos” mostra detalhes sobre as


variáveis
Números e expressões aritméticas

 Notação decimal convencional


 Com ou sem potência de 10 como sufixo Ex:

3 -99 0.00001
9.6374586 1 .602e-20 6.06375e23
 Operadores:

^ exponenciação * multiplicaç’ão
/ divisão à direita + adição
\ divisão à esquerda - subtração’
Números complexos
 Funções “i” e “j”
>> z= 3 + 4 * i
 Matrizes complexas permitem também a forma:
>> A= [1 2; 3 4]+i*[5 6; 7 8]
 Caso “i” e “j” sejam usados como variáveis e tenham
seu valor modificado, pode-se criar uma nova
unidade complexa:
>> ii = sqrt(-1)
>> z = 3 + 4 * ii
Formatos de saída
 O comando format modifica o modo
como as matrizes são mostradas

format short 1.3333


short e 1.3333e+000
Long 1.33333333333333
Long e 1.33333333333333e+000
hex 3ff5555555555555
rat 4/3
Bank 1.33
+ +
Help
 O comando de ajuda “help” fornece
informações sobre os tópicos
 help <tópico> mostra comandos
relacionados ao tópico
 help <comando> mostra detalhes
sobre o comando
Operacões com matrizes
 Transposta indicada pelo caracter
apóstrofo '.
 A=[1 2 3;4 5 6;7 8 9];
 B=A'
 B= 1 4 7
2 5 8
3 6 9
 Se A fosse uma matriz complexa dever-se-
ia usar A.'
Operações com matrizes
 Adição e subtração indicada pelos
sinais “+” e “-” respectivamente.
C=A+B;
Essas operações só são definidas para matrizes com a mesma
dimensão.
 Multiplicação indicada por “*”.
Só é válida quando a 2a. dimensão da 1a. Matriz for igual a 1a.
dimensão da 2a. matriz.
 A multiplicação de escalar por matriz e vice-
versa também é válida.
Operações com matrizes

 Divisão indicada por “/” ou “\”.


 Se A for quadrada, A\B e B/A
correspondem a inv(A)*B e B*inv(A)
respectivamente
 Em geral:
 X = A\B  A*X = B
 X = B/A  X*A = B
Operações com matrizes

 Exponenciação indicada por “^”.


 A^p eleva A à p-ésima potência se A for
quadrada e p for um escalar.
 Se p é inteiro maior do que 1, isso é feito
através de múltiplas multiplicações.
Operações com conjuntos
 São operações aritméticas realizadas
elemento por elemento da matriz.
 Usa-se os mesmos caracteres das
operações usuais precedidos por um ponto
(“.*”, “./”, “.\”, “.^”,“.'”)
 Operações comparativas (<, <=, >, >, ==, ~=)
podem ser realizadas entre matrizes de
mesma dimensão
O resultado é uma matriz de 0s e 1s correspondendo a Falso
e Verdadeiro.
& (e) e | (ou) também podem ser usados
Manipulação de vetores e matrizes
 Gerando vetores: a declaração >>x = 1:5 gera o
vetor linha x = 1 2 3 4 5 . (incremento de 1)

 Pode-se usar outros incrementos:


>> y = 0:pi/4:pi
y = 0.0000 0.7854 1.5708 2.3562 3.1416

 A função k=linspace(0,1,6) gera um vetor linearmente


espaçado de 0 a 1, contendo 6 elementos
k = 0 0.2000 0.4000 0.6000 0.8000 1.0000
Manipulação de vetores e matrizes

 Elementos das matrizes: utiliza-se índices entre parênteses.


>>A=[1 2 3;4 5 6;7 8 9];
>>A(3,3) = A(1,3) + A(3,1)

A= 1 2 3
4 5 6
7 8 10

 >>A(1:2,3) especifica uma submatriz 2x1 com os 2 primeiros


elementos da terceira coluna de A
ans = 3
6
Matriz de Zeros
 Gera uma matriz de zeros

>>zeros(3)

ans =
Crie uma matriz de zeros 4x4; 5x5; 4x3; 5x3

0 0 0
0 0 0
0 0 0
Matriz ones
 Gera uma matriz contendo a unidade
» ones(2,4)
ans =
1 1 1 1
1 1 1 1

 Crie uma matriz ones 4x4; 3x3 com todos os


elementos iguais a 
Matriz Randônicas
Gera uma matriz com números randônicos entre
zero e um
» rand(3,1) » rand(3,3)
ans = ans =
0.9501 0.0185 0.6154 0.7382
0.2311 0.8214 0.7919 0.1763
0.6068 0.4447 0.9218 0.4057
Crie uma matriz randônica com 4x4; crie uma
matriz randônica maior que 1.
Matriz Identidade
Gera uma matriz identidade

» eye(3)
ans =
1 0 0
0 1 0
0 0 1

Crie uma matriz identidade 3x2; crie uma matriz


identidade com 2 na diagonal.
Especificação de Matrizes
 É possível especificar as dimensões das matrizes de
forma explícita, utilizando a função “size”.
» A=[1 2 3;4 5 6] » ones(size(A))
A= ans =
1 2 3 1 1 1
4 5 6 1 1 1
Exercícios:
Cria uma matriz do mesmo tamanho de A
Crieuma matriz do mesmo tamanho que A com o
elemento 3
Controle de Fluxo
Permite a execução de comandos com base em
estruturas de tomada de decisões.
Recurso poderoso que permite que cálculos
anteriores influencie em operações futuras.
São elas:
 Loops For
 Loops Whiles
 If-else-ends
Loops For
Possibilitaque uma série de comandos seja
repedida por um número de vezes.
» for n=1:10
x(n)=sin(n*pi/10)
end

Introduza uma matriz


dados=[3 9 45 6;7 16 –1 5]
calcule x(1)-x(2).
Loops While
 Executa um grupo de comandos por um número
fixo de vezes. » num=0; EPS=1;
» while (1+EPS)>1
While expressão EPS=EPS/2;
comandos num=num+1;
end
end
» num
num =
53
» EPS=2*EPS
EPS = 2.2204e-016
Estruturas if-else-end
 Executa um grupo de comandos condicionais
durante uma condição.
» macas=10; % número de maçãs
» custo=macas*25 % custo das maçãs
custo = 250
if expressão desc=20 % Valor do desconto
desc = 20
comandos » if macas>5 % de um desconto de 20%
end custo=(1-desc/100)*custo;
end
» custo
custo = 200
A instrução é executada enquanto for verdadeira

Você também pode gostar