(更新日: 2025年8月15日 )
目次
はじめに
Simulink モデルがどのバージョンの MATLAB/Simulink で作られたか確認したくなることが多々ある。 Simulinkは後方互換性はあるから、作ったバージョンよりも新しいMATLABバージョンであればモデルを開くことはできる。 しかし、作ったバージョンよりも古いMATLABバージョンでは開くことが出来ない。 そんな時は別のバージョンのMATLABを起動しなおす羽目になる。
そんな無駄足を踏まないために、SimulinkモデルがどのMATLABバージョンで作成されたのか確認するアプリを作った。
showSimulinkVerアプリ
名前がイケてなくて恐縮だ。showSimulinkVerといアプリを作った。 GitHub に登録してある。Releaseからインストーラをダウンロードできる。
概要
showSimulinkVerは、.NET 8で開発されたアプリケーションである。Windows上でのみ動作する。 目的はSimulinkのバージョン・作成日時・更新日時・最終更新者の情報をMessageBoxで表示する。必要環境
- .NET 8 SDK
- 対応OS: Windows
インストール
Release からインストーラをダウンロードしてインストールする。
通常はmsiファイルだけで良い。
使い方
- インストール後、
showSimulinkVer.exe
のショートカットを「送る」メニューに登録する。%APPDATA%\Microsoft\Windows\SendTo
フォルダにショートカットを置くと登録できる。 -
.slx
または.mdl
ファイルを右クリック → 「送る」→showSimulinkVer
を選択。 - MATLAB Version・作成日時・更新日時・最終編集者が MessageBox に表示される。

上のアプリがどやってバージョンを確認しているか: slx の metadata/coreProperties.xml を読む(ZIP解凍方式)
実は slx は ZIP アーカイブである。この中の XML に作成環境の情報が入っている。 この中の metadata/coreProperties.xml にアクセスすれば良い。
という言うものの、slxを展開してメタデータを読む手間をかけたくはない。そんなあなたのために、C#でアプリを作ったというわけだ。
おまけ: MATLABスクリプトで確認する方法とその問題
Simulinkだから、MATLABスクリプトで確認するのが王道だろう。
知りたいモデルの情報を得るには
info = Simulink.MDLInfo('foo.slx');
とする。
これがMATLABからアクセスできる情報の全てだ。欲しいのは20XXxのようなリリース・ネームなので、
info.ReleaseName
で参照する。
参考
How can I find out which version was used to create a particular model in Simulink 7.3 (R2009a)?MATLABから確認する方法の問題
この方法の問題は、起動しているMATLABと異なるバージョンで作成されたSimulinkモデルの場合、別のバージョンのMATLABを起動しなおす羽目になることだ。
バージョンを確認したいだけなのに、まずどのMATLABバージョンを起動するかで一瞬悩むこと間違いなしだ。
スタンドアロン・アプリにすれば良いじゃないか!
スタンドアロン・アプリにすれば良いじゃないか!という意見はあるだろう。その通りだ。
しかし、MATLABのスタンドアロン・アプリは初回起動時にランタイム・ライブラリのロードが必要である。これが結構な時間を要する。 Simulinkモデルのバージョンは手早く確認したいのだ。
MATLABスクリプト vs C#アプリの比較表
項目 | MATLABスクリプト | C#アプリ |
---|---|---|
起動時間 | 数秒〜数十秒(ランタイム読み込みあり) | ほぼ瞬時 |
実行環境 | MATLAB 必須 | Windows のみ、MATLAB不要 |
バージョン誤差の回避 | ×(MATLABの起動バージョン次第) | ○ |
おわりに
コンソールアプリなので、コンソールが起動してしまうのは御愛嬌。
気が向いたらコンソールではなくフォームアプリを作るかも知れない。