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 …
宜しくお願いします。

 Réponse acceptée

Shunichi Kusano
Shunichi Kusano le 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 commentaires

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Produits

Version

R2013b

Community Treasure Hunt

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

Start Hunting!