2016-06-28 6 views
0

Im 'neu in Matlab. Ich habe doppelte Matrix M wie folgt aus:Warum dlmwrite Spaltennamen der Matrix beseitigen?

3.4452e-10  3.727e-10 
5.3276e-11  5.4956e-11 
-4.5277e-12  -1.5932e-10 
9.5572e-11  -2.9293e-11 
4.8192e-11  -7.5237e-11 
-1.0847e-10  3.5613e-11 

und gab Namen columane Namen für Daten wie folgt

dataset({M, 'A','B'}) 
then I write it to folder using 
dlmwrite('MyNewfile',M) 

aber wenn ich die MyNewfile öffnen, sehe ich, dass die Spaltennamen der Matrix eliminiert wird. Weiß jemand, wie kann ich Spaltennamen behalten, wenn ich es im Verzeichnis schreibe?

Antwort

1

Zuerst ist dataset veraltet, Sie sollten stattdessen table verwenden.

Zweitens aus Matlab Dokumentation:

dlmwrite (Dateiname, M) schreibt numerische Daten in Array M in ein ASCII-Format Datei

So wird es nur schreiben, den Inhalt Ihre Matrizen, aber keine nicht numerischen Daten.

Sie immer zuerst die Spaltenüberschriften in der Datei verwenden, schreiben und dann Ihre Daten anhängen oder eine andere Matlab Schreibfunktion verwenden, die Text und numerische Daten behandelt

0

Lets betrachten Sie versuchen, eine in eine Datei dort zu schreiben sind zwei Methoden

A = 

    1.0e-09 * 

    0.3445 0.3727 
    0.0533 0.0550 
    -0.0045 -0.1593 
    0.0956 -0.0293 
    0.0482 -0.0752 
    -0.1085 0.0356 

entweder Sie die Zeilennamen mit in einer Datei wie diese

>> dlmwrite('testtext3.txt',['A    B'] ,'delimiter','') 
>> dlmwrite('testtext3.txt',[A],'-append','delimiter','\t','roffset',1) 

oder Sie konvertieren A in eine Tabelle anhängen

T =array2table(A,'VariableNames',{'A' ,'B'}) 

T = 

     A    B  
    ___________ ___________ 

    3.4452e-10  3.727e-10 
    5.3276e-11  5.4956e-11 
    -4.5277e-12 -1.5932e-10 
    9.5572e-11 -2.9293e-11 
    4.8192e-11 -7.5237e-11 
    -1.0847e-10  3.5613e-11 

und dann diese Tabelle in eine

Datei schreiben
writetable(T,'testing.txt') 

UPDATE: Als Benutzer eine Frage der Parsen der Daten weiter unten angehoben hat, ist ein Verfahren

fileID = fopen('testtext3.txt','r+'); 
C = textscan(fileID,'%s%s') 
C = 

    {7x1 cell} {7x1 cell} 

>> C{1} 

ans = 

    'A' 
    '3.4452e-10' 
    '5.3276e-11' 
    '-4.5277e-12' 
    '9.5572e-11' 
    '4.8192e-11' 
    '-1.0847e-10' 
+0

Ich bin suggerieren sowohl die Methoden und tatsächlich, wie man sie benutzt, kann das OP irgendwelche von ihnen wählen, die irgendwie sehr klar von meinem Pfosten ist – Umar

+0

Ihre Methode: 1) Benutzt verschiedene Begrenzer fo r den Header und für die Daten. 2) Sie fügen Daten hinzu und verwenden einen Zeilenversatz von 1, der eine Leerzeile zwischen Kopfzeilen und Daten zurücklässt. Aber gut. Die nächste Frage wird sein, wie die generierte Datei analysiert wird. –

+0

Was hat die Verwendung verschiedener Trennzeichen mit dem Lesen der Daten zu tun? Lesen Sie die aktualisierte Antwort – Umar

Verwandte Themen