Exportation de données depuis MATLAB : formats de fichiers et techniques
L'exportation de données (ou sortie) dans MATLAB signifie écrire dans des fichiers. MATLAB vous permet d'utiliser vos données dans une autre application qui lit des fichiers ASCII. Pour cela, MATLAB fournit plusieurs options d'exportation de données.
Vous pouvez créer les types de fichiers suivants :
Fichier de données ASCII délimité rectangulaire à partir d'un tableau.
Fichier journal (diary) des frappes au clavier et du texte de sortie résultant.
Fichier ASCII spécialisé en utilisant des fonctions de bas niveau telles que fprintf.
Fichier MEX pour accéder à votre routine C/C++ ou Fortran qui écrit dans un format de fichier texte particulier.
En plus de cela, vous pouvez également exporter des données vers des feuilles de calcul.
Il y a deux façons d'exporter un tableau numérique comme fichier de données ASCII délimité :
En utilisant la fonction save et en spécifiant le qualificateur -ascii
En utilisant la fonction dlmwrite
Syntaxe pour utiliser la fonction save :
save my_data.out num_array -ascii
où my_data.out est le fichier de données ASCII délimité créé, num_array est un tableau numérique et -ascii est le spécificateur.
Syntaxe pour utiliser la fonction dlmwrite :
dlmwrite('my_data.out', num_array, 'dlm_char')
où my_data.out est le fichier de données ASCII délimité créé, num_array est un tableau numérique et dlm_char est le caractère délimiteur.
Exemple
L'exemple suivant démontre le concept. Créez un fichier script et saisissez le code suivant :
num_array = [1 2 3 4; 4 5 6 7; 7 8 9 0]; save array_data1.out num_array -ascii; type array_data1.out dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00 1 2 3 4 4 5 6 7 7 8 9 0
Notez que la commande save -ascii et la fonction dlmwrite ne fonctionnent pas avec les tableaux de cellules en entrée. Pour créer un fichier ASCII délimité à partir du contenu d'un tableau de cellules, vous pouvez :
Soit convertir le tableau de cellules en matrice en utilisant la fonction cell2mat
Soit exporter le tableau de cellules en utilisant des fonctions d'E/S de fichiers de bas niveau.
Si vous utilisez la fonction save pour écrire un tableau de caractères dans un fichier ASCII, elle écrit l'équivalent ASCII des caractères dans le fichier.
Par exemple, écrivons le mot 'hello' dans un fichier :
h = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB exécute les instructions ci-dessus et affiche le résultat suivant, qui correspond aux caractères de la chaîne 'hello' en format ASCII 8 chiffres.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Écriture dans les fichiers journal (diary)
Les fichiers journal sont des journaux d'activité de votre session MATLAB. La fonction diary crée une copie exacte de votre session dans un fichier disque, à l'exclusion des graphiques.
Pour activer la fonction diary, tapez :
diary
Optionnellement, vous pouvez donner le nom du fichier journal, par exemple :
diary logdata.out
Pour désactiver la fonction diary :
diary off
Vous pouvez ouvrir le fichier journal dans un éditeur de texte.
Exportation de données vers des fichiers de données textuelles avec E/S de bas niveau
Jusqu'à présent, nous avons exporté des tableaux numériques. Cependant, vous pouvez avoir besoin de créer d'autres fichiers texte, incluant des combinaisons de données numériques et de caractères, des fichiers de sortie non rectangulaires, ou des fichiers avec des schémas d'encodage non ASCII. Pour ces besoins, MATLAB fournit la fonction de bas niveau fprintf.
Comme pour les activités d'E/S de fichiers de bas niveau, avant d'exporter, vous devez ouvrir ou créer un fichier avec la fonction fopen et obtenir l'identifiant de fichier. Par défaut, fopen ouvre un fichier en lecture seule. Vous devez spécifier la permission d'écriture ou d'ajout, comme 'w' ou 'a'.
Après le traitement du fichier, vous devez le fermer avec la fonction fclose(fid).
L'exemple suivant démontre le concept :
Exemple
Créez un fichier script et saisissez le code suivant :
% créer une matrice y, avec deux lignes x = 0:10:100; y = [x; log(x)]; % ouvrir un fichier pour écriture fid = fopen('logtable.txt', 'w'); % En-tête du tableau fprintf(fid, 'Log Function\n\n'); % afficher les valeurs dans l'ordre des colonnes % deux valeurs apparaissent sur chaque ligne du fichier fprintf(fid, '%f %f\n', y); fclose(fid); % afficher le fichier créé type logtable.txt
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 30.000000 3.401197 40.000000 3.688879 50.000000 3.912023 60.000000 4.094345 70.000000 4.248495 80.000000 4.382027 90.000000 4.499810 100.000000 4.605170
MATLAB
- Azure File Storage expliqué : guide débutant pour un stockage cloud sécurisé et évolutif
- Types de données MATLAB : Guide complet
- Maîtriser les opérateurs MATLAB : Arithmétiques, Logiques, Bitwise et Ensemblistes
- Maîtriser les matrices MATLAB : Création, indexation et manipulation
- MATLAB : Maîtriser les tableaux multidimensionnels et spéciaux
- Maîtriser la notation deux-points de MATLAB : créer des vecteurs et itérer efficacement
- MATLAB - Nombres : Types, stockage et conversion
- Maîtriser les chaînes de caractères MATLAB : création et utilisation faciles
- Fonctions MATLAB : définition, espace de travail, entrées et sorties