【发布时间】:2025-12-05 01:50:02
【问题描述】:
如何使用 NumPy 编写以下 MATLAB 代码?
A = zeros(5, 100);
x = ones(5,1);
A(:,1) = x;
分配给行似乎很容易,但我找不到将数组分配给另一个数组的列的示例。
【问题讨论】:
如何使用 NumPy 编写以下 MATLAB 代码?
A = zeros(5, 100);
x = ones(5,1);
A(:,1) = x;
分配给行似乎很容易,但我找不到将数组分配给另一个数组的列的示例。
【问题讨论】:
使用a[:,1] = x[:,0]。您需要x[:,0] 来选择x 的列作为单个numpy 数组。如果您可以选择如何格式化x,最好不要一开始就将其设为二维数组,而只是一个常规(行)数组:
>>> a
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> x = numpy.ones(5)
>>> x
array([ 1., 1., 1., 1., 1.])
>>> a[:,1] = x
>>> a
array([[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.]])
【讨论】:
a[:,1] 表示第 1 列的所有元素。参见 numpy Basic Slicing and Indexing。
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x
【讨论】: