你好这个问题可能看起来很愚蠢,但我对任何编程都不熟悉。我刚刚对数据进行了傅立叶变换(使用提供给我的子程序)并得到了复杂格式的值,如下所示:
( - 1.6391770E-08,-0.3750000) (1.6391770E-08,0.3750000) ..............等
我将这些格式保存在dat文件中。现在我需要计算这个数据的相位角,我试图使用'atan2(y,x)'内在函数,但它需要分别作为x和y的实数和虚数据。我不知道如何从上面的复杂格式中提取这些x和y。我试图使用开放和读取功能,但它没有工作,因为在dat文件中的数据之前和之后有括号。我错过了什么吗?我需要找出fft数据的阶段。如果我的问题含糊不清,请提前感谢您的帮助和对不起,如果是的话,我会尽力说清楚。
答案 0 :(得分:3)
目前还不完全清楚你的问题是什么,或者你有几个问题。如果您有一个名为z
的复杂变量,那么您可以使用
atan2
atan2(aimag(z),real(z))
函数real
和aimag
提取复数的组件。如果您正在处理非默认类型,那么这些函数也可以理解类型,因此如果real(z,real64)
是类型参数,real64
之类的调用将提取{{1}的实际组件} z
种。
请注意,这些函数都是real64
,这意味着它们可以应用于数组的每个元素并返回一个元素数组;所以打电话,如
elemental
将返回与real(z_array)
形状相同的实数数组。
我认为您应该能够直接从文件中读取复杂值,然后将其分解为z_array
的调用。