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

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

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by