擅长:python、mysql、java
<p>问题是在<code>for</code>循环中,您将<code>float</code>参数传递给<code>g</code>函数,然后该函数用作<code>range()</code>的参数,该函数只接受<code>int</code>。尝试:</p>
<pre class="lang-py prettyprint-override"><code>import numpy as np
import matplotlib.pyplot as plt
def g(n):
return np.sum(range(1,n+1))
M = np.ones([3,5])
for i in range(3):
for j in range(5):
M[i,j] = g(int(i*j - 2*i**np.pi) )
</code></pre>
<p>编辑:
有点猜测,但也许这就是你想要的:</p>
<pre class="lang-py prettyprint-override"><code>import numpy as np
def g(n):
return np.sum(range(1,n+2))
M = np.ones([3,5])
for i in range(3):
for j in range(5):
M[i,j] = g(int(round(i*j - 2*i**np.pi, 0)) )
</code></pre>
<p><code>round</code>将舍入该数字,而不是截断它,并且将<code>g</code>-s上界提高到<code>n+2</code>将确保<code>n+1</code>将被捕获。你知道吗</p>