Effacer les filtres
Effacer les filtres

行列の操作において、​行方向優先と列方向優​先のどちらが速いです​か?

40 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 3 Avr 2019
コロンを使用して以下のような行列の操作をしています。
 
A(i, :)
 
ループ内で行列 A内のi番目の行のデータを集めているのですが、ループの回数を増やした際にさらに高速に処理をしたいと思います。
 
 

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 17 Avr 2024
Modifié(e) : MathWorks Support Team le 17 Avr 2024
2次元またはそれ以上の行列の操作を行う場合、一般的には列方向で行列の要素にアクセスするほうが高速です。
これは、一般的なPCでは例えば行列データの参照など、メモリアクセスの際には高速化のためにキャッシュを使用していますが、MATLABでは行列データを列方向でメモリにストアするため、列方向で行列の要素にアクセスするほうが、キャッシュの効果を得ることができるためです。
 
以下のURLの「Store and Access Data in Columns」の部分もご参考ください。
一般的なPC環境ではCode segment 2のスクリプトのほうが速くなります。これは、内側のfor文で、rを単調増加させる方向(列方向でのアクセス)になっているためです。 
 
 

Plus de réponses (0)

Catégories

En savoir plus sur table dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Produits


Version

R2008a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!