October 6th, 2003, 2:47 pm
Joseph,In addition to all of the comments above, even though your application may, in theory, be able to use 2Gb of memory (the theoretical limit for Matlab under Win32) there are a couple of other constraints to remember: first, ML itself takes some resources, which can be reduced by launching matlab with the -nojvm option, as suggested by richg, which will save you about 80-100MB, but second, ML requires that variables be stored in contiguous memory, so in practice, even if you had 2gb of RAM, you'd have a tough time getting a 1.7 or 1.8 GB variable created.Most of these constraints are not necessarily ML-specific. You will encounter great difficulty utilizing a matrix with the number of elements of the order 10^8 on a PC. Certain software is written specifically to handle very large datasets, such as SAS, which accomplishes it by keeping large datasets on the disk.Depending on what you want to do with it, you can, however, achieve the same thing in Matlab by reading in your data set, breaking it up into smaller submatrices & storing it as .MAT files on the disk. Then, for your matrix operations, just perform treat the files as the elements of a partitioned matrix. It is certainly a bit more tedious, but it can be made pretty straightforward with some creative use of higher data types (cell arrays, etc) and overloaded operators.Matt.