Python MATLAB中使用括号、分号和单引号表示矩阵

Python MATLAB中使用括号、分号和单引号表示矩阵,python,matlab,numpy,matrix,Python,Matlab,Numpy,Matrix,我在MATLAB中有一段代码: scaling = 1; rho = scaling * (0:1 / (int_len / 2):1); rho = [rho'; rho(end - 1:-1:2)']; 实际上我必须把它翻译成Python。我不懂MATLAB,也不知道这段代码在做什么。在这种情况下,int_len的值对我来说并不重要,它是前两个值的乘积 据我所知,在第二行中,rho将是从0到1的一个和数组,步长为1/(int_len/2)。(假设该步骤的结果为0.2,我将使用[0,0.2,

我在MATLAB中有一段代码:

scaling = 1;
rho = scaling * (0:1 / (int_len / 2):1);
rho = [rho'; rho(end - 1:-1:2)'];
实际上我必须把它翻译成Python。我不懂MATLAB,也不知道这段代码在做什么。在这种情况下,int_len的值对我来说并不重要,它是前两个值的乘积

据我所知,在第二行中,rho将是从0到1的一个和数组,步长为1/(int_len/2)。(假设该步骤的结果为0.2,我将使用
[0,0.2,0.4,0.6,0.8,1]


但是第三行,我有点困惑。创建二维矩阵是在rho中添加一行吗?我必须把它翻译成Python,实际上我还在学习Python和Numpy。因此,如果我真的要添加一个新行,只需使用numpy.vstack()或者有其他方法可以做到这一点吗?

您对第二行的解释是正确的。在第三行中,1-by-N行向量
rho
首先与
'
进行转置(注意:这应该是),以创建一个N-by-1列向量。这是(使用
[…;…]
)由
rho
创建的另一个列向量,从小于的一个反向到第二个元素,并用
'
将其转置

简而言之,它创建一个列向量,其值为
rho
,后跟反向值(不计算端点)。对于示例数据,
rho
的结果如下:

rho = [0; 0.2; 0.4; 0.6; 0.8; 1; 0.8; 0.6; 0.4; 0.2]

仅供参考:该代码是免费的。对于像这样的基本Matlab代码,倍频程是很棒的。实际上,测试其他东西也是个好主意!谢谢非常感谢。现在代码变得有意义了。为了让我明白,为什么转置应该是‘而不是’?我问这个是因为实际上在这个MATLAB代码中我已经看到了很多。然后是其他操作,例如A.*B或A./B。这到底意味着什么?@barbalghul:
是运算符,它将转置矩阵或向量,但保持内容不变<“代码>”是运算符。如果矩阵或向量不包含复数元素,则这两个运算符给出相同的结果,但如果存在复数元素,则它们给出不同的结果。为清楚起见,矩阵或向量的重塑只能使用
。默认情况下使用
是一种糟糕的做法,但大多数情况下都是这样。