MATLAB - Sortie de données
L'exportation (ou 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 propose plusieurs options d'exportation de données.
Vous pouvez créer le type de fichiers suivant -
Fichier de données ASCII rectangulaire et délimité à partir d'un tableau.
Fichier journal (ou journal) des frappes et du texte résultant.
Fichier ASCII spécialisé utilisant des fonctions de bas niveau telles que fprintf.
MEX-file 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 façons d'exporter un tableau numérique sous forme de fichier de données ASCII délimité -
En utilisant le save fonction et en spécifiant la -ascii qualificatif
En utilisant le 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 utiliser le 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 de délimitation.
Exemple
L'exemple suivant illustre le concept. Créez un fichier de script et tapez 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
Veuillez noter 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, convertissez le tableau de cellules en matrice à l'aide du cell2mat fonction
Ou exportez le tableau de cellules à l'aide des fonctions d'E / S de fichier de bas niveau.
Si vous utilisez le save pour écrire un tableau de caractères dans un fichier ASCII, il écrit l'équivalent ASCII des caractères dans le fichier.
Par exemple, écrivons le mot «bonjour» 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 sont les caractères de la chaîne «bonjour» au format ASCII à 8 chiffres.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Écriture dans des fichiers de journal
Les fichiers journaux sont des journaux d'activité de votre session MATLAB. La fonction de 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, par exemple -
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 niveaufprintf fonction.
Comme pour les activités de fichier d'E / S de bas niveau, avant d'exporter, vous devez ouvrir ou créer un fichier avec le fopenfonction et obtenez l'identificateur de fichier. Par défaut, fopen ouvre un fichier pour un accès en lecture seule. Vous devez spécifier l'autorisation d'écrire ou d'ajouter, comme «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 le code suivant -
% 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