Buscar

Principais Funções MATLAB (compilado) - UFRJ

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Outros materiais