簡體   English   中英

python中的用戶輸入矩陣(n * n + 1)

[英]User Input matrix(n*n+1) in python

這段代碼輸出 a[i][j] 以 a[0,0] 開頭,但我希望它以 a[1,1] 開頭,我該怎么辦?

import numpy as np
n = int(input("How many variable you find "))
a = np.zeros((n,n+1))
print('Enter Augmented Matrix:')
for i in range(n):
    for j in range(n+1):
        a[i][j] = float(input( f'a[{i},{j}]= '))
print(a)

使用range(n)0開始包括在內,並排除n ,在數學中這是[0;n[ ,從1開始做range(1, n)給你

for i in range(1, n):
    for j in range(1, n + 1):

如果你在第一個問題中輸入4 ,然后填寫你會得到的:

[[0. 0. 0. 0. 0.]
 [0. 1. 1. 1. 1.]
 [0. 1. 1. 1. 1.]
 [0. 1. 1. 1. 1.]]

如果您使用以下內容,它會走得很遠,因為數組的索引為0-base ,因此如果您說數組的長度為 5,則框索引為0,1,2,3,4

for i in range(1, n + 1):
    for j in range(1, n + 2):

解決方案

如果您想填充所有值,但只是更改為用戶打印的內容,請執行

for i in range(n):
    for j in range(n + 1):
        a[i][j] = float(input(f'a[{i + 1},{j + 1}]= ')) # +1 there

改變這個:

   for i in range(n):
        for j in range(n+1):
            a[i][j] = float(input( f'a[{i},{j}]= '))

對此:

for i in range(1,n):
    for j in range(1,n+1):
        a[i][j] = float(input( f'a[{i},{j}]= '))

同樣你可以試試

 for i in range(n-1):
     for j in range(n):
         a[i+1][j+1] = float(input( f'a[{i},{j}]= '))

請問為什么要以a[1][1]開頭?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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