Supongo que tienes 2GB de RAM no 2 MB. Ahora, la memoria virtual no sé por que matlab no toma la que uno asigna, toma lo que viene por defecto que no recuerdo ahora el número pero es poco, por que a mi me pasaba igual, en la ayuda del matlab dice que puedes ir empaquetando, y desempaquetando, ahora lo que dices de que no lo puede resolver por pasos, mira bien, normalmente hay forma, me refiero, es por ejm, estás haciendo un ciclo en que generas un vector y vas guardando cada paso, puedes ir guardando los anteriores en archivo y borrar cada vez los datos de memoria o algo así es a lo que me refiero. Tener en memoria a cada vez solo los que se necesitan.
En mi caso, estaba generando una base de datos en simulación para la identificación posterior del sistema en base a redes neuronales, y poder hallar la dinámica inversa, lo que hacía era ir guardando cada grupo al tiempo y leugo lo borraba de memoria