Scrittura di dati nei file di testo
Esportare dati tabellari contenuti in tabelle, array di celle o array numerici dal workspace di MATLAB® in file di testo.
Esportazione di una tabella in un file di testo
È possibile esportare dati tabellari dal workspace di MATLAB® in un file di testo utilizzando la funzione writetable. Creare una tabella di esempio, scrivere la tabella in un file di testo, quindi scrivere la tabella in un file di testo con ulteriori opzioni.
Creare una tabella di esempio T, contenente le variabili Pitch, Shape, Price e Stock.
Pitch = [0.7;0.8;1;1.25;1.5];
Shape = {'Pan';'Round';'Button';'Pan';'Round'};
Price = [10.0;13.59;10.50;12.00;16.69];
Stock = [376;502;465;1091;562];
T = table(Pitch,Shape,Price,Stock)T=5×4 table
Pitch Shape Price Stock
_____ __________ _____ _____
0.7 {'Pan' } 10 376
0.8 {'Round' } 13.59 502
1 {'Button'} 10.5 465
1.25 {'Pan' } 12 1091
1.5 {'Round' } 16.69 562
Esportare la tabella T, in un file di testo denominato tabledata.txt. Visualizzare il contenuto del file. Per impostazione predefinita, writetable scrive i dati separati da virgole e include i nomi delle variabili della tabella come intestazioni delle colonne.
writetable(T,'tabledata.txt'); type tabledata.txt
Pitch,Shape,Price,Stock 0.7,Pan,10,376 0.8,Round,13.59,502 1,Button,10.5,465 1.25,Pan,12,1091 1.5,Round,16.69,562
Creare una tabella T2 che includa i nomi delle righe utilizzando l'argomento della coppia nome-valore RowNames.
rowNames = {'M4';'M5';'M6';'M8';'M10'};
T2 = table(Pitch,Shape,Price,Stock,'RowNames',rowNames)T2=5×4 table
Pitch Shape Price Stock
_____ __________ _____ _____
M4 0.7 {'Pan' } 10 376
M5 0.8 {'Round' } 13.59 502
M6 1 {'Button'} 10.5 465
M8 1.25 {'Pan' } 12 1091
M10 1.5 {'Round' } 16.69 562
Esportare T2 in un file di testo delimitato da tabulazioni denominato tabledata2.txt. Utilizzare l'argomento della coppia nome-valore Delimiter per specificare un delimitatore di tabulazione e l'argomento della coppia nome-valore WriteRowNames per includere i nomi delle righe. Visualizzare il contenuto del file.
writetable(T2,'tabledata2.txt','Delimiter','\t','WriteRowNames',true); type tabledata2.txt
Row Pitch Shape Price Stock M4 0.7 Pan 10 376 M5 0.8 Round 13.59 502 M6 1 Button 10.5 465 M8 1.25 Pan 12 1091 M10 1.5 Round 16.69 562
Esportazione di un array di celle in un file di testo
È possibile esportare un array di celle dal workspace di MATLAB® in un file di testo in uno dei seguenti modi:
Utilizzare la funzione writecell per esportare l'array di celle in un file di testo.
Utilizzare
fprintfper esportare l'array di celle specificando il formato dei dati di output.
Creare un array di celle di esempio C.
C = {'Atkins',32,77.3,'M';'Cheng',30,99.8,'F';'Lam',31,80.2,'M'}C = 3×4 cell array
{'Atkins'} {[32]} {[77.3000]} {'M'}
{'Cheng' } {[30]} {[99.8000]} {'F'}
{'Lam' } {[31]} {[80.2000]} {'M'}
Esportare l'array di celle utilizzando writecell.
writecell(C,'data.dat')Visualizzare il contenuto del file.
type data.datAtkins,32,77.3,M Cheng,30,99.8,F Lam,31,80.2,M
In alternativa, importare l'array di celle utilizzando fprintf. Aprire un file scrivibile denominato celldata.dat. Definire formatSpec utilizzando gli specificatori di formato per descrivere il pattern dei dati nel file. Gli specificatori di formato tipici includono '%s' per un vettore di caratteri, '%d' per un numero intero o '%f' per un numero in virgola mobile. Separare ogni specificatore di formato con uno spazio per indicare un delimitatore di spazio per il file di output. Include un carattere di nuova riga alla fine di ogni riga di dati ('\n').
fileID = fopen('celldata.dat','w'); formatSpec = '%s %d %2.1f %s\n';
Determinare la dimensione di C ed esportare una riga di dati alla volta utilizzando la funzione fprintf. Quindi chiudere il file. fprintf scrive un file delimitato da spazi.
[nrows,ncols] = size(C); for row = 1:nrows fprintf(fileID,formatSpec,C{row,:}); end fclose(fileID);
Visualizzare il contenuto del file.
type celldata.datAtkins 32 77.3 M Cheng 30 99.8 F Lam 31 80.2 M
Esportazione di un array numerico in un file di testo
È possibile esportare un array numerico in un file di testo utilizzando writematrix.
Creare un array numerico A.
A = magic(5)/10
A = 5×5
1.7000 2.4000 0.1000 0.8000 1.5000
2.3000 0.5000 0.7000 1.4000 1.6000
0.4000 0.6000 1.3000 2.0000 2.2000
1.0000 1.2000 1.9000 2.1000 0.3000
1.1000 1.8000 2.5000 0.2000 0.9000
Scrivere l'array numerico in myData.dat e specificare che il delimitatore sia ';'. Quindi, visualizzare il contenuto del file.
writematrix(A,'myData.dat','Delimiter',';') type myData.dat
1.7;2.4;0.1;0.8;1.5 2.3;0.5;0.7;1.4;1.6 0.4;0.6;1.3;2;2.2 1;1.2;1.9;2.1;0.3 1.1;1.8;2.5;0.2;0.9
Vedi anche
writematrix | writecell | writetimetable | fprintf | type | writetable