Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… ·...

Preview:

Citation preview

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

Recommended