2011-02-16 7 views
7

En una versión anterior de MATLAB (7.6), solía obtener OutOfMemoryErrors que me pareció un poco molesto. Pero desde que actualicé a 7.11, por alguna razón ya no arroja los errores.MATLAB no arroja OutOfMemoryExceptions o errores de tamaño máximo variable

Esto significa que cuando intento accidentalmente hacer una variable demasiado grande, el intérprete de MATLAB intentará crear la variable y detener mi máquina.

Me gustaría que se lanzaran estos errores, para poder salir con elegancia o depurar mi código, pero no puedo encontrar la solución en ningún lado.

Posiblemente detalles útiles: Estoy usando OSX 10.5 en una máquina de 64 bits, con 4 GB de RAM.

en Matlab 7.6:

$ rand(50000); 
??? Error using ==> rand 
Maximum variable size allowed by the program is exceeded. 

En MATLAB 7.11:

$ rand(50000); 
(hang) 
+0

Buena pregunta. Hubris siempre parece atraparme y termino creando enormes matrices que colapsan matlab. – Tim

+0

7.6 -> 7.11 parece ser una versión anterior no una actualización? – albanx

+0

@albanx: 6-> 11 es una actualización. No es 7.1.1 – Jonas

Respuesta

2

Entre la versión 7.6 y 7.11, la versión Macintosh de MATLAB pasó de ser una aplicación de 32 bits a una de 64 bits. Entonces ahora, en lugar de quedarse sin espacio de direcciones, MATLAB se agita.

+0

Parece ser la respuesta más probable. ¿No creo que haya una manera de suprimir artificialmente la cantidad de espacio de direcciones en MATLAB? –

+0

No está en MATLAB (por lo general, las personas quieren más espacio de direcciones) y desafortunadamente parece que Mac OS X no admite el mecanismo limit/ulimit para limitar la memoria disponible tampoco. – SCFrench

1

Matlab no se cuelga. Es solo paginación, que lleva una eternidad. Intente asignar una matriz grande, abra el Monitor de actividad y vea cómo la "Memoria virtual" crece y crece.

Si reduce el tamaño del archivo de página en su sistema, puede evitarlo.