質問: horzcat(data1,data2); 保存された際のcsvファイルの中身のイメージ label1, label2 ,0 ,0 2,2 3, 4,4 5,5 . . . 1499999,1499999 1500000,1500000 普段はxlswriteを使用するのですが、xlswriteは150万行のデータの書き込みはできないため。 お力添えをお願いします。
回答: 150 万行のデータの書き込みは writetable 関数を使用してできそうです。よってデータ型を table 型に変換する必要があります。table 型に変換すれば各行の名前も追加できます。 しかしながら、writetable 関数には nan を空に変換するオプションがなさそうですので、どうしても空にしたい場合はプログラムを工夫する必要がありそうです。 例えば、以下のようなプログラムでしたら書き出せそうです。(時間がかかりますが・・・) % 150万行2列のデータの作成 label = {'label1' 'label2'}; data1 = (0:1500000)'; data2 = (0:1500000)'; data1(1) = nan; data1(2) = nan; data2(4) = nan; savedata = [data1 data2]; % table 型のデータ t に変換 t = array2table(savedata); t.properties.variablenames = label; % 各行ラベルを代入 % table データ内の数値データを cell 配列に変換 t.label1 = num2cell(t.label1); t.label2 = num2cell(t.label2); % セル配列内の nan のところを特定して 空配列[] に置き換え t.label1(cellfun(@isnan, t.label1)) = {[]}; t.label2(cellfun(@isnan, t.label2)) = {[]}; % table 型のデータ t を csv 形式で書き出し % 書き出しに時間がかかります writetable(t,'mydata.csv','delimiter',',','quotestrings',true) 他にもっと良い方法があるかもしれないです。