Simulink モデルの MATLAB バージョンを一瞬で調べる C# ツール

(更新日: 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ファイルだけで良い。

使い方

  1. インストール後、showSimulinkVer.exe のショートカットを「送る」メニューに登録する。 %APPDATA%\Microsoft\Windows\SendTo フォルダにショートカットを置くと登録できる。
  2. .slx または .mdl ファイルを右クリック → 「送る」→ showSimulinkVer を選択。
  3. 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の起動バージョン次第)

おわりに

コンソールアプリなので、コンソールが起動してしまうのは御愛嬌。

気が向いたらコンソールではなくフォームアプリを作るかも知れない。