擅长:python、mysql、java
<p>有点晚了,但是我想提供一个在python中有等价的<code>bsxfun</code>和<code>repmat</code>的例子。这是我刚刚从Matlab转换到PythonNumpy的一点代码:</p>
<p><strong>Matlab:</strong></p>
<pre><code>x =
-2
-1
0
1
2
n =
2
M = repmat(x,1,n+1)
M =
-2 -2 -2
-1 -1 -1
0 0 0
1 1 1
2 2 2
M = bsxfun(@power,M,0:n)
M =
1 -2 4
1 -1 1
1 0 0
1 1 1
1 2 4
</code></pre>
<p><strong>在Python中等效:</p>
<pre><code>In [8]: x
Out[8]:
array([[-2],
[-1],
[ 0],
[ 1],
[ 2]])
In [9]: n=2
In [11]: M = np.tile(x, (1, n + 1))
In [12]: M
Out[12]:
array([[-2, -2, -2],
[-1, -1, -1],
[ 0, 0, 0],
[ 1, 1, 1],
[ 2, 2, 2]])
In [13]: M = np.apply_along_axis(pow, 1, M, range(n + 1))
In [14]: M
Out[14]:
array([[ 1, -2, 4],
[ 1, -1, 1],
[ 1, 0, 0],
[ 1, 1, 1],
[ 1, 2, 4]])
</code></pre>