Question

Je pense à écrire les données dans un fichier. Quelqu'un at-il un exemple de la façon d'écrire une grande quantité de données dans un fichier?

Edit: La plupart des éléments dans la matrice sont des zéros, d'autres sont uint32. Je suppose que le plus simple save() et load() travailleraient, comme @Jonas suggéré.

Était-ce utile?

La solution

Je suppose que personne a vu l'édition sur les zéros:)

Si elles sont la plupart du temps des zéros, vous devez convertir votre matrice à sa représentation clairsemée et puis enregistrez-le. Vous pouvez le faire avec la fonction clairsemée .

code

z = zeros(10000,10000);
z(123,456) = 1;
whos z
z = sparse(z);
whos z

Sortie

Name          Size                   Bytes  Class     Attributes

  z         10000x10000            800000000  double  

Name          Size               Bytes  Class     Attributes

  z         10000x10000            40016  double    sparse    

Je ne pense pas que la mise en œuvre clairsemée est conçu pour gérer uint32.

Autres conseils

Si vous êtes intéressés à garder la taille du fichier de données aussi faible que possible, voici quelques suggestions:

Comment les données sont générées? Comment avez-vous besoin d'accéder aux données?

Si je calcule bien, la variable est inférieure à 200 Mo si elle est tout double. Ainsi, vous pouvez facilement enregistrer et charger en un seul fichier .mat si vous devez y accéder à partir Matlab seulement.

%# create data
data = zeros(16,2^20);

%# save data
save('myFile.mat','data');

%# clear data to test everything works
clear data

%# load data
load('myFile.mat')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top