2017-03-27 6 views
0

code複製を変更すると元の変数が変わるのはなぜですか?

私はMATLABの背景を持つpythonの新人です。

FEMを使用して1Dバーの問題を解決するコードを作成しようとしています。私はグローバル剛性行列を含む変数kkを作成し、skkという複製を作成するので、節点変位を編集して解くことができます。しかし、私がskkを変更するたびに、kkも変更されていることを認識しています。 kkはnumpyのndarray変数です。

変数の複製を作成し、元の変数に影響を与えずに変更/編集するにはどうすればよいですか?

+1

numpyの配列も含まれる全ての*関連*質問 –

+1

十分なコード内のコードが作成する質問釈明ニーズを入れて、コードのポストの写真をいけないしてください、変更可能です。**に質問自体**。補足的な情報のためには、オフサイトのリンクは問題ありませんが、質問(または回答)は、それがなければ独立していなければなりません。 –

+1

と言いましたが、これは他のすべてのPythonの型やリストなどの振る舞いと同じ理由で、同じ理由からです。 –

答えて

0

これを試してみてください。

import copy 
skk=copy.deepcopy(kk) 
+0

'numpy'配列では' deepcopy'は必要ありません。 'np.copy(arr)'または 'arr.copy()'で十分です。 – hpaulj

+0

このコードスニペットは歓迎されていますが、いくつかの助けを与えるかもしれませんが、* how *と* Why *がこれを解決する(説明があれば大幅に改善されます)(// meta.stackexchange.com/q/114762)問題。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

+0

Windchillに感謝します。それは役に立ちました。 –

関連する問題