MATLAB - Sortie de données
L'exportation (ou la sortie) de données dans MATLAB signifie écrire dans des fichiers. MATLAB vous permet d'utiliser vos données dans une autre application qui lit les 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 rectangulaire et délimité à partir d'un tableau.
-
Fichier journal (ou journal) des frappes au clavier et de la sortie de texte résultante.
-
Fichier ASCII spécialisé 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 dehors de cela, vous pouvez également exporter des données vers des feuilles de calcul.
Il existe deux manières d'exporter un tableau numérique sous forme de fichier de données ASCII délimité −
-
Utilisation de la sauvegarde fonction et en spécifiant le -ascii qualificatif
-
Utilisation de dlmwrite fonction
La syntaxe pour utiliser la fonction de sauvegarde est −
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 l'utilisation de dlmwrite la fonction est −
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 illustre le concept. Créez un fichier de script et tapez le code suivant −
Démo en directnum_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
Veuillez noter que la commande save -ascii et la fonction dlmwrite ne fonctionnent pas avec des 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, convertissez le tableau de cellules en matrice à l'aide de cell2mat fonction
-
Ou exportez le tableau de cellules à l'aide des fonctions d'E/S de fichier de bas niveau.
Si vous utilisez la sauvegarder 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 −
Démo en directh = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB exécute les instructions ci-dessus et affiche le résultat suivant. qui sont les caractères de la chaîne 'hello' au format ASCII à 8 chiffres.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Écrire dans des fichiers de journal
Les fichiers de journal sont des journaux d'activité de votre session MATLAB. La fonction journal crée une copie exacte de votre session dans un fichier disque, à l'exclusion des graphiques.
Pour activer la fonction agenda, tapez −
diary
En option, vous pouvez donner le nom du fichier journal, disons −
diary logdata.out
Pour désactiver la fonction agenda −
diary off
Vous pouvez ouvrir le fichier journal dans un éditeur de texte.
Exportation de données vers des fichiers de données texte avec des E/S de bas niveau
Jusqu'à présent, nous avons exporté des tableaux numériques. Cependant, vous devrez peut-être créer d'autres fichiers texte, y compris des combinaisons de données numériques et de caractères, des fichiers de sortie non rectangulaires ou des fichiers avec des schémas de codage non ASCII. À ces fins, MATLAB fournit le bas niveau fprintf fonction.
Comme dans les activités de fichier d'E/S de bas niveau, avant d'exporter, vous devez ouvrir ou créer un fichier avec le fopen fonction et obtenir l'identifiant du fichier. Par défaut, fopen ouvre un fichier pour un accès en lecture seule. Vous devez spécifier l'autorisation d'écriture ou d'ajout, telle que 'w' ou 'a'.
Après avoir traité le fichier, vous devez le fermer avec fclose(fid) fonction.
L'exemple suivant illustre le concept −
Exemple
Créez un fichier de script et tapez-y le code suivant −
Démo en direct% create a matrix y, with two rows x = 0:10:100; y = [x; log(x)]; % open a file for writing fid = fopen('logtable.txt', 'w'); % Table Header fprintf(fid, 'Log Function\n\n'); % print values in column order % two values appear on each row of the file fprintf(fid, '%f %f\n', y); fclose(fid); % display the file created 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