2016-07-22 4 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フォーマット演算子である、それがあることあなたのイテレーター変数に「i」という名前を付けることにしたのは偶然のことです。

dlmwrite関数を使用すると、既存のCSVに余分なデータを追加できます。この関数は、カンマ区切り文字をデフォルトとして使用し、 '-append'フラグを使用します。

+0

を使用することができ、すべての交代後のファイル名を変更することです。 – excaza

+0

あなたは正しいですが、私は元の質問がより一般的な意味で用語「テーブル」を使用していると仮定しました。テーブルデータ型はR2013bで導入された比較的新しいMATLABです – DMR

0

もう一つの方法は、

writetable(Table,filename) 

を使用して、あなただけの数値データ上で動作し、入力としてテーブルを受け付けないdlmwrite

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