O documento resume os principais tópicos de uma aula sobre Matlab, incluindo o que é Matlab, suas janelas, variáveis, operadores, estruturas de controle de fluxo e funções.
3. O que é o Matlab?
• O MATLAB (do inglês Matrix Laboratory) é um software de computação numérica
de análise e visualização de dados. Embora seu nome signifique Laboratório de
Matrizes, seus propósitos atualmente são bem mais amplos.
• O Matlab nasceu como um programa para operações matemáticas sobre
matrizes, mas ao longo dos anos transformou‐se em um sistema computacional
bastante útil e flexível.
• Seu ambiente de trabalho é fácil de ser utilizado, pois os problemas e soluções
são escritos em linguagem matemática e não na linguagem de programação
tradicional, como muitos outros softwares utilizam.
• Assim o MATLAB é uma ferramenta e uma linguagem de programação de alto
nível, e tem como principais funções: construção de gráficos e compilação de
funções, manipulação de funções específicas de cálculo e variáveis simbólicas.
• Além disso, o MATLAB possui uma grande quantidade de bibliotecas auxiliares
(“Toolboxes”) que otimizam o tempo gasto para realizar tarefas, uma vez que, o
usuário poderá utilizar muitas funções já definidas, poupando o tempo de criá‐
las. Por outro lado, infelizmente, os programas feitos são difíceis de serem
executados num ambiente fora do MATLAB.
3/24
4. O que é o Matlab?
• MATLAB é uma linguagem de alto nível que possui toolboxes especializadas para
facilitar a vida do programador.
Matlab
Linguagem de alto nível
como C, Java, Phynton, etc
Assembly
A ferramenta traz também muitas
facilidades para elaboração de
gráficos e interfaces para usuário:
Telas gráficas de programação
(botões, menus, radio button, etc;
4/24
6. Janelas no Matlab
As janelas do Matlab são flexíveis, podendo fechar, abrir, mudar o tamanho, mudar o
layout, abrir nova janela, etc; Para restaurar a janela padrão use o procedimento acima.
6/24
7. Janelas no Matlab
Para iniciar a edição de um programa em Matlab vá em File / New / Script
Ou opcionalmente tecle: CTRL + N.
7/24
8. Comandos de Propósito geral e de Memória
Comando
Descrição
help
Ajuda em tempo real (on‐line). O texto é apresentado na tela da linha de comando. Ex: >>
help disp
helpwin
Ajuda em tempo real (on‐line). O texto é apresentado em uma janela de navegação separada.
Ex: helpwin
ver
informa as versões do MATLAB, SIMULINK e toolboxes.
whatsnew
Descreve a contibuição nesta nova versão do matlab
bench
Realiza teste de desempenho no seu computador
who
lista as variáveis atuais na memória
whos
lista as variáveis atuais, suas dimensões e memória que cada uma ocupa.
clear
limpa toda a memória da área de trabalho; clear arg exclui a função ou variável arg da
memória da área de trabalho.
Pack
desfragmenta a memória da área de trabalho.
Save / Load
salva e recupera as variáveis da memória da área de trabalho em arquivo. Ex: save
c:MATLABarq x y
quit
encerra a sessão de trabalho do MATLAB.
What
lista os nomes de arquivos de funções e comandos de um grupo específico do MATLAB
dos
Executa comandos do DOS.
8/24
9. Comandos de Propósito geral e de Memória
Comando
Descrição
edit
edita arquivo do MATLAB. Ex: >> edit arq
lookfor
busca a palavra‐chave em todos os arquivos contidos no caminho do MATLAB.
Ex: lookfor palavra
type
lista o conteúdo de um arquivo de comandos do MATLAB. Ex: type arq
path
verifica ou define o caminho de diretórios. Exemplo: path; path= ’c:usuarioMATLAB’;
addpath
adiciona diretórios ao caminho
rmpath
remove o diretório descrito na string nome ao caminho atual.
echo
habilita ou inibe a apresentação dos resultados de comando de um arquivo MATLAB na
linha de comando. Ex: echo on; echo off
more
habilita ou inibe a paginação do texto na tela de comandos. Ex: more on; more off
diary
salva todo o texto da sessão de trabalho em arquivo.
format
determina o formato no qual os dados serão expressos na janela de comando.
cd
altera o diretório de trabalho atual. Ex: cd c:MATLABusuario
pwd
exibe o diretório de trabalho atual.
dir
lista os arquivos do diretório atual.
9/24
10. Variáveis no Matlab
int a;
double b;
float c;
Não é necessário declarar as variáveis
Todas as variáveis ão criadas com precisão dupla a
s
menos que especificado, e todas variáveis são matrizes;
>> x= int32(555)
>> y = [3. 67 8]
>> z = 40
>> size(y)
>> size(x)
Após estas declarações, as variáveis ão matrizes com
s
precisão dupla (double).
>> whos
10/24
13. Matrizes no Matlab
• Exemplos:
>> x = [1 2 5 1]
>> x(0)
>> x(1)
>> x(2)
>> y = [1 2 3; 5 1 4; 3 2 -1]
>> m = y’ % transposta
>> t =1:10
>> k =2:-0.5:-1
>> B = [1:4; 5:8]
>> x1 = zeros(1,3)
>> x2 = ones(1,3)
>> x3 = rand(2,3)
>> x4 = 100*rand(4,2)
>> x4(3)
>> x4(3,:)
>> x4(:,1)
Em Matlab, o índice das
matrizes começa em 1, ao
contrário
das
demais
ferramentas de programação
que começa em 0.
>> m4 = [] % matriz vazia
>> m4 = [m4 'Maria']
>> m4 = (1)
>> m4(10)
>> syms x a b f
>> f = a*x^2 + b*x
>> g = x3 + 2x2 + 3x + 4
>> diff (f, x) % derivada
>> p = [-1 3 2 -5] %polinômio
>> polyval(p, 1)
13/24
14. Arquivos .MAT e .m
As matrizes também podem ser definidas através de informação
armazenada em arquivos. O MATLAB adota o formato com
extensão padrão MAT.
1.
Os arquivos MAT são gerados no MATLAB usando o comando save, que
contém o nome do arquivo e as matrizes ou variáveis que devem ser salvas.
A extensão .mat é automaticamente adicionada ao nome do arquivo. Para
recuperar estas variáveis é usado o comando load.
Ex: save arq1 / whos / clear all / whos / load arq1 / whos
2.
Todo programa ou script escrito em Matlab deve possuir a extensão .m. Ao
salvar um arquivo de programa, a ferramenta automaticamente adiciona
esta extensão. No caso de funções, o nome do arquivo também deve ter o
mesmo nome da função.
14/24
15. Operador Dois Pontos ( : )
O uso do operador dois pontos (:) é útil na criação de matrizes ou vetores.
Suponha que queiramos armazenar a primeira coluna da matriz data1 em um
vetor x, e a segunda coluna em um vetor y. Dependendo do argumento, pode
significar todas as linhas ou todas as colunas da matriz‐referência.
>> data1 = [0.0,0.0; 0.1 0.2; 0.3 0.6];
>> x = data1 ( : , 1);
>> y = data1 ( : , 2 );
>> z = data1(2,:)
>> H = 1 : 8;
A matriz H contém os valores 1, 2, 3, 4, 5, 6, 7 e 8. O operador “ : ” entre os dois
números inteiros gera todos os inteiros entre os dois números especificados. Se
for usado para separar três números, os dois pontos gerarão valores entre o
primeiro e terceiro números, usando o segundo número como incremento. A
notação abaixo gera um vetor linha denominado TEMPO que contém os
números de 0.0 a 5.0 com incrementos de 0.5
>> TEMPO = 0.0 : 0.5 : 5.0
15/24
16. Operadores em Matlab
Aritméticos / Relacionais / Lógicos :
Help / Matlab / Functions / Programming and data Types
Help / Matlab / Functions / Mathematics / Arrays / Operators / Arithmetic
&& AND
|| OR
~ NOT
XOR
Operadores
Binários
Aritméticos
Básicos
<
<=
>
>=
==
~=
&
|
~
menor que;
menor ou igual a;
maior que;
maior ou igual a;
igual a;
diferente de;
e
ou
não
Relacionais (IF)
16/24
19. MANIPULAÇÃO DE MATRIZES
Constante
Descrição
zeros
zeros(n) cria uma matriz quadrada composta de zeros; zeros(n,m) cria uma matriz n x m
composta de zeros; zeros(size(a)) cria um matriz com as mesmas dimensões da matriz a,
composta de zeros.
Exemplo: zeros(4); zeros(2,3);
ones(n) cria uma matriz quadrada composta de elementos iguais a 1; zeros(n,m) cria
uma matriz n por m composta de elementos iguais a 1; zeros(size(a)) cria um matriz com
as mesmas dimensões da matriz a, composta
de elementos iguais a 1.
Exemplo: ones(4); ones(2,3); ones(size(a)).
cria uma matriz identidade ou matriz com diagonal 1.
Ex: eye(n); eye(n,m); ones(size(a));
cria uma matriz com elementos gerados aleatoriamente.
Sintaxe: rand(n); rand(n,m); rand(size(a));
o mesmo de rand, porém neste caso a distribuição segue o padrão
normal, enquanto rand segue padrão uniforme.
extrai diagonais de matrizes e cria um vetor com estes elementos.
Ex: diag(m,k); diag(m);
cria um vetor com elementos linearmente espaçados.
Sintaxe: linspace(x1,x2);y = linspace(x1,x2,N); plot (y)
cria um vetor com elementos logaritmicamente espaçados.
Ex: logspace(x1,x2); logspace(x1,x2,N).
19/24
ones
eye
rand
randn
diag
linspace
logspace