![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
naim2009
Est-ce qu'il s'agit d'une limitation de ma machine (2 GO de Ram) ou une limitation de MATLAB?
Tu semble travaillé sur une machine 32 bits...
La mémoire qu'un programme peut utiliser est donc théoriquement limitée à 2^32-1 soit environ 4Go. En pratique, cette quantité est réduite de 1/3 voir de moitié. Et en pratique encore plus pratique (
), cette quantité est encore diminuée un peu (faut bien de la place pour faire fonctionner MATLAB en plus de ton programme
)
Donc toi, a priori, tu souhaites stocker une matrice 36000x36000 avec des valeurs de classe Double (64bits soit 8 octets par valeur).
La quantité de mémoire nécessaire serait donc :
36000x36000x8/1024/1024/1024 = 9 Go (environ)
Donc soit tu diminues la taille de ton problème, soit tu utilise une classe de variable moins gourmande en mémoire, soit tu achète une machine 64 bits ![:aie:](https://www.developpez.net/forums/images/smilies/aie.gif)
Dans ton cas précis, les images peuvent souvent être stockées avec des valeurs positives ou nulles de classe uint8 ou uint16
Ce qui donnerait en quantité de mémoire nécessaire :
En uint16 : 36000x36000x2/1024/1024/1024 = 2.5 Go (environ)
En uint8 : 36000x36000x1/1024/1024/1024 = 1.2 Go (environ)
Ce serait déjà bien mieux, non ?
Partager