我正在做一道数学作业,这道题给我带来了一些麻烦。我需要编写一个python函数来创建一个随机矩阵,以便:
这是我到目前为止所掌握的,但我认为我不了解数组的索引,所以我提出了一些问题
def randmat(n):
matrix = np.ndarray((n,n), dtype=float)
for i,j in range(0,n):
if i != j:
matrix[ij] = np.random.rand(1)
else:
matrix[ij] = n + np.random.rand(1)
return matrix
如果你知道我做错了什么,我们将不胜感激
请尝试以下代码:
如果您使用的是
numpy
,那么可以通过两种方式访问矩阵元素:matrix[i][j]
或matrix[i, j]
另外,在
for
循环中,您试图从range
中获取两个值,这实际上只产生一个值。所以不能像这样用i
和j
循环我会为你的问题提出以下解决方案
numpy.random.rand
是一个很好的函数,它为您提供所需形状的矩阵和元素,这些元素随机分布在0和1之间。这是文件:https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.rand.html#numpy.random.rand然后,您只需迭代一次并更改主对角线上的元素
希望这会有所帮助
相关问题 更多 >
编程相关推荐