Mémoire insuffisante sur MATLAB

J’essaie de lancer un script sur matlab_2011a, qui calcule les mêmes moyennes pour une climatologie de 50 ans. Lorsque j’ai commencé à exécuter le script pendant toutes les années, cela a bien fonctionné jusqu’à la vingtième itération, puis le message suivant est apparu:

Out of memory. Type HELP MEMORY for your options. 

Ensuite, j’ai utilisé clear v1 v2 v3 ... pour effacer toutes les variables de la fonction. J’ai aussi utilisé clear train parce que je l’ai vu dans un autre forum. ), et le résultat est le même message, mais curieusement, parfois, il dure un an, puis s’arrête.

Des idées sur la résolution de ce problème? Que dois-je nettoyer pour fonctionner correctement? (dans cette version de matlab, il n’y a pas de mémoire de commande qui pourrait peut-être m’aider).

MODIFIER

Solution: il y avait une variable trop grande, la sauvegarde des résultats empêchait l’erreur de mémoire insuffisante.

Je ne suis pas un utilisateur assidu de MATLAB, mais puis-je vous suggérer d’essayer:

 File > Preferences > General > Java Heap Memory. 

Vous pouvez ensuite augmenter la quantité de mémoire au-delà de la valeur par défaut de 196 Mo. J’espère que cela t’aides.

La gestion de la mémoire est un problème de longue date pour Matlab. La cause la plus probable de votre out of memory error est une fuite de mémoire. Des memory leaks peuvent être détectées, mais leur recherche est techniquement difficile et prend beaucoup de temps.

Pour libérer complètement la mémoire, Matlab doit être redémarré. S’il existe un moyen de sauvegarder les résultats après le traitement de certaines données, sauvegardez-les et redémarrez Matlab. Rechargez les données et traitez un autre bloc de données. Répétez l’opération jusqu’à ce que toutes les données soient traitées. La quantité de données à traiter devrait être inférieure à 20 ans.

Ceci est loin d’être élégant et dépend de la possibilité de sauvegarder et de recharger les données. De plus, je suppose que la taille des données n’est pas le problème.

Essayez ceci, ça marche bien pour moi.

  • Allez dans Accueil -> Icône Préférence -> Général -> Mémoire de tas Java -> Allouez la taille de mémoire souhaitée
  • Dans la fenêtre Préférences, accédez à “Espace de travail” (en dehors du niveau de mémoire en tas Java) -> Voir “Limite de taille du tableau Matlab”, cochez la case “Limiter la taille maximale du tableau à un pourcentage de la RAM”. Parce que vous voulez étendre la mémoire pour que nous n’ayons pas besoin de cette fonctionnalité.
  • Terminé.