MATLAB Compiler実践ガイド:スタンドアロン・アプリ開発と配布の注意点

(更新日: 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

スタンドアロン・アプリの生成方法

  1. アプリケーション・コンパイラの起動

    アプリケーション・コンパイラは下のようなアイコンをクリックすると起動する:

  2. 設定

    最低限の設定は

    • “アプリケーション情報”の”アプリケーション名”の設定
    • メインファイルでファイルを追加

    の二点。下の図の矢印の部分だ。

    あとは

    • リソースファイル
    • アイコン・バージョン情報

    なども設定しておこう。

  3. パッケージ化

    “パッケージ化”ボタンで実行ファイルが生成される。

注意点

  • 初回起動が遅い
    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 配布、インストーラ作成、企業内配布など用途に合わせる

参考リンク