複数データのExcelファイルへの書き込み
5 views (last 30 days)
Show older comments
ワークスペース内にあるデータ(y1~y31)をエクセルのファイルに書き込みたいと考えています。以下のコードだとうまくデータが書き込まれないのですが何かアドバイス頂けると幸いです。
for i = 1:31
filename = 'testdata.xlsx';
dataname = sprintf('y%d',i);
sheet = i;
xlswrite(filename,dataname,sheet);
end
0 Comments
Accepted Answer
mizuki
on 20 Oct 2016
Edited: mizuki
on 20 Oct 2016
for ループの中で
>> class(dataname)
を実行すると char (文字列)型であることがわかります。 そのため、XLSWRITE 関数を実行した際に文字列がそのまま書き込まれてしまいます。これを元の型で使用するには EVAL 関数を使用します。
y1 = rand(3,3);
y2 = zeros(5,5);
filename = 'testdata.xlsx';
for i = 1:2
dataname = ['y', int2str(i)]; %sprintf('y%d',i);
sheet = i;
xlswrite(filename, eval(dataname), sheet);
end
ただし、EVAL 関数を使用するとコードが見にくくなったり実行に時間がかかることもありますので、変数を複数に分けるのではなく構造体などで管理されるとよいかと思います。
MATLAB について基本操作の tips を知ることでご業務が効率よく進むかと思います。
MATLAB Onramp という2時間分の無料のオンライン学習サービスがあります。コードの工夫についても説明していますので、お時間のあるときにぜひ使ってみてください。 https://matlabacademy.mathworks.com/jp
2 Comments
More Answers (0)
See Also
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!