2016-05-19 5 views
-1

私は、算術演算K = J/Uに対して複素数U = complex(3 + 1j *( - 20.43))を供給するprogrammを持っています。プロットシステムには算術演算が必要です。プロット部分は、算術演算がプロットを開始するまで一定の信号をプロットします。演算部及び開始変数に一定の信号refeers(開始= 4)複素数の適切なキャスト

開始= 4 K [0] =

コード

VAR3 =((T2-T1)をプロット開始/ C) VAR4 =(1/VAR3)* T1

プロットコード

定数プロットのdiscription

プロット(T [0:VAR3] -T1、K [0:VAR3] * 0 +スタート)

K [0]

を開始しかし、複素数の鋳造がKに適合しません= [ 0] =開始部分。どんなに私が変えるものを私が取得しない: はTypeError:「複雑な」オブジェクト項目の割り当てや ComplexWarningをサポートしていません。本当の破棄に複素数値をキャスト虚部

はどんなアプローチがありますか?

+1

Kの種類は? NumPy配列の場合、dtypeは何ですか? – user2357112

+0

また、それはUを作成するための本当に奇妙な方法です。あなたは 'U = 3-20.43j'または' U = complex(3、-20.43) 'のどちらかを使用する必要があります。 – user2357112

+0

Kの型は Uniboy

答えて

1
>>> x = 1+2j 
>>> x.imag 
2.0 
>>> x = 1+2j 
>>> x.real 
1.0 
>>> x.imag 
2.0 
>>> x[0] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'complex' object is not subscriptable 
>>> x.real = 3 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: readonly attribute 

実数部と虚数部は、インデックス付きアイテムではなく属性によって与えられます。いずれの場合でも、同じオブジェクト内で変更することはできません。可能であれば、多くのプログラムでバグが発生する可能性があるからです。次のように新しい複素数を作成する必要があります。

>>> x 
(1+2j) 
>>> x = 3 + x.imag * 1j 
>>> x 
(3+2j) 
+0

あなたに何をすべきかを教えただけで、 'K ='も 'K [0] 'も動作しません。 –

+0

アドバイスありがとう! @AlexHallしかし、あなたのアドバイスは私に沿って助けていない!今私は新しい価値を使用します.... – Uniboy

+0

それは何が問題なのですか?あなたはあなたの質問に関するすべてをもっと明確にする必要があります。 –

関連する問題