我是一个新手编码器(在Python),我已经得到了matlab的代码(我有0 matlab的经验)。我已经能够翻译大部分代码,但我在某个点卡住了。大体上,这段代码的目标是对数据进行傅立叶变换,然后检查结果是否符合某些规则。
我提供了一段代码,直到我感到困惑的那一行
傅立叶变换(我理解这些步骤)
num_rows = length(csvfilename);
Y = fft(csvfilename);
P1 = abs(Y).^2/num_rows;
我不明白下一行代码
P1_vec(1,:) = P1;
P1在直线的右边是什么意思?Matlab中的(1,:)是什么意思
Thank you!:)
我试着看matlab的指导文档,以及从matlab翻译到python的文档,但我没有找到任何东西。
1条答案
按热度按时间a11xaf1n1#
MATLAB并没有真正的1D数组,你最终会得到1xN或Nx 1矩阵。
这意味着你实际上有了在MATLAB中转置“1D”数组的概念。当涉及到这些向量的转置时,大多数切片和向量操作都是故意模糊的,matlab会很高兴地忽略奇异维度,只要它有意义。
正如我们所看到的,MATLAB忽略了RHS是如何形成的。
那么为什么有人会选择
它确保了无论
some_vector
是1 × N还是N × 1矩阵,P_vec总是1 × N(我们通常称之为行向量)我称之为matlab的草率代码(不费心去跟踪转置),在任何支持实际1D数组的语言/库中(如numpy),这个操作都不相关,因为你无论如何都不能转置这样的数组。