Introdução ao Matlab
Prf. José Fajardo Barbachan
IBMEC
Células e Estruturas
• Utilizados para agrupar dados diferentes,
mas relacionados
• Não permitem operações matemáticas
diretamente nelas, mas apenas em seus
componentes
1
Células e Estruturas
• Células
– Identificadas por números
• Estruturas
– Identificadas por nomes
Células
• Criação
–
–
–
–
–
cell(l,c)
Atribuindo valores à célula
Usa os operadores { }
Exemplo 1: A(1,1) = {[ 1 2 3]}
Exemplo 2: A{1,1} = [1 2 3]
2
Células
• Vendo o Conteúdo
– celldisp(A)
– A{1,1} ou A(1,1)
• Manipulação
– Os mesmos métodos de manipulação utilizados
por matrizes funcionam com células
• Ex.: A{:,1}
Células
• Manipulação
–
–
–
–
size
reshape
repmat
iscell
3
Células
• Trabalhando com os conteúdos
– Você pode acessar um elemento de uma célula
considerando que o endereço completo da
célula é uma matriz.
– Exemplo: x = A{1,1}(2,2)
Estruturas
• Ao invés de ser um conjunto acessado por
números, é acessado por nomes
– Ex.: Bbas4.Data = 3; Bbas4.Preco = 8.5
• Possui campos. No caso do exemplo acima
os campos seriam Data e Preco
• Permite criação de estruturas dentro de
estruturas
4
Estruturas
• Nomes de campos têm as mesmas restrições
dos nomes das variáveis
• Para acessar dados na estrutura o índice é
aplicado ao nome da estrutura
– Ex: Bbas4(2).Data
• É bastante útil na utilização de funções e
para indexação conjunta de dados
Estruturas
• Manipulação de Estruturas
– Os mesmos conceitos aplicados a matrizes e
células são aplicados às estruturas
• Funções
–
–
–
–
fieldnames
isfield
class
isstruct
5
Estruturas
• Funções
– rmfield
• Ex:
– Fnames = fieldnames(circle)
– Circle2 = rmfield(circle,fnames{5})
– getfield
– setfield
M-files
• São utilizados com 2 propósitos
– Scripts
• Usam o workspace vigente (variáveis)
• Não recebem argumentos nem devolvem respostas
– Funções
• Usam seu próprio workspace
• Podem receber argumentos e devolver respostas
6
Scripts
• Executam uma sequência de comandos prédefinida
• Funções Úteis
– disp(variável)- Mostra o conteúdo da variável
sem mostrar seu nome. Pode ser usado para
mostrar textos ou mesmo números que não
estejam armazenados em variáveis
Scripts
• Funções Úteis
– echo on/off – Controla a saída do script no
command window.
– input – Solicita ao usuário entrada de dados
– keyboard – Devolve controle ao teclado até que
seja digitado “return” para o comando voltar
para o script
7
Scripts
• Funções Úteis
– pause ou pause(n) – Coloca o script em estado
de espera até que o usuário aperte alguma tecla,
ou espera “n” segundos.
– waitforbuttonpress – Coloca o script em estado
de espera até que o usuário aperte o botão do
mouse ou alguma tecla
Scripts
• Scripts especiais
–
–
–
–
matlabrc.m
pathdef.m
startup.m
finish.m
8
Scripts
• Exemplo de finish.m
Pergunta = 'Tem certeza que quer sair?';
Botao = questdlg(Pergunta,'Finalizaçao','Sim','Nao','Nao');
switch Botao
case 'Nao'
quit cancel; % Desiste de finalizar
end % Se nao for Nao deixa sair
Exercício
• Fazer um script que solicita a indicação de dois
vetores e cria uma estrutura com campos ‘Acao1’
e ‘Acao2’.
• Transformá-los em retornos criando uma célula
• Calcular algumas estatísticas descritivas dos
retornos e apresentá-las de forma agradável
• Estatísticas Descritivas:
– Média, Desvio Padrão, Máximo, Mínimo
• Usar o banco de dados Aula2.mat para obter os
vetores
9
Strings
• O Matlab trata originalmente Strings como
array de números
• Esses números são os códigos ASCII desses
caracteres
• Exemplo: t = ‘Um exemplo de string’
Strings
• Funções Básicas
– Todas as funções de matrizes
– double – Mostra os códigos ASCII da string
• Para manipular Strings as mesmas funções
utilizadas pelas matrizes são válidas
• Para representar um ‘ dentro da String basta
colocar dois consecutivos
10
Strings
• Para strings com mais de uma linha deve-se
ter o mesmo número de caracteres em cada
linha.
• Função strvcat
– Cria um array com várias linhas de string
automaticamente uniformizando seu tamanho
Strings
• Função strcat
– Concatena strings
• Função deblank
– Retira espaços em branco de sobra
• Outras funções úteis
– int2str
– num2str
11
Strings
• Outras funções úteis
– fprintf
• Formatar números
– sprintf
• Formatar Strings
• fname=sprintf(‘mydata%.0f.dat’,i)
– sscanf
• É a função recíproca a sprintf
Strings
• Soluções para se ter tamanhos diferentes
– Estruturas
– Células
• Mais funções úteis
–
–
–
–
cellstr(S)
blanks(n)
ischar(S)
Iscellstr(C)
12
Strings
• Mais funções úteis
–
–
–
–
–
–
strcmp(S1,S2)
strcmpi(S1,S2)
findstr(S1,S2)
strmatch(S1,S2)
upper(S)
lower(S)
Exercício
• Criar um script que execute os seguintes passos:
– Solicite um nome de 2 ações
– Procure na estrutura Acoes os nomes e tendo-os
calcular as séries de retornos.
– Calcular o retorno esperado e o risco de cada ação
– Solicitar o vetor com os pesos do portfolio
– Calcular o retorno esperado e o risco da carteira
– Mostrar os resultados de forma amigável
13
Download

Aula2 - José Fajardo