Você está na página 1de 24

Da manipulação de matrizes à criação de gráficos

FONSECA, P.R.; STELZER, M.; Introdução ao Matlab - Da manipulação de matrizes à criação de gráficos, 2007.
 Vetores multidimensioanis
 Outros tipos de dados
 Exercícios
 O Matlab permite criar vetores multidimensionais
combinando matrizes 2D
 >> A=[1 0 3; 4 -1 2;8 2 1]
 é uma matriz 2D
 >> size(A)
 >> size(A,3)
 Acrescendo uma dimensão
 >>A(:,:,2)=[7 8 3;4 3 6; 5 9 2]
 >>size(A)
 Indexação é similar às matrizes 2D
 >>A(2,3,2)
 Operação com matrizes
 >>A+10
 >>A*0.5
 >>A.*A
 >>A1=A(:,:,1)’
 >>A2=A(:,:,2)’
 >>A3=A(:,:,1)^2
 >>A4=A(:,:,1).^2
 Onde usar?
 Foto  2D
 Vídeo  Foto no tempo  3D
 Algumas imagens médicas
 US, CT, MRI  volume  3D
 Imagens volumétricas funcionais  3D no tempo 
4D
 Usando o help do Matlab, vamos carregar um
exame de MRI
 >> load mri
 >> whos
 >> image(NOMEDAVARIAVEL)

 >>montage(NOMEDAVARIAVEL)
 Há outros três tipos de dados:
 Cadeia de caracteres (string)
 Célula (cell array)
 Estrutura (struct)
 Caracteres em formato ASCII armazenado em
formato char
 Escritos entre ‘’
 >> txt=‘resposta’
 >> whos txt

 Internamente, são armazenados como números


inteiros
 >> a=double(txt)
 >> b=[84 101 120 116 111]
 >> char(b)
 Indexação similar a matrizes
 >>txt(1:4)
 >>txt(5:end)

 Outras operações matriciais também podem ser


aplicadas
 >>txt’ % transposta
 >>reshape(txt,2,4)
 Símbolos ‘[]’, ‘ ’ e ‘;’ podem ser usados para concatenar
caracteres
 >> txt1=‘Bom’
 >> txt2=‘dia’
 horizontalmente
 >> txt=[txt1 txt2]
 >> txt=[txt1 ‘ ‘ txt2]
 >> whos txt
 Verticalmente
 Devem ter o mesmo tamanho
 >> txt=[txt1;txt2]
 >> whos txt
 Para concatenar vetores de tamanhos diferentes,
usa-se strvcat
 Ajusta os tamanhos das cadeias acrescentando ‘ ‘.
 >>txt=strvcat(txt1,txt2)
 >>whos txt
 Tipo de dado que permite armazenamento de elementos de
naturezas diferentes em uma única estrutura
 >>celula=cell(2)
 >>whos celula

 Vamos atribuir à ela as seguintes variáveis


 celula(1,1): matriz identidade 3x3
 >>celula(1,1)={eye(3)}

 celula(1,2): cadeia de caracteres ‘matriz identidade 3x3’


 >>celula(1,2)={‘matriz identidade 3x3’}

 celula(2,1):pi
 >>celula(2,1)={pi}

 celula(2,2):vetor 0:0.5:5
 >>celula(2,2)=0:0.5:5
 Indexação feita com ‘{ }’ em vez de ‘()’
 >>c11=celula{1,1}
 >>whos c11

 >>c12=celula{1,2}
 >>whos c12
 Para transformar um vetor numérico em cell array
 >>v=1:5
 >>c=num2cell(v)
 >>whos v c

 Para visualizar os elementos de c


 >>c{:}

 Para retornar de cell array para vetor numérico


 >>x=cat(2,c{:})
 Tipo de dado que permite armazenar elentos com naturezas diferentes
identificáveis por nomes de campos

 Vamos criar uma estrutura com 3 campos


 Nome:’ST01’
 Id:200
 Valores:[10 20 30]
 >>s=struct(‘nome’,{‘ST01’},’Id’,{200},’Valores’,
{[10 20 30]})
 >>whos s

 Campos são identificados por: nomedaestrutura.nomedocampo


 >> s.nome
 >>s.Id
 >>s.Valores
 É possível criar vetores de estruturas
 >>s(2).nome=‘ST02’
 >>s(2).Id=201
 >>s(2).Valores=[0.1 05]
 >>s(1)
 >>s(2)
 >>whos s

 É possível consultar o nome dos campos das estruturas


 >> fieldnames(s)
 Ou pelo array editor
Grupos de 3 pessoas
 1) crie um vetor n de 99 elementos igualmente
espaçados entre -20 e 45

 2) crie um vetor y=cos(sen(n))+n/(17*rand)

 3) crie um gráfico de y em função de n

 4) atribua os valores de n, y e suas descrições a um


cell array 2x2

 5) salve o gráfico (pratic1.fig) e as variáveis desse


exercício (pratic1.mat)
 Baixe os dados experimentais

 Carregue no Matlab

 “plote” todos os canais juntos

 “plote” cada um dos canais (colunas) separadamente

 some todos os canais e apresente graficamente


 Crie uma estrutura com:
 Número do canal

 Máximo do canal
 Localização do máximo

 Mínimo do canal
 Localização do máximo

 Três maiores valores de cada canal

 Três menores valores de cada canal


 Salve os gráficos
 De cada canal, ex: canal1.fig
 Da soma dos canais, ex: soma.fig

 Salve somente as variáveis desse exercício


 pratic2.mat
 Mande os resultados por e-mail
 prfonseca@ibb.unesp.br

 Mande também:
 Críticas
 Sugestões
 O que melhorar nas próximas aulas?

Você também pode gostar