matrizes – parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/pi-teoria-11.… ·...
TRANSCRIPT
1
Matrizes – Parte 1
Prof. Jesús P. Mena-ChalcoCMCC/UFABC
Q2/2018
Processamento da Informação
2
Matriz bidimensional em Java
Declaração de uma variável que representa uma matriz bidimensional de inteiros (10 linhas e 20 colunas)
3
Matriz bidimensional em Java
.
.
.
linhas
colunas
0
1
2
3
0 1 2 3 4 5 ...
4
Matriz bidimensional em Java
matriz[2][0]
0
1
2
3
0 1 2 3 4 5
matriz[1][4]
Matriz bidimensional em Java Declara uma matriz Mde 100 linhas
com 200 colunas(20mil inteiros)
Material adaptado da aula de Matrizes de Ronaldo F. Hashimoto e Carlos H. Morimoto (IME/USP)
A memória do computador é linear!
Matriz bidimensional em JavaEstrutura da matriz na memória do computador
Material adaptado da aula de Matrizes de Ronaldo F. Hashimoto e Carlos H. Morimoto (IME/USP)
Material adaptado da aula de Matrizes de Ronaldo F. Hashimoto e Carlos H. Morimoto (IME/USP)
Disposição dos 20mil elementos da matriz M na memória
8
Erros comuns
0
1
2
3
0 1 2 3 4 5
matriz[-1][4]
matriz[4][6]
- Considerar índices negativos- Considerar índices que ultrapassam as dimensões da matriz
int M[][] = new int[4][6]
Matriz bidimensional (imagem em níveis de cinza)
Nível=18
Matriz tridimensional (imagem em RGB)
{Red, Green, Blue}
Sistema de cor?
SISTEMA SUBTRATIVO
Sistema CMYK(impressoras)
SISTEMA ADITIVO
Sistema RGB(projetor)
Quando falamos de cor, falamos
de luz
12
Matrizes
0
1
2
3
0 1 2 3 4 5
0
1
2
3
0
1
2
3
0 1 2 3 4 5
Matriz unidimensional(vetor/Array)
Matriz bidimensional(2D)
Matriz tridimensional(3D)
13
Matrizes
0
1
2
3
0 1 2 3 4 5
0
1
2
3
0
1
2
3
0 1 2 3 4 5
Matriz unidimensional(vetor/Array)
Matriz bidimensional(2D)
Matriz tridimensional(3D)
M[2] M[2][4] M[2][5][2]
14
15
Processamento de imagens multiespectrais (imagens do mesmo objeto, mas capturadas com diferentes comprimentos de onda eletromagnéticas)Os aparelhos consideram diferentes comprimentos de onda para cada camada.
http://all-geo.org/volcan01010/2013/01/processing-arsf-remote-sensing-data-with-open-source-gis-tools/
16
Exemplo 01: Definição
17
Exemplo 02: Listando os elementos
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18
Exemplo 02: Listando os elementos
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19
Exemplo 03: Atribuindo valores
0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 33 0 0 0 0 0 00 0 0 0 0 0 0 47 0 49
01234
0 1 2 3 4 5 6 7 8 9
20
Exemplo 04: Matriz identidade de ordem n
Vamos desenvolver um método que permita criar uma matriz identidade de ordem n.
Uma matriz identidade é uma matriz quadrada, onde todos os elementos da diagonal principal é 1, os demais elementos são 0s.
Assinatura: static int[][] matrizIdentidade( int n )
21
Exemplo 04: Matriz identidade de ordem n
22
Exemplo 04: Matriz identidade de ordem n
23
Exemplo 04: Matriz identidade de ordem n
1 0 0 00 1 0 00 0 1 00 0 0 1
24
Exemplo 05: Matriz diagonal
Vamos desenvolver um método que permita verificar se uma matriz é diagonal.
Uma matriz diagonal é uma matriz quadrada onde os elementos que não pertencem à diagonal principal são obrigatoriamente iguais a zero.
Assinatura: static boolean ehDiagonal( int M[][] )
Pode ser também [][]M
25
Exemplo 05: Matriz diagonal
26
Exemplo 05: Matriz diagonal
27
Exemplo 06: Matriz transposta
Vamos desenvolver um método que permita calcular a matriz diagonal de uma matriz dada como entrada.
Assinatura: static int[][] transposta( int [][]M )
28
Exemplo 06: Matriz transposta
29
Exemplo 06: Matriz transposta