2012-03-19 14 views
0

これは、点の集合のためのフーリエ記述子であるこのmatlabマトリックス要素にはどのようにアクセスできますか?

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 

iは各ペアを合計する必要があるが、私は使用する場合(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は通常の複素数値をうまく扱うことができ、その場合は単純にabs()を使用して数値の法を与えなければならないので、別のデータ構造の使用を検討することもできます。

関連する問題