複数データのExcelファイルへの書き込み

18 visualizaciones (últimos 30 días)
Naoki Ishibashi
Naoki Ishibashi el 19 de Oct. de 2016
Comentada: michio el 21 de Oct. de 2016
ワークスペース内にあるデータ(y1~y31)をエクセルのファイルに書き込みたいと考えています。以下のコードだとうまくデータが書き込まれないのですが何かアドバイス頂けると幸いです。
for i = 1:31
filename = 'testdata.xlsx';
dataname = sprintf('y%d',i);
sheet = i;
xlswrite(filename,dataname,sheet);
end

Respuesta aceptada

mizuki
mizuki el 20 de Oct. de 2016
Editada: mizuki el 20 de Oct. de 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 comentarios
Naoki Ishibashi
Naoki Ishibashi el 20 de Oct. de 2016
できました、ありがとうございます
michio
michio el 21 de Oct. de 2016
もしよろしければ回答の Accept もご協力お願い致します。

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by