2
A = A + B;
A及びB beeingて行列を書き込み、MATLABは、これは、「インプレース」、すなわちAの要素を変更し実行する、または新しいメモリは、結果を格納するために割り当てられるだろうか?もしそうなら、どうすればそれを避けることができますか?
かしら理由は、例えば、一方が
A = A + B + A^2;
を書き込む場合は、元のデータが複数回アクセスする必要があり、従って、単に最初の添加によって上書きされないことです。
ありがとうございます。
「最初の追加で上書きすることはできません」とはどういう意味ですか?あなたは精緻化できますか? –
'A + B'は要素単位の操作であるため、MATLABジャストインタイムエンジンは結果を保持するために' A'を再利用できます。第2の場合、「A^2」は行列乗算であり、単一の要素を計算するためには、「A」の行と列全体にアクセスする必要がある。基本的には元の 'A'にアクセスする必要があります。つまり、すべての処理を期待できません。一般に、MATLABが意図的に文書化されていないので、このレベルでMATLABが何をしているのかを推測するのは難しいです(一部ではリリースによって変更される可能性がありますが、低レベルの実装の詳細では言語の精神に反します)。 – John
A = A + B + A.^2の意味ですか? – Marc