Bonjour,
J'utilise Matlab 2008b et je cherche à écrire le contenu de deux tableaux dans un fichier binaire. L'un (signalbin) contenant des float et l'autre (marker) deux bits.
pour cela j'utilise le code suivant :
Cela produit le fichier désiré mais prend longtemps vu la taille des tableaux (chacun contient au minimum 64000 valeurs).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 NomFic = 'test'; File_str = (['.\bin' NomFic '.bin']); fid = fopen(File_str,'wb'); % opens file with the assigned name for l=1:length(signalbin) fwrite(fid,signalbin(l),'float32','l'); % little endian fwrite(fid,marker(l),'ubit2','l'); % Little endian end
J'aimerais donc réduire le temps d'enregistrement : j'avais donc pensé à grouper les deux tableaux dans une matrice et écrire la matrice créée.
Par exemple :
Le problème est que je ne vois pas comment lui indiquer la différence de précision pour les deux parties de la matrice (celle avec les float et l'autre avec les deux bits).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 signalplusmarker = [signalbin;marker]; NomFic = 'test'; File_str = (['.\codes\wfm\' NomFic '.wfm']); fid = fopen(File_str,'wb'); % opens file with the assigned name fwrite(fid,signalplusmarker,'float32','l');
J'avais également pensé à faire ce passage avec un fichier mex en C, pour accélérer le processus, mais je ne maitrise pas bien encore comment faire.
Merci de votre aide.
Partager