擅长:python、mysql、java
<p>如果你想使用类似于MATLAB的numpy,你必须确保你的数组有正确的形状。您可以使用<code>arrayname.shape</code>检查任何numpy数组的形状,并且由于数组<code>na</code>具有形状<code>(4,)</code>,而不是<code>(4,1)</code>,<code>transpose</code>方法无效,并且<code>multiply</code>计算点积。使用<code>arrayname.reshape(N+1,1)</code>resp。<code>arrayname.reshape(1,N+1)</code>来转换数组。</p>
<pre><code>import numpy as np
n = range(0,N+1)
pi = np.pi
xx = np.cos(np.multiply(pi / float(N), n))
xxa = np.asarray(xx).reshape(N+1,1)
na = np.asarray(n).reshape(N+1,1)
nd = np.transpose(na)
T = np.cos(np.multiply(np.arccos(xxa),nd))
</code></pre>
<p>自Python 3.5以来,您可以使用<code>@</code>运算符进行矩阵乘法。因此,这是一个演练,以获得更易于阅读的代码,非常类似于MATLAB。</p>
<pre><code>import numpy as np
n = np.arange(N + 1).reshape(N + 1, 1)
xx = np.cos(np.pi * n / N)
T = np.cos(np.arccos(xx) @ n.T)
</code></pre>
<p>这里<code>n.T</code>表示n的转置</p>