Python - Generar una matriz mediante dos bucles for en python

 
Vista:

Generar una matriz mediante dos bucles for en python

Publicado por FernandoTacle (3 intervenciones) el 22/09/2020 01:51:11
Saludos tal vez me puedan ayudar, soy nuevo en python estoy mas familiarizado con matlab.
tengo un problema al generar una matriz usando dos bucles for, el problema radica en la multiplicación, adjunto el código que tengo hasta ahora, les agradezco de antemano. (el código es para python)

1
2
3
4
5
6
f = int(input("Ingresar el numero de filas= "))
c = int(input("Ingresar el numero de columnas= "))
B=[]
for i in range(f):
    for j in range(c):
        B[i][j] = i*j
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Generar una matriz mediante dos bucles for en python

Publicado por Daniel (111 intervenciones) el 22/09/2020 09:46:40
Hola,

El problema es que Python y Matlab no funcionan igual, no se puede aumentar el tamaño de una lista de Pyhton como una matriz de Matlab. Si quieres trabajar con Python puro tendrías crear la lista de listas antes de continuar, algo como:

1
2
3
4
5
6
7
f=3
c=5
B = [[0 for x in range(c)] for y in range(f)]
 
for i in range(f):
    for j in range(c):
        B[i][j] = i*j

Pero para trabajar como en Matlab lo mejor es usar NumPy. Si lo necesitas, yo tengo publicados algunos tutoriales básicos de NumPy.

Saludos,
Daniel Rodríguez
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Generar una matriz mediante dos bucles for en python

Publicado por Fernando Tacle (3 intervenciones) el 22/09/2020 13:07:22
Saludos muy amable gracias.
Una duda más, al llenar la matriz en la fila 1 y columna 1 se llena de valores en 0 y lo que quiero es que se llene con el resultado de la multiplicación que está dentro de los bucles for, adjunto código.
el resultado que me arroja es este
[[0 0 0]
[0 4 6]
[0 6 9]]

y lo que debería haber es esto
1 2 3
2 4 6
3 6 9

este en el código de python

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
f = int(input("Ingresar el numero de filas= "))
c = int(input("Ingresar el numero de columnas= "))
B = np.array([[0 for x in range(c)] for y in range(f)])
for i in range(1,f):
    print(i)
    for j in range(1,c):
        print(j)
        B[i][j] = (i+1)*(j+1)
        print(B)
print(B.transpose())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Generar una matriz mediante dos bucles for en python

Publicado por Daniel (111 intervenciones) el 23/09/2020 10:07:08
Porque en Python la posición en de las matrices empieza a contar en 0 y no en 1 como Matlab. Así que en el código de ejemplo nunca se sobrescribe el valor de la primera posición al comenzar el rango en 1, no en 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar