[英]python program to generate n*n matrix from user input
我想從用戶輸入n
的值和矩陣的元素生成一個* n矩陣。
以下是代碼:
n=int(input("Enter the matrix size"))
import numpy as np
#initialise nxn matrix with zeroes
mat=np.zeros((n,n))
#input each row at a time,with each element separated by a space
for i in range(n):
for j in range(n):
mat[i][j]=input()
print(mat)
但我得到這樣的輸出
[[1. 2.]
[3. 4.]]
用一個。 (點)在我不想要的數字之后。 有沒有辦法使用循環和數組只有NumPy
?
你幾乎接近了。 在初始化矩陣時,您只需將數據類型聲明為dtype=int
mat=np.zeros((n,n), dtype=int)
然后你就不會有點而已
[[1 2]
[3 4]]
這是因為np.zeros
默認將它的值賦給float
。 要更改替換行: mat=np.zeros((n,n))
有:
mat=np.zeros((n,n), dtype=int)
它會為您提供所需的輸出。
同樣好的做法是對使用過的方法使用help()
,知道可以用它們做什么,就像在這個例子中一樣。
你可以用這個:
n = int(input())
mat=[[int(input()) for x in range(n)] for i in range(n)]
您可以將上面的列表轉換為numpy as
np_mat = numpy.asarray(mat)
如果你想一次輸入每一行,每個元素用空格分隔,你可以這樣做。
mat=[list(map(int, input().split())) for i in range(n)]
m=int(input("enter matrix row size"))
n=int(input("enter matrix column size"))
Mat1 = []
Mat2 = []
Mat3 = []
for i in range(m):
Mat1.append([0]*n)
print (Mat1)
for j in range(m):
Mat2.append([0]*n)
print (Mat2)
for k in range(m):
Mat3.append([0]*n)
print (Mat3)
for i in range(m):
for j in range(n):
print ('enter in Matrix 1 row: ',i+1,' column: ',j+1)
Mat1[i][j] = int(input())
for k in range(m):
for l in range(n):
print ('enter in MAtrix 2 row: ',k+1,' column: ',l+1)
Mat2[k][l] = int(input())
for p in range (m):
for q in range (n):
Mat3[p][q]=Mat1[p][q]+Mat2[p][q]
#print(Mat1[p][q]+Mat2[p][q])`z
print (Mat1)
print (Mat2)
print (Mat3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.