在 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 中,默认数组是二维的)。
我刚从 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 中,默认数组是二维的)。