Una pregunta que suele surgir a la hora de trabajar con vectores o matrices es cuál es el número máximo de elementos que puedo guardar. Un valor que depende de la memoria libre. No la memoria total del sistema. En Matlab existe la función memory() con la que es posible obtener la memoria libre, aunque solo en Windows. Función que se puede emplear para calcular cuál es el número máximo de elementos en Matlab que se pueden guardar en memoria.
memory() de MatlabAl escribir la función memory en una sesión de Matlab obtendremos una respuesta como la siguiente:
>> memory() Maximum possible array: 12815 MB (1.344e+10 bytes) * Memory available for all arrays: 12815 MB (1.344e+10 bytes) * Memory used by MATLAB: 1156 MB (1.212e+09 bytes) Physical Memory (RAM): 8192 MB (8.589e+09 bytes) * Limited by System Memory (physical + swap file) available.
En la que se puede ver la memoria máxima que hay disponible para un array, la memoria disponible para todos los arrays, la memoria usada actualmente por el Matlab y la memoria física total disponible. Si queremos saber cuál es el número máximo de elementos que podemos guardar en un vector nos debemos fijar en el primer número y dividirlo por el tamaño de un elemento. En el caso de número reales el tamaño es 8.
Los valores que se han obtenido por pantalla se pueden cargar en una variable. Variable que contendrá una estructura cuya propiedad MaxPossibleArrayBytes es la que nos interesa. Así, se puede usar el siguiente código para ver el número máximo de elementos.
bytes = memory(); max_num = floor(bytes.MaxPossibleArrayBytes/8);
En el ejemplo de arriba el número máximo de elementos que se pueden cargar en un único vector son aproximadamente 1.700 millones. Este valor es una cota superior, por lo que es recomendable no intentar llegar a ese límite.
Si queremos saber cuánta memoria nos queda en nuestra sesión de Matlab este truco nos puede ayudar. Además de indicarnos el tamaño aproximado de las matrices que podemos cargar.
Imagen de Theodor Moise en Pixabay
tslane es la plantilla que uso como punto de partida para mis librerías TypeScript, nacida…
En los artículos anteriores de esta serie vimos la teoría detrás del credit scoring: qué…
expresslanets es la plantilla de API REST con Express y TypeScript que empezó como una…
En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste…
Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…
Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…
This website uses cookies.