(更新日: 2025年8月18日 )
目次
はじめに
MATLAB で書いた .m スクリプトや App Designer アプリは、スタンドアロン実行可能なアプリケーション(exe など) に変換できる。
これにより、MATLAB がインストールされていない環境でも、MATLAB Runtime (MCR) を導入すれば動作させることが可能。
他言語での類似例として、Ruby の ocra が挙げられます。Ruby の場合は exe ファイル単独で動作しますが、MATLAB の場合は MCR のインストールが必須 という点が大きな違いだ。
スタンドアロン・アプリの仕組み
- MATLAB Compiler を使ってコードをコンパイルすることで、アプリ化できる。
- 実行にはMATLAB Runtimeが必要。MATLAB本体は不要。
- ビルドした OS 専用のアプリになるため、Windows でビルドした exe は Windows 専用。
- 配布の際には「MCR を同梱する」か「ユーザにインストールしてもらう」かを事前に決めておく必要がある。
スタンドアロン・アプリの開発環境の準備
- 必要製品: MATLAB Compiler
- Simulinkをスタンドアロン化したい場合: Simulink Compiler
- 外部コンパイラ:
- Windows → Visual Studio (推奨) または MinGW
- macOS / Linux → OS 付属の C/C++ コンパイラ
- 利用予定の関数・ツールボックスが Compiler 対応かどうか を事前に確認するのが重要。
例題プログラム
Rubyでやるように標準入力でファイルを喰わせることをMATLABでやるには、単純に関数にすれば良い。
下の例はpdfファイル(他にもテキストが入っているファイルなら可)を読んで表示するだけのプログラム(Text Analytics Toolboxを使っていることに注意)。
function readPDFtoShow(pdfFile)
data = extractFileText(pdfFile);
fig = uifigure;
txa = uitextarea(fig, 'Value', data);
txa.Position = [10 10 750 550];
fig.Position = [10 10 800 600];
end
スタンドアロン・アプリの生成方法
- アプリケーション・コンパイラの起動
アプリケーション・コンパイラは下のようなアイコンをクリックすると起動する:
- 設定
最低限の設定は
- “アプリケーション情報”の”アプリケーション名”の設定
- メインファイルでファイルを追加
の二点。下の図の矢印の部分だ。
あとは
- リソースファイル
- アイコン・バージョン情報
なども設定しておこう。
- パッケージ化
“パッケージ化”ボタンで実行ファイルが生成される。
注意点
- 初回起動が遅い
MCR が展開されるため。スプラッシュ画面を出すと UX が改善される。 - スタンドアロン化非対応の関数
ActiveX、Java 連携など一部の関数は不可。事前に確認が必要。 - 外部リソースの扱い
デプロイ環境では ctfroot を使って参照する。function p = assetPath(relpath) if isdeployed p = fullfile(ctfroot, relpath); % CTF内に展開されたパス else p = fullfile(fileparts(mfilename('fullpath')), relpath); end end data = readtable(assetPath('data/config.csv'));
- エラー処理とログ出力
利用者にフィードバックできるように try/catch でログを保存するのがおすすめ。 - GUI の互換性
高 DPI 環境ではレイアウト崩れが起きやすいため、GridLayout や相対サイズ指定を利用。 - 外部 DLL / コマンド依存
実行環境の PATH 設定を考慮する。
配布と運用
- MCR の準備
- MathWorks サイトからのダウンロード案内
- インストーラに同梱
- OS 別の注意点
- Windows: コードサイン証明書を使うとセキュリティ警告が減る
- macOS: 公証(notarization)が必須
- Linux: glibc 依存に注意
- 配布形態
zip 配布、インストーラ作成、企業内配布など用途に合わせる