我有一个大小为y
的向量4 x 1
,还有另一个大小为y2
的向量4 x 1
,我将向量y
和实数和虚数连接在一起y2
的各个部分,并得到两个具有相同维但形状不同的不同矢量! 。 。我不知道两者之间有什么区别。
例如,这是第一个代码:
import numpy as np
h = np.random.randn(4, 4) + 1j * np.random.randn(4, 4)
x = np.array([[1 + 1j], [0 + 0j], [0 + 0j], [0 + 0j]])
y = h @ x
n = 3
y2 = np.zeros((1, 4), dtype=np.complex)
for ii in range(n):
y2[: , ii] = np.linalg.pinv(h[: , ii].reshape(-1,1)).dot(y)
y_con = np.concatenate((np.real(y2),np.imag(y2)))
y_m = np.absolute(y)
Y3 = np.concatenate([y_con.reshape(-1,1), y_m])
因此,在这种情况下,当我检查其形状时,输出Y3
是尺寸为12 x 1
的向量,它是(12,1)
现在,让我们以另一种方式运行代码:
import numpy as np
h = np.random.randn(4, 4) + 1j * np.random.randn(4, 4)
x = np.array([[1 + 1j], [0 + 0j], [0 + 0j], [0 + 0j]])
y = h @ x
y2 = np.linalg.pinv(h).dot(y)
y_con = np.concatenate((np.real(y2),np.imag(y2)))
y_m = np.absolute(y)
Y3 = np.concatenate([y_con, y_m])
在这种情况下,Y3
是尺寸为12,
的矢量,当我检查其形状时,它就是(12,)
首先,我不知道两个向量在形状上有什么区别? ..并且我要使用第一个代码来获取尺寸为(12,)而不是(12,1)的代码?我怎样才能做到这一点 ?
答案 0 :(得分:2)
您创建了一个二维的“列”向量。只需在第一个代码的最后一行的末尾添加.flatten()
,即可创建一维“行”向量。