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

 Risposta accettata

Shunichi Kusano
Shunichi Kusano il 5 Mar 2019

1 voto

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 Commenti

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB in Centro assistenza e File Exchange

Prodotti

Release

R2013b

Community Treasure Hunt

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

Start Hunting!