簡體   English   中英

python程序從用戶輸入生成n * n矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM