Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFRJ - Instituto de Matemá tica – Departamento de Ciência da Computaç ão Curso de Bacharelado em Informá tica Disciplina Tó picos Especiais em Inteligência Computacional – Redes Neurais – 2002/1 MATLAB – LABORATÓ RIO DE MATRIZES BIBLIOGRAFIA MATLAB 6 – Fundamentos de Programaç ão - É lia Yathie Matsumoto - Editora É rica 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 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 (2-1023) FUNÇÕ ES TRIGONOMÉTRICAS sin – seno cos – cosseno sinh – seno hiperbó lico 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 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 seqüencial (ordem em linhas) TIPOS DE DADOS String (Cadeia de carcteres) >> 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{:}) 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 = 10b, c = nú mero de elementos) CONCATENANDO MATRIZES Concatena matrizes em linhas >> a = [a b] Concatena matrizes em colunas >> a = [a ; b] 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 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 SCRIPT Seqüê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 seqüê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; 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; EXERCÍCIO 1) Calcular o vetor Y = sin(2 * pi * xi /100), x = 1, 2, ..., 10000
Compartilhar