我怎样才能访问这个matlab矩阵元素?

时间:2012-03-19 23:55:08

标签: matlab fft

这是一组点的傅里叶描述符

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所以我可以对它进行规范化!

2 个答案:

答案 0 :(得分:1)

你有一个复数的数组,你想要做的是访问每个数字的实部和虚部。

r = real(a);
i = imag(a);

将导致ri分别包含描述符的实部和虚部。

要了解abs(a(1))获得“没有任何意义”的答案的原因,请按this link

答案 1 :(得分:1)

您的数据类型看起来令人困惑,因为a(1,1)不应该返回数字的虚部...如果值只是复数,则数组应该只是1维。但是尝试在数组元素上使用real()imag()函数,它们将分别返回实部和虚部。您可能想要考虑使用不同的数据结构,因为Matlab可以很好地处理常规复杂值,在这种情况下,只需使用abs()就可以给出数字的模数。