Upload
vukien
View
220
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
1
MATLAB – MATRIX LABORATORY
AJUDA
help – help on-line em linha de texto
helpwin – janela de help on-line
helpdesk – documentação em hipertexto
COMANDOS
pathtool – janela para configuração da lista de diretórios de busca
workspace – janela do workspace
path / matlabpath – exibem path de busca corrente
what – exibe arquivos ‘.m’ contidos no diretório de trabalho
clc – limpa tela
which – identifica e localiza arquivo
! – chama comandos do SO
>> !del teste.m
format – formato de exibição dos números na tela
who – lista nomes das variáveis em uso
whos – lista nomes e tipos das variáveis em uso
clear – elimina variáveis
OPERADORES
* multiplicação
.* multiplicação por escalar
./ divisão por escalar
\ divisão à esquerda (a\b equivale a a-1 * b)
.^ potência escalar
‘ transposta
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
2
EXPRESSÕES BOOLEANAS
0 (zero) ou nil (nulo, vazio) indica condição falsa
1 (um) ou diferente de 0 (zero) indica condição
verdadeira
Símbolos e operadores booleanos:
Operador Teste retorna verdadeiro se Exemplo
== I igual a J I == J
~= I diferente de J I ~= J
< I menor que J I < J
> I maior que J I > J
<= I menor igual a J I <= J
>= I maior igual a J I >= J
~ (not) I falso ~ I
& (and) I e J verdadeiros I & J
| (or) I ou J verdadeiro I | J
VARIÁVEIS
São case-sensitive e o nome deve ser formado com o máximo de 32 caracteres
CONTANTES NUMÉRICAS
pi – 3.141592...
inf – infinito (1/0)
NAN – não número (0/0)
realmin – menor número real (2-1022)
realmax – maior número real (21023
)
FUNÇÕES TRIGONOMÉTRICAS
sin – seno
cos – cosseno
sinh – seno hiperbólico
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
3
FUNÇÕES MATEMÁTICAS
sqrt – raiz quadrada
exp – exponencial
log – logaritmo
abs – retorna o valor absoluto
fix – parte inteira de um número real
round – inteiro mais próximo
floor – menor inteiro mais próximo
ceil – maior inteiro mais próximo
FUNÇÕES MATRICIAIS
eye – matriz identidade
>> a = eye(3)
>> a = 1 0 0
0 1 0
0 0 1
zeros – matriz de zeros
ones – matriz de 1’s
det – determinante
inv – inversa
reshape – reformata matriz
size – vetor contendo o tamanho de cada dimensão da matriz
lenght – comprimento do vetor ou dimensão máxima da matriz
diag – retorna a diagonal de uma matriz ou cria matriz diagonal a partir de um vetor
tril – matriz triangular inferior
triu – matriz triangular superior
fliplr – inverte ordem das colunas
flipud – inverte ordem das linhas
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
4
INDEXAÇÃO DOS ELEMENTOS DE UMA MATRIZ
>> a = [4 3; 2 1];
>> a = 4 3
2 1
>> a(1,1) = 4 % linha, coluna, matriz
>> a(3) = 2 % indexação sequencial (ordem em linhas)
TIPOS DE DADOS
String (Cadeia de caracteres)
>> txt = ‘Resposta’
>> a = double(txt)
>> a = [82 101 115 112 111 115 116 97] % valores em ASCII
>> char(a)
>> a = Resposta
Cell Array (células)
Permite o armazenamento de matrizes de naturezas diferentes em uma única estrutura identificada por
um único nome.
>> celula = cell(2)
>> celula{1,1} = eye(3)
>> celula{1,2} = ‘matriz identidade’
>> celula{2,1} = pi
>> celula{2,2} = 0:1:10
num2cell – transforma um vetor numérico em células
>> v = 1:5 % v = [1 2 3 4 5]
>> c = num2cell(v)
>> c = [1] [2] [3] [4] [5]
cat – faz a função inversa, concatena vetores
>> cat(Dim,a,b) % concatena os vetores a e b na dimensão Dim
>> cat(2,célula{:})
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
5
STRUCT (ESTRUTURA)
Permite o armazenamento de matrizes de naturezas diferentes, identificáveis por nome de campos.
>> s = struct(‘Nome’, {‘ST01’}, ‘Identificador’, {200}, ‘Valores’, {[10 20 30]})
>> s = Nome: ‘ST01’
Identificador: 200
Valores: [10 20 30]
>> s.Nome
>> ans = ST01
>> s(2).Nome = ‘ST01’
>> s(2).Identificador = 201
>> s(2).Valores = [0.1 5]
MONTANDO VETORES
>> a = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]
ou
>> for j=1:11 % para j de 1 até 11
a(j) = (j-1)/10; % compute o j-ésimo termo
>> end % indicação de final
ou
>> a = linspace(0,1,11)
ou
>> a = 0:0.1:1 % a = <inicio>:<incremento>:<final>
linspace(a,b,c) – vetor linearmente espaçado (a = inicial, b = final, c = número de elementos)
logspace(a,b,c) – vetor logaritmicamente espaçado (inicial = 10a, final = 10
b, c = número de elementos)
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
6
CONCATENANDO MATRIZES
a = [1 2] b = [3 4]
Concatena matrizes em linhas
>> c = [a b] % c = [1 2 3 4]
Concatena matrizes em colunas
>> d = [a ; b] % d = [1 2
3 4]
find – retorna um vetor coluna com os índices sequenciais dos elementos = 0 ou que satisfazem a
condição determinada
>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos % de a menores de 20
sort(a, Dim) – ordena elementos da matriz a na dimensão Dim, se DIM não for informado ordena as
colunas.
RESOLVENDO SISTEMAS LINEARES
Ax = b
x = A-1 b
>> A = [3 1
5 2]
>> b = [2; -9]
>> x = A\b
Combinando as linhas
>> U = [A b]
>> u = rref(U)
>> xu = u(:,3)
EDITOR DE PROGRAMAS
>> edit
% - comentários
... – linha de comando continua na próxima linha
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
7
SCRIPT
Sequência de comandos para automatizar algum processo repetitivo. Não trabalha com parâmetros de
entrada nem de saída. Sempre trabalha com as variáveis do workspace (usa variáveis pré-definidas e
define variáveis no workspace)
FUNÇÃO
Também é uma sequência de comandos, mas que aceita comandos de entrada, retorna parâmetros de
saída. Utilizam seu próprio espaço de memória para armazenar suas variáveis locais.
function [ps1, ps2, ..., psn] = nome_da_funcao (pe1, ..., pem)
ps1, ..., psn = Parâmetros de saída
pe1, ..., pem = Parâmetros de entrada
% estat.m - Exemplo 1
% [media, desvio_padrão] = stat(x)
% retorna média e desvio padrão dos valores em x function [media, desvio_padrão = stat(x)
media = mean(x); % media
desvio_padrao = std(x) % desvio padrão
Interessante aproveitar o cabeçalho para documentar o programa e gerar os textos de auxílio
par o comando help.
A função e o arquivo m-file devem ter o mesmo nome.
Variáveis do workspace não são reconhecidas dentro das funções
Podem ser criadas subfunções dentro de uma função
ESTRUTURAS DE SELEÇÃO
If, elseif, else
if I == J
A(I,J) = 2;
elseif abs(I – J) == 1
A(I,J) = -1;
else
A(I,J) = 0;
end;
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
8
Switch
switch Val
case 0
A(I,J) = 2;
case 1
A(I,J) = -1;
otherwise
A(I,J) = 0;
end
ESTRUTURAS DE REPETIÇÃO
While
while I < J
if I == J
A(I,J) = 2;
elseif abs(I – J) == 1 A(I,J) = -1;
else
A(I,J) = 0;
end
I = I + 1;
end
For
for <Valor> = <inicio>:<incremento>:<fim>
<Expressão1>
...
<Expressão2>
end
for i=1:10000
x(i) = cos(2*pi*i/100);
end;
VARIÁVEIS GLOBAIS
global <nome da variável> % declarar também dentro da função
which – pesquisa arquivos >> which sin
>> which polyfit
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
9
struct e cell array
RESOLVENDO SISTEMAS LINEARES
>> A = fix (10 * rand(10));
>> B = fix (100 * rand(10,1))
>> C = [A B]
>> D = rref(A)
>> E = A\B
Calcular a diferença de D(:,11) e E
Format – muda a formato de apresentação
format long
format short
IF, Switch, For
Save e Load
>> save (nome do arquivo)
>> save (arquivo) <nome das variáveis> - salvar variáveis (.mat)
>> load (nome do arquivo.mat)
>> load (nome do arquivo) (variável)
find – retorna um vetor coluna com os índices seqüenciais dos elementos = 0 ou que satisfazem a
condiç ão determinada
>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos de a
% menores de 20
FUNÇÕ ES PARA IMPORTAÇ Ã O DE DADOS
Arquivos ASCII
>> dlmread (<arquivo>, <delimitador>) % importa dados
>> dlmwrite (<arquivo>, <matriz>, <delimitador>) % exporta dados
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
10
Outras funções
importdata – importa dados de vários tipos de arquivos (bmp, mat, txt, wav, etc)
xlsread – importa dados de planilhas excel
PLOT
>> % Exemplo: Gráfico f(x) = x * cos(x), -2p < x < 2p
>> x = -2*pi : 0.1 : 2*pi;
>> y = x .* cosx(x);
>> figure(1);
>> plot(x,y); % default : linha contínua azul
>> plot(x,y,’r*’); % marcador * na cor vermelho
CONFIGURAÇÕ ES DO GRÁFICO
hold on – habilita / desabilita exibiç ão de gráficos na mesma janela.
grid on – habilita / desabilita grid do gráfico
zoom(fator) – zoom no gráfico
legend(‘x * cos(x)’) - legenda
xlabel(‘Eixo x’) – nome do eixo x
ylabel(‘Eixo y’) – nome do eixo y
title(‘Grá fico f(x)=x * cos(x)’) – titulo do gráfico
axis([xmin xmax ymin ymax]) – altera limites do gráfico (escala)
>> axis([-pi pi –1 1]);
VÁRIOS GRÁFICOS NUMA SÓ JANELA
>> plot (x,sin(x),’r’, x,cos(x),’k:’, x,sin(x).*cos(x),’b>’);
>> legend(‘sin(x)’,’cos(x)’,’sin(x).*cos(x)’);
Plotando matrizes – cada coluna gera uma curva
>> A = fix(10 * rand(10));
>> plot(A);
plotyy – duas curvas no mesmo gráfico com escalas diferentes
>> x = 0.1:0.1:10
>> plot(x, sin(x));
>> plot(x, exp(x));
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
11
>> plot(x, sin(x), ‘r’, x, exp(x), ‘b’);
>> plotyy(x, sin(x), x, exp(x));
subplot(linhas, colunas, posição) – gera vários gráficos numa mesma janela.
>> x = -2*pi:0.1:2*pi;
>> y = x .* cos(x);
>> subplot(1,3,1) % 1 linha, 3 colunas na posição 1
>> plot(x,y);
>>
>> subplot(1,3,2) % na posição 2 com zoom
>> plot(x,y);
>> zoom(2);
>>
>> subplot(1,3,3) % na posição 3, 2 funções no mesmo gráfico
>> plot(x,y,’r’);
>> hold
>> plot(x, x.*sin(x));
exportar gráfico – grava gráfico como imagem no disco
>> print –dbitmap –r300 <arquivo>
GRÁ FICOS PARA FUNÇÕ ES ESPECIAIS
polar, loglog, semilogx, semilogy
plot3 – cria uma curva no espaç o 3D
>> x = -4*pi : 0.1 : 4*pi
>> y = -4*pi : 0.1 : 4*pi
>> plot3(cos(x), sin(y), (x+y)) % fornecer coordenadas x, y, z
FUNÇÕ ES GRÁ FICAS 2D ESPECIAIS
area – gráfico de área
bar – gráfico de barra vertical
barh – gráfico de barra horizontal
stairs – gráfico escada
UNIVERSIDADE DO ESTADO DE MATO GROSSO FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CAMPUS UNIVERSITÁRIO DE SINOP DISCIPLINA: REDES NEURAIS ARTIFICIAIS – RNAs
Introdução ao Matlab Prof. Dr. André do Amaral Penteado Biscaro
12
pie – gráfico de pizza
scatter – gráfico discreto que indica pontos com marcadores
stem – gráfico discreto que indica pontos com hastes
EXERCÍCIOS
1) Calcular o vetor Y = sin(2 * pi * xi /100), x = 1, 2, ..., 10000
2) Escreva um programa no Matlab para um valor n e construir uma matriz A (nxn) com
elementos aij = 3ij. Tente fazer usando laços e depois tente refazer sem usar laços.
3) Qual a diferença entre (A * A) e (A .^ A) ?
4) Criar uma função para calcular média e desvio padrão.
5) Criar uma função com subfunções para calcular a média e o desvio padrão.
6) Implementar uma perceptron simples para as funções AND e OR, apresentando o treinamento, a
convergência e sua aplicação.