12
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

MATLAB MATRIX LABORATORY AJUDA - sinop.unemat.brsinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_15169aula_07... · ... (ordem em linhas) TIPOS DE DADOS String ... % retorna

  • 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.