複数データのExcelファイルへの書き込み
조회 수: 5 (최근 30일)
이전 댓글 표시
ワークスペース内にあるデータ(y1~y31)をエクセルのファイルに書き込みたいと考えています。以下のコードだとうまくデータが書き込まれないのですが何かアドバイス頂けると幸いです。
for i = 1:31
filename = 'testdata.xlsx';
dataname = sprintf('y%d',i);
sheet = i;
xlswrite(filename,dataname,sheet);
end
댓글 수: 0
채택된 답변
mizuki
2016년 10월 20일
편집: mizuki
2016년 10월 20일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Spreadsheets에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!