在 python 中创建一个前面为零的列向量

Create a column vector with zeros in the front in python

我刚从 MATLAB 切换到 python,我需要帮助将一段 MATLAB 代码转换为 python。

我有一个 1000 x 4 矩阵,其中 m'th column 中的值代表一个信号。

为简单起见,我将尺寸更改为 5 x 4

m'th column 中的值为 [1,2,3,4,5]

我想 delay 通过 x 样本,如果 x=2 延迟版本将是 [0,0,1,2,3]

它实际上是在前面添加 x zeros 并从后面删除 x values

所以输出是 5x1 column vector.

MATLAB代码为:

[zeros(2,1),signal(1:(end-2),m)];

我写的python代码是:

[np.zeros((2,1)),signal[(length_of_signal-1)-2:,m]]

这似乎不起作用,我也无法弄清楚它有什么问题。 请帮忙。

IIUC,尝试 vstack:

np.random.seed(100)

x = 2
m = 3
a = np.random.randint(1, 5, (5,4))

>>> np.vstack((np.zeros((x, 1)), a[:,3][:len(a)-x][np.newaxis].T))

array([[0.],
       [0.],
       [4.],
       [3.],
       [2.]])

请注意,您需要 np.newaxis,因为一维数组的转置仍然是一维数组(不像在 MATLAB 中,默认数组是二维的)。