这是一组点的傅里叶描述符
a =
-3.4173 - 7.1634i
7.4589 + 0.1321i
3.1190 - 2.1870i
-7.1979 + 0.2863i
5.9594 + 0.8209i
-5.4295 -15.7931i
-1.0957 + 3.7485i
0.2657 - 4.1459i
7.4644 - 0.9546i
我需要对每一对求和,但当我使用(1)或(1,1)时它会产生-3.4173 - 7.1634i 当我使用abs(a(1))或abs(a(1,1))时它也会产生7.9367,这对我来说没有意义!
我需要的是如何单独访问任何一对的每个元素,所以我单独得到-3.4173并且 - 单独使用7.1634i所以我可以对它进行规范化!
答案 0 :(得分:1)
你有一个复数的数组,你想要做的是访问每个数字的实部和虚部。
r = real(a);
i = imag(a);
将导致r
和i
分别包含描述符的实部和虚部。
要了解abs(a(1))
获得“没有任何意义”的答案的原因,请按this link。
答案 1 :(得分:1)
您的数据类型看起来令人困惑,因为a(1,1)
不应该返回数字的虚部...如果值只是复数,则数组应该只是1维。但是尝试在数组元素上使用real()
和imag()
函数,它们将分别返回实部和虚部。您可能想要考虑使用不同的数据结构,因为Matlab可以很好地处理常规复杂值,在这种情况下,只需使用abs()
就可以给出数字的模数。