2016-10-24 14 views
-2

私はMatlab(1x149)のセル配列を持っています。各セルには別々の.txtファイルのデータが入っています。私は、セル毎に個別の.csvファイルを書きたい5複数の.csvファイルを書き込む

[39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] 

を通じて.txtファイル

d = dir('*.txt'); 
nfiles = length(d); 
data = cell(1, nfiles); 
for k = 1:nfiles 
data{k} = importdata(d(k).name); 
end 

列1をロードするには、次のコードを使用していました。

私はcsvwriteを使ってみましたが、本当にうまくいかない大きなファイルを提供しています。 forループを書いて各セルを別々のCSVファイルに書き込もうとしています

+0

あなたはこれを 'R'と' matlab'の両方としてタグ付けしていますので、実際にどの言語を使用しているか教えてください。あなたはそれをセル配列と呼んでいたので、それは 'matlab'だと思っていますが、それはあなたの質問に含める必要があり、' r'タグを削除する必要があります。また、これを達成するために既に試したことがある(しかしうまくいかなかった)点も含めてください。ヒント: 'csvwrite'で始まります。 – Barker

+0

'csvwrite'をループに入れようとしたときに何が起こったのですか? – excaza

+0

これは適切なアプローチかどうかわかりませんが、これは私が持っているものです: 'for i = 1:10 csv(i)= csvwrite( 'テスト%d.csv'、データ(i:i)) 私が得るエラーはあまりにも多くの出力引数です –

答えて

0

私はちょうどこれを試して問題に合った乱数を生成しました。

test = mat2cell(randi(50,39676*5,182),[39676,39676,39676,39676,39676],182); 
test = test'; 

は私を与える:

test = 

    [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] 

でこれをループ:5で

for i = 1:5 
    csvwrite(strcat('file',num2str(i),'.csv'),test{1,i}) 
end 

結果* .CSVファイル(file1.csv、file2.csv、...)。ファイル名を取得するstrcatを使用すると、より良い解決することができますが、私はどのように知っている。

+0

これは動作します。ありがとうございます –

+0

この回答を受け入れることはいいですね。ありがとう。 – RhyminSimon

関連する問題