python中的用户输入矩阵(n*n+;1)
这段代码是以[0,0]开头的[i][j],但我希望它以[1,1]开头,我怎么办python中的用户输入矩阵(n*n+;1),python,python-3.x,Python,Python 3.x,这段代码是以[0,0]开头的[i][j],但我希望它以[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[{
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
开始范围(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}]= '))
我可以问你为什么要从[1][1]开始吗?对于我来说,第一个问题是
a[1,1]=
好的,cna你复制控制台输出吗?你的范围从1开始,所以你不能从0,0I开始我想让矩阵n*n+1和用户输入每个点,并告诉他们这一点是第1行第1列,那么你的代码应该按原样工作。唯一的区别是,由于列表是零索引的,它们将以0开始,以(n-1)结束第个索引,但不管怎样,都会得到相同的矩阵大小。