Matrizes – Parte 1 Processamento da Informação

Propaganda
Processamento da Informação
Matrizes – Parte 1
Prof. Jesús P. Mena-Chalco
CMCC/UFABC
Q1/2017
1
Vetores
Os elementos de um vetor são
armazenados/alocados de
forma consecutiva na
memória.
0
Os elementos são acessados
por seu índice dentro do vetor.
X:=
10
1
2
4
-95
3
4
…
37 2910
2
Vetor em Java
Declaração de uma
variável que
representa um
array de 13 inteiros
3
Matriz bidimensional em Java
Declaração de uma variável
que representa uma matriz
bidimensional de inteiros
(10 linhas e 20 colunas)
4
Matriz bidimensional em Java
colunas
0
1
2
3
4
5 ...
0
1
2
linhas
3
.
.
.
5
Matriz bidimensional em Java
0
1
2
3
4
5
0
1
2
matriz[2][0]
matriz[1][4]
3
6
Matriz bidimensional em Java
Declara uma matriz M
de 100 linhas
com 200 colunas
(20mil inteiros)
A memória do computador é linear!
Material adaptado da aula de Matrizes de Ronaldo F. Hashimoto e Carlos H. Morimoto (IME/USP)
Memória (hardware)
RAM
...
HDD
SSD
...
8
Estrutura da matriz na memória do computador
Matriz bidimensional em Java
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
Material adaptado da aula de Matrizes de Ronaldo F. Hashimoto e Carlos H. Morimoto (IME/USP)
Erros comuns
- Considerar índices negativos
- Considerar índices que ultrapassam as dimensões da matriz
int M[][] = new int[4][6]
0
1
2
3
4
5
0
matriz[-1][4]
1
2
3
matriz[4][6]
11
Matriz bidimensional (imagem em níveis de cinza)
Nível=18
Matriz tridimensional (imagem em RGB)
{Red, Green, Blue}
Matrizes
Matriz unidimensional
(vetor/Array)
Matriz bidimensional
(2D)
0
1
2
3
4
Matriz tridimensional
(3D)
0
5
0
0
0
1
1
1
2
2
2
3
3
3
1
2
3
4
5
15
Matrizes
Matriz unidimensional
(vetor/Array)
Matriz bidimensional
(2D)
0
1
2
3
4
Matriz tridimensional
(3D)
0
5
0
0
0
1
1
1
2
2
2
3
3
3
M[2]
M[2][4]
1
2
3
4
5
M[2][5][2]
16
17
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/
18
Exemplo 01: Definição
20
Exemplo 02: Listando os elementos
21
Exemplo 02: Listando os elementos
00000000000000000000000000000000000000000000000000
22
Exemplo 02: Listando os elementos
0000000000
0000000000
0000000000
0000000000
0000000000
23
Exemplo 03: Atribuindo valores
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 0
0 0
0 0
33 0
0 0
0
0
0
0
0
0
0
0
0
0
0 0
0 0
0 0
0 0
47 0
0
0
0
0
49
24
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 )
25
Exemplo 04: Matriz identidade de ordem n
26
Exemplo 04: Matriz identidade de ordem n
27
Exemplo 04: Matriz identidade de ordem n
1000
0100
0010
0001
28
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 )
29
Exemplo 05: Matriz diagonal
30
Exemplo 05: Matriz diagonal
31
Exemplo 05: Matriz diagonal
32
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 )
33
Exemplo 06: Matriz transposta
34
Exemplo 06: Matriz transposta
35
Atividade em aula
36
Questão 1 – a
37
Questão 1 – b
38
Questão 1 – c
39
Questão 2
41
Sobre a P1
42
20%
35
30
25
20
15
10
5
0
0-1
1-2
2-3
3-4
4-5
5-6
6-7
7-8
8-9
9-10
26%
152 avaliações (2 turmas)
43
Download