2016-07-22 148 views
0

我在matlab我有幾個表,我想寫一個.csv所有文件,垂直連接。我想保留每個表的列名作爲最上面一行,並且希望使用循環來編寫csv。最終目標是將數據讀入R,但R.matlab不能正常工作。有關如何做到這一點的建議?從Matlab寫入表格到CSV

另外我怎樣才能改變使用迭代器for循環中的文件名? 例如沿線

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

所以我必須在最後10個csv文件作爲輸出。

回答

0

可以通過使用用於sprintf的字符串格式化功能改變循環內的文件名,例如:

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

注意的字符串%I部分是用於一個整數sprintf的格式化操作,它是隻是巧合,你也決定命名你的迭代變量'我'。

您可以使用dlmwrite函數將額外數據附加到現有CSV,該函數使用逗號分隔符作爲默認值,幷包含'-append'標誌。

+0

只對數字數據dlmwrite的作品,不接受表作爲輸入。 – excaza

+0

你是對的,我假設原來的問題是在更廣義的意義上使用'table'這個術語,因爲表格數據類型對於MATLAB而言是比較新的,在R2013b中引入 – DMR

0

另一種方法是使用

writetable(Table,filename) 

,每個交替後更改文件名,你可以使用

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