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