English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Output dei Dati in MATLAB

Esportazione dati (o output) in MATLAB significa scrivere su file. MATLAB ti permette di utilizzare i tuoi dati in un'applicazione che legge file ASCII. A questo scopo, MATLAB fornisce diverse opzioni di esportazione dati.

Puoi creare i seguenti tipi di file-

  • Array rettangolari, file ASCII delimitati.

  • File di日记(o log)dei tasti premuti e l'output di testo dei risultati.

  • File ASCII专用,使用底层函数(如fprintf)。

  • File MEX per accedere a routine C / C ++ o Fortran scritte in un formato di file di testo specifico.

Oltre a ciò, puoi esportare i dati in un foglio di calcolo.

Ci sono due metodi per esportare un array numerico in un file ASCII delimitato-

  • Usandosavefunzione e specifica-asciilimitatore

  • Usandodlmwritefunzione

La sintassi della funzione save è-

save my_data.out num_array -ascii

tra cui,my_data.outè il file ASCII con separatore creato,num_arrayè un array numerico e  −asciiè il simbolo di notazione.

UsandodlmwriteLa sintassi della funzione è-

dlmwrite('my_data.out', num_array, 'dlm_char')

tra cui,my_data.outè il file ASCII con separatore creato,num_arrayè un array numerico,   dlm_charè il separatore.

Esempio online

Esempio seguente dimostra questo concetto. Crea un file script e inserisci il seguente codice-

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

Quando si esegue il file, viene visualizzato il seguente risultato-

   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

Nota che il comando save -ascii e la funzione dlmwrite non si applicano agli array di cellule in input. Per creare un file ASCII delimitato dal contenuto dell'array di cellule, puoi

  • Usandocell2matLa funzione converte l'array di cellule in una matrice

  • o si utilizzano funzionalità di I/O di file di basso livello per esportare array di unità.

Se si utilizzasaveLa funzione scrive l'array di caratteri in un file ASCII, equivalente alla scrittura ASCII dei caratteri.

Ad esempio, scriviamo la parola "hello" nel file

h = 'hello';
savetextdata.outh -ascii
type textdata.out

MATLAB esegue le seguenti istruzioni e visualizza i seguenti risultati. Questo è la stringa in formato ASCII 8-bit "hello".

1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02

Scrivi nel file di diario

Il file di diario è la cronologia delle attività della tua sessione MATLAB. La funzione di diario può creare una copia precisa della sessione su disco del file, ma non include le immagini.

Per aprire la funzione di diario, inserisci

diary

(Opzionale) Puoi fornire il nome del file di log, ad esempio

diary logdata.out

Chiudi la funzione di diario

diary off

Puoi aprire il file di日记 in un editor di testo.

usando I/O di basso livello per esportare dati in file di dati testuali

Fino ad ora, abbiamo esportato l'array numerico. Ma potresti dover creare altri file di testo, inclusi combinazioni di dati numerici e caratteri, file di output non rettangolari o file con schemi di codifica non ASCII. Per questo, MATLAB fornisce funzionalità di I/O di basso livellofprintffunzione.

Come con le attività di I/O di basso livello, prima di esportare, è necessario utilizzarefopenfunzione per aprire o creare un file e ottenere l'identificatore del file. Di default, fopen apre il file in sola lettura. Dovresti specificare i permessi di scrittura o appendimento, ad esempio "w" o "a".

Dopo aver elaborato il file, è necessario utilizzarefclose(fid)La funzione lo chiude.

Esempi seguenti illustrano il concetto-

Esempio

Crea un file script e inserisci il seguente codice-

%Crea una matrice y con due righe
x = 0:10:100;
y = [x; log(x)];
 
%Apri il file per scrittura
fid = fopen('logtable.txt', 'w');
 
%Titolo della tabella
fprintf(fid, 'Log     Function\n\n');
 
%Stampa i valori in ordine colonna
%Visualizza due valori su ogni riga del file
fprintf(fid, '%f    %f\n', y);
fclose(fid);
%Mostra il file creato
type logtable.txt

Quando si esegue il file, viene visualizzato il seguente risultato-

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