cell配列のをcsvで保存する方法

cell配列のをcsvで保存する方法について質問です。
以下のcell 配列があります。
%cell配列を作る
for i = 1:3
TEST{1,i} = strcat('test',num2str(i));
end
for i = 1:3
TEST{2,i} = strcat('set',num2str(i));
end
A = [1:100];
B = A*10;
C = A*0.1;
TEST{3,1} = A;
TEST{3,2} = B;
TEST{3,1} = C;
%下の様なcell配列になります
% 'test1' 'test2' 'test3'
% 'set1' 'set2' 'set3'
% 1×100 do.. 1×100 do.. 1×100 do..
この変数[TEST]をcsvで保存したいのですがどのような方法がありますか?
csvwrite('csvlist.csv',cell2mat(TEST(3,1)))
上のだと[1:100]の配列しか書き込めないので思うようにいきません。
csvの結果は下のようにしたいです。
test1,test2,test3
set1,set2,set3
1,10,0.1
2,20,0.2
3,30,0.3 …
宜しくお願いします。

 Accepted Answer

Shunichi Kusano
Shunichi Kusano on 5 Mar 2019

1 vote

3行目の数値配列をばらしてもいいですか?tableにしてwritetableを使うのがよさそうです。
clear TEST
for i = 1:3
TEST{1,i} = strcat('test',num2str(i));
end
for i = 1:3
TEST{2,i} = strcat('set',num2str(i));
end
A = [1:100]'; % 縦ベクトル
B = A*10;
C = A*0.1;
% 各要素をばらしてセルに変換。
Acell = num2cell(A);
Bcell = num2cell(B);
Ccell = num2cell(C);
valCell = [Acell, Bcell, Ccell];
TESTtable = cell2table([TEST; valCell]);
writetable(TESTtable, 'csvlist.csv', 'WriteVariableNames', false); % ヘッダーを書かない設定

4 Comments

qrqr
qrqr on 5 Mar 2019
ありがとうございます。
データを変えて試したところ、
警告: 範囲外、または整数でない値は、文字への変換中に打ち切られました。
この様な警告が出ます。
Shunichi Kusano
Shunichi Kusano on 5 Mar 2019
具体的にどんな数値で警告出ているかわかりますか?
打ち切られているだけで値自体が変わっていないのであればいいとは思うのですが、-Infやかなり長い数値を入れても警告が出ないので確かめようがない状況です。
qrqr
qrqr on 5 Mar 2019
TESTtable = cell2table([TEST; valCell]);
これの[cell2table]を[array2table]にしたら警告は出なくなりました。
Shunichi Kusano
Shunichi Kusano on 5 Mar 2019
解決されたようでよかったです。

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2013b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!