擅长:python、mysql、java
<p>如果您使用的是<code>numpy</code>,那么可以通过两种方式访问矩阵元素:<code>matrix[i][j]</code>或<code>matrix[i, j]</code></p>
<p>另外,在<code>for</code>循环中,您试图从<code>range</code>中获取两个值,这实际上只产生一个值。所以不能像这样用<code>i</code>和<code>j</code>循环</p>
<p>我会为你的问题提出以下解决方案</p>
<pre><code>def randmat(n):
matrix = np.random.rand(n, n)
for i in range(n):
matrix[i, i] = n + np.random.rand(1)
return matrix
</code></pre>
<p><code>numpy.random.rand</code>是一个很好的函数,它为您提供所需形状的矩阵和元素,这些元素随机分布在0和1之间。这是文件:<a href="https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.rand.html#numpy.random.rand" rel="nofollow noreferrer">https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.rand.html#numpy.random.rand</a></p>
<p>然后,您只需迭代一次并更改主对角线上的元素</p>
<p>希望这会有所帮助</p>