我正在将 MATLAB 代码转换为 Python Numpy。我指的是这个文档 http://scipy.github.io/old-wiki/pages/NumPy_for_Matlab_Users
下面是两行 MATLAB 代码,
X = A(:,1)';
R = repmat(X(:),1,6);
其中A是二维矩阵
这是我转换后的 python 行
X = A[:, 1].conj().transpose()
R = np.tile(X[:], (1,6))
我有两个疑问,
X = A(:,1)';
- 在这一行中,引号 (') 是否引用.conj().transpose()
<- 这个
X[:]
是X(:)
的等价物还是X.flatten(1)
?
更清楚地说,实际上我正在尝试理解 MATLAB 代码,
X = A(:,1)';
- 在这一行中,引号 (') 是否表示转置?X(:)
- 它在 MATLAB 中意味着什么?
最佳答案
让我们定义一个示例A
:
>> A = [1 2 3; 4 5 6];
'
是 conjugate transpose 。至transpose使用.'
.
>> A(:,1)
ans =
1
4
>> X = A(:,1)'
X =
1 4
(:)
表示 reshape (flatten) into a column vector 。这里的 X = A(:,1)'
已经被展平了,即它是一个 row 向量,所以 X(:)
只是转置它转化为列向量;它与X.'
相同:
>> X(:)
ans =
1
4
>> X.'
ans =
1
4
关于Matlab A( :, 1)' 和 A(:) 的 Python 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402757/