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

29
1 Matrizes – Parte 1 Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento da Informação

Upload: others

Post on 30-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

1

Matrizes – Parte 1

Prof. Jesús P. Mena-ChalcoCMCC/UFABC

Q2/2018

Processamento da Informação

Page 2: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

2

Matriz bidimensional em Java

Declaração de uma variável que representa uma matriz bidimensional de inteiros (10 linhas e 20 colunas)

Page 3: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

3

Matriz bidimensional em Java

.

.

.

linhas

colunas

0

1

2

3

0 1 2 3 4 5 ...

Page 4: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

4

Matriz bidimensional em Java

matriz[2][0]

0

1

2

3

0 1 2 3 4 5

matriz[1][4]

Page 5: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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!

Page 6: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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)

Page 7: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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

Page 8: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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]

Page 9: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

Matriz bidimensional (imagem em níveis de cinza)

Nível=18

Page 10: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

Matriz tridimensional (imagem em RGB)

{Red, Green, Blue}

Page 11: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

Sistema de cor?

SISTEMA SUBTRATIVO

Sistema CMYK(impressoras)

SISTEMA ADITIVO

Sistema RGB(projetor)

Quando falamos de cor, falamos

de luz

Page 12: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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)

Page 13: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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]

Page 14: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

14

Page 15: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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/

Page 16: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

16

Exemplo 01: Definição

Page 17: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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

Page 18: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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

Page 19: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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

Page 20: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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 )

Page 21: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

21

Exemplo 04: Matriz identidade de ordem n

Page 22: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

22

Exemplo 04: Matriz identidade de ordem n

Page 23: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

23

Exemplo 04: Matriz identidade de ordem n

1 0 0 00 1 0 00 0 1 00 0 0 1

Page 24: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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

Page 25: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

25

Exemplo 05: Matriz diagonal

Page 26: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

26

Exemplo 05: Matriz diagonal

Page 27: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

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 )

Page 28: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

28

Exemplo 06: Matriz transposta

Page 29: Matrizes – Parte 1professor.ufabc.edu.br/~jesus.mena/courses/pi-2q-2018/PI-teoria-11.… · (vetor/Array) Matriz bidimensional (2D) Matriz tridimensional (3D) M[2] M[2][4] M[2][5][2]

29

Exemplo 06: Matriz transposta