2012-03-19 2 views
0

это дескриптор Фурье для множества точекКак я могу получить доступ к этому матричному элементу матрицы?

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 самостоятельно, так что я могу нормализовать его!

ответ

1

У вас есть массив комплексных чисел, и вы хотите получить доступ к действительной и мнимой части каждого номера.

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

приведет к r и i, содержащий действительные и мнимые части вашего дескриптора соответственно.

Чтобы понять причину, вы получите ответ, который «не имеет никакого смысла» от abs(a(1)), следует за this link.

+0

Большое спасибо, это работает, спасибо, что вы меня спасли! –

1

Ваш тип данных выглядит запутанным, потому что a(1,1) не должен возвращать воображаемую часть числа ... ваш массив должен быть только 1-мерным, если значения являются просто сложными числами. Но попробуйте использовать функции real() и imag() на элементах вашего массива, которые возвратят соответственно действительную и мнимую части. Возможно, вы захотите рассмотреть возможность использования другой структуры данных, потому что Matlab может обрабатывать обычные комплексные значения просто отлично, и в этом случае просто используя должен дать модуль этого числа.

Смежные вопросы