
Simulinkで得たscopeのデータをExcelに書き込む方法は?
139 views (last 30 days)
Show older comments
Simulinkを使って、シミュレーションを行い、波形をscopeで表示しました。しかし、scopeの波形は細かく見れないので、シミュレーションのデータをexcelで読み込み、それをもとにexcelで波形を作ることにしました。ところが、Simulinkのデータをexcelに読み込もうとしましたが、excelに入れる方法が分かりません。simulinkのデータをexcelで読み込み、グラフを作成するにはどのような方法で行えばよいですか?
0 Comments
Accepted Answer
Aoi Midori
on 19 Dec 2018
Simulink上で"To Workspace"に枝分かれさせてみてはいかがでしょうか?

そうすることで、(デフォルトでは)MATLABのワークスペース上に"simout"という変数ができ、その中に時間情報やデータなどが入っています。excelに波形を出力される際は、データだけでよければ、MATLABのコマンドウィンドウ上で下記の通り入力して頂けたらと思います。
xlswrite("file.xlsx", simout.Data);
もちろん、excelに出力しなくても、MATLAB上でのグラフ作成も可能です。
plot(simout);
0 Comments
More Answers (6)
mw51
on 19 Dec 2018
3 Comments
Aoi Midori
on 19 Dec 2018
mw51さん、
写真の添付ありがとうございます。接続は問題なさそうですね。また、出力される変数名もsimoutという名前で良さそうです。一点だけ気になったのが、
simout.Data
こちら、上記の通り、大文字Dから書いて頂けますでしょうか?
mw51
on 20 Dec 2018
Edited: mw51
on 20 Dec 2018
1 Comment
Aoi Midori
on 20 Dec 2018
Edited: Aoi Midori
on 20 Dec 2018
mw51さん、
a = sim('control1','SimulationMode','normal');
b = a.get('simout')
既に上記のように書かれているのであれば、
xlswrite("file.xlsx", b.Data);
こちらのソースでいかがでしょうか?
なお、
sim('control1')
だとsimout変数が見えましたが、mw51さんのコードだと確かに同じエラーになりました。
mw51
on 20 Dec 2018
Edited: mw51
on 20 Dec 2018
1 Comment
Aoi Midori
on 20 Dec 2018
xlswriteは、もともとMATLABに備わっている関数なので、定義をする必要はありません。
help xlswrite とMATLABのコマンドウィンドウに入力すると何が出てきますか?
上で書いて頂いているSetParameter関数の中身は、まだsimout.dataのままになっていますが、b.Dataに書き直してエラーになられたということですよね?
SetParameter()実行後に、MATLABのコマンドウィンドウに表示される内容をコピペ頂くこと可能でしょうか?
mw51
on 20 Dec 2018
Edited: mw51
on 20 Dec 2018
1 Comment
Aoi Midori
on 20 Dec 2018
粗いデバッグですみませんが、SetParameter()中の下記の1行、最後尾の";"を消して実行した際に、MATLABのコマンドウィンドウには何が表示されるでしょうか?
b = a.get('simout')
See Also
Categories
Find more on スプレッドシート in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!