2016-07-22 26 views
0

Ich habe mehrere Tabellen in Matlab, dass und ich möchte alle auf eine .csv Datei schreiben, vertikal verketten. Ich würde gerne die Spaltennamen aus jeder Tabelle als oberste Zeile behalten und möchte eine Schleife verwenden, um den CSV zu schreiben. Das ultimative Ziel ist es, die Daten in R zu lesen, aber R.matlab hat nicht gut funktioniert. Vorschläge dazu, wie das geht?Schreiben Tabellen von Matlab in CSV

Alternativ wie kann ich Dateinamen in einer for-Schleife mit dem Iterator ändern? z.B. entlang der Linien von

for i=1:10 
    writecsv('mydatai.csv',data(i)) 
end 

Also muss ich am Ende 10 csv-Dateien als Ausgabe haben.

Antwort

0

Sie können die Dateinamen in der Schleife ändern durch Verwendung für Funktion sprintf Zeichenfolge Formatierung, zum Beispiel:

dlmwrite(sprintf('mydata%i.csv', i), data(i)) 

beachten, dass der% i Teil der Zeichenfolge der Bediener für eine ganze Zahl sprintf Formatierung ist, ist es nur ein Zufall, dass Sie sich auch entschieden haben, Ihre Iterator-Variable 'i' zu nennen.

Sie können zusätzliche Daten an eine vorhandene CSV-Datei anhängen, indem Sie die Funktion dlmwrite verwenden, die standardmäßig ein Kommatrennzeichen verwendet und das Flag "-append" enthält.

+0

dlmwrite auf numerische Daten funktioniert nur verwenden zu verwenden sein und akzeptiert keine Tabellen als eine Eingabe. – excaza

+0

Sie sind richtig, ich nahm an, dass die ursprüngliche Frage den Begriff 'Tabelle' in einem allgemeineren Sinne verwendete, da der Tabellendatentyp relativ neu für MATLAB ist, eingeführt in R2013b – DMR

0

wäre eine andere Art und Weise

writetable(Table,filename) 

und ändern Dateinamen nach jedem Wechsel können Sie

filename = ['mydata' num2str(i) '.csv']