<jupyter_start><jupyter_text>Matrizes  Introdução Matrizes são estruturas largamente utilizadas na computação e em áreas como Estatística. São, basicamente, vetor de duas dimensões, no qual um valor é localizado por dois índices:<jupyter_code>linha1 = ["A", "B", "C"]
linha2 = ["D", "E", "F"]

matriz = [linha1, linha2]

print(matriz[0][1]) # segundo valor da primeira linha
print(matriz[1][2]) # terceiro valor da segunda linha<jupyter_output><empty_output><jupyter_text>Uma matriz pode ser a representação de uma tabela de valores. Veja um exemplo:Vendas de Produtos/Quinzena|       | 1a Quinzena      |  2a Quinzena  | 3a Quinzena ||----------|:-------------:|------:|------:| Prod1 |  100 | 15 | 40 || Prod2 |    200   |   30 | 80 || Prod3 | 40 |    120 | 60 | A matriz que representa essa tabela é composta por 3 linhas e colunas:```    100     15      40    200     30      80    40     120      60``` E em uma linguagem como Python, essa matriz pode ser representada da seguinte forma:<jupyter_code>vendas = [[100,15,40],[200,30,80],[40,120,60]]

for linha in vendas:
    for coluna in linha:
        print(coluna)
        
for i in range(len(vendas)):
    for j in range(len(vendas[i])):
        print(vendas[i][j])<jupyter_output>100
15
40
200
30
80
40
120
60
100
15
40
200
30
80
40
120
60<jupyter_text>Posições em uma matriz Como em um vetor, as posições da linha e coluna começam no número zero. Veja a matriz abaixo:```    100     15      40    200     30      80    40     120      60``` - A posição do valor 100 é 0,0- A posição do valor 120 é 2,1- A posição do valor 40 é 0,2  Inicializando uma matriz **Manualmente**<jupyter_code>matriz = [[0,0,0],[0,0,0]]<jupyter_output><empty_output><jupyter_text>**Usando uma estrutura de repetição**<jupyter_code>a = [0]*3
for i in range(3):
    a[i] = [0]*3
print(a)<jupyter_output>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]<jupyter_text>Acessando valores de uma matriz É feita como em um vetor, com a diferença que são necessários dois índices para se acessar uma posição:```A B CD E FG H I``` Na matriz acima, o valor F está na segunda linha e terceira coluna. Veja em Python:<jupyter_code>matriz = [["A","B","C"],["D","E","F"],["G","H","I"]]
print(matriz[1][2])<jupyter_output>F<jupyter_text>Alterando valores de uma matriz A operação de alteração é feita como no vetor, dessa vez com dois índices:<jupyter_code>matriz = [["A","B","C"],["D","E","F"],["G","H","I"]]
print("2a linha, 3a coluna:", matriz[1][2])
matriz[1][2] = "T"

# Note que o valor F será trocado pelo T

print(matriz)<jupyter_output>2a linha, 3a coluna: F
[['A', 'B', 'C'], ['D', 'E', 'T'], ['G', 'H', 'I']]<jupyter_text>Imprimir uma matriz inteira Considere a matriz abaixo:<jupyter_code>vendas = [["Produto 1", 100,15,40],["Produto 2", 200,30,80],["Produto 3",40,120,60]]

for linha in vendas:
    imprimir = ""
    for coluna in linha:
        imprimir += str(coluna) + " "
    print(imprimir)<jupyter_output>Produto 1 100 15 40 
Produto 2 200 30 80 
Produto 3 40 120 60<jupyter_text>Imprimir uma linha da matriz<jupyter_code>vendas = [["Produto 1", 100,15,40],["Produto 2", 200,30,80],["Produto 3",40,120,60]]
print(vendas[0])<jupyter_output>['Produto 1', 100, 15, 40]<jupyter_text>Imprimindo uma coluna da matriz Bibliotecas como Numpy trazem a facilidade de operar uma matriz mas, supondo a ausência de bibliotecas como essa, deve-se percorrer cada linha e selecionar a coluna desejada:<jupyter_code>vendas = [["Produto 1", 100,15,40],["Produto 2", 200,30,80],["Produto 3",40,120,60]]
col = 1
for linha in vendas:
    print(linha[col])<jupyter_output>100
200
40<jupyter_text>Exercícios **Ex 1: Crie uma matriz 3x4, todas as posições com o valor 1 ** ** Ex 2: Dada a matriz abaixo, multiplique todos os valores por 2 e grave-os na mesma matriz**<jupyter_code>m = [[1,2,3],[4,3,2],[9,4,3]]<jupyter_output><empty_output><jupyter_text>** Ex 3: Usando a mesma matriz do exercício anterior, faça um programa que peça ao usuário dois números x e y. Seu programa deverá dizer qual número está na posição x,y da matriz.** **Ex 4: Considere a tabela de vendas abaixo. Calcule o total de vendas por produto. **|       | 1a Quinzena      |  2a Quinzena  | 3a Quinzena ||----------|:-------------:|------:|------:| Prod1 |  100 | 15 | 40 || Prod2 |    200   |   30 | 80 || Prod3 | 40 |    120 | 60 | **Ex 5: Dadas as duas matrizez abaixo, crie um código que faça a soma das duas matrizes, gravando em uma terceira matriz**<jupyter_code>matriz1 = [[3,2,6],[4,8,9],[2,5,0]]
matriz2 = [[2,6,8],[2,3,4],[6,8,1]]<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15640123185217775, 'fraction_numerical': 0.08007039155301364, 'mean_word_length': 4.126268320180383, 'pattern_counts': {'":': 0, '<': 38, '<?xml version=': 0, '>': 38, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '666682', 'license': 'MIT', 'n_tokens_mistral': 2080, 'n_tokens_neox': 1828, 'n_words': 550, 'path': 'Fontes-UDF/programming/Matriz.ipynb', 'repo_name': 'IgorWinMac/UDF-Material', 'size': '4546'}