2011-09-07 18 views
6

可能性の重複:
MATLAB: maximum pre-allocated size?行列のサイズ制限

MATLABで行列を作成する上でのサイズ制限はありますか?もしそうなら、どこでこの情報を見つけることができますか?

+0

制限には、(1)アレイに許容される要素の最大数、ハード制限、および単一アレイで使用可能な(2)バイトの2つがあります。これらの数字は非常に異なっています。詳細については、他の質問と[この回答](http://stackoverflow.com/a/28907084/2778484)を参照してください。 – chappjc

答えて

5

メモリは、MATLABに限定されているコマンドを使用して、MATLABでこれを検査し、オペレーティング・システムによってそれが利用できるようにすることができます。行列は連続した空間としてメモリに格納されるため、8GBのメモリを占有する行列がある場合は、メモリに8GBの大きなチャンクが1つ必要です。

memoryコマンドを使用して、利用可能なメモリに関する詳細な統計情報(単一のマトリックスで使用可能な連続メモリの量など)を指定できます。例えば:

> memory 

Maximum possible array:   677 MB (7.101e+008 bytes) * 
Memory available for all arrays: 1601 MB (1.679e+009 bytes) ** 
Memory used by MATLAB:   446 MB (4.681e+008 bytes) 
Physical Memory (RAM):   3327 MB (3.489e+009 bytes) 

    * Limited by contiguous virtual address space available. 
    ** Limited by virtual address space available. 

Maximum possible array値は、あなたは、単に各配列要素によって必要とされるバイト数で除算に相当する配列のサイズを計算します。 memoryドキュメントから:

最大可能なアレイ

最大可能なアレイは、最大の連続空きメモリブロックのサイズです。したがって、MATLABがこの時点で作成できる最大の単一配列の上限です。この数は、配列クラスのバイト数による除算を表し、どのように多くの配列要素を参照する

* The largest contiguous memory block found in the MATLAB virtual address space 
* The total available system memory 

MATLABは、以下の2つの値の小さい方からこの数を導出します。たとえば、倍精度配列の場合は、8で割ります。MATLABが作成できる実際の要素数は、常にこの数よりも少なくなります。

また、Out of Memoryエラーhereを避けるための詳細なドキュメントも提供しています。

1

はい、使用可能なRAMの量によって制限されます。あなただけの(仮想メモリを含む)メモリの量によって

feature('memstats') 
関連する問題