L'erreur est inévitable ici. Tout d'abord, il est nécessaire de comprendre comment Matlab gère la mémoire
Dans ton cas particulier, lorsque tu utilises :
Code:
IM=fread(fid,[21601,10801]);
Matlab retourne IM comme une matrice de type double (8 octets) soit :
21601*10801*8/1024/1024/1024 = 1.7 Go :mur:
Dans un premier temps, si tu connais le type des données, par exemple uint8 (1 octet), tu peux faire ceci :
Code:
1 2 3
| IM=fread(fid,[21601,10801],'uint8=>uint8');
%ou
IM=fread(fid,[21601,10801],'*uint8'); |
ce qui retournera IM de type uint8 soit une taille de :
21601*10801/1024/1024 = 222 Mo :bravo: