MATLAB 関数からのスタンドアロン アプリケーションの作成
この例では、MATLAB® Compiler™ を使用して MATLAB® 関数をスタンドアロン アプリケーションにパッケージ化する方法を説明します。このアプリケーションを実行するには、ターゲット システムでは MATLAB Runtime インストール環境のみが必要であり、MATLAB のライセンス コピーは不要です。
サポートされるプラットフォーム: Windows®、Linux®、macOS
MATLAB での関数の作成
コマンド プロンプトに魔方陣行列を出力する magicsquare
という名前の MATLAB 関数を作成します。この関数を magicsquare.m
という名前のファイルに保存します。
function m = magicsquare(n) if ischar(n) n=str2double(n); end m = magic(n); disp(m)
コマンド プロンプトでこの関数をテストします。
magicsquare(5)
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
"compiler.build.standaloneApplication
" を使用したスタンドアロン アプリケーションの作成
関数 compiler.build.standaloneApplication
を使用して、MATLAB 関数からスタンドアロン アプリケーションを作成します。
appFile = "magicsquare.m";
buildResults = compiler.build.standaloneApplication(appFile);
compiler.build
コマンドで名前と値の引数を使用して、追加オプションを指定できます。詳細については、compiler.build.standaloneApplication
を参照してください。
buildResults
オブジェクトには、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。詳細については、compiler.build.Results
を参照してください。
この関数により、現在の作業ディレクトリにある magicsquarestandaloneApplication
という名前のフォルダー内に以下のファイルが生成されます。
includedSupportPackages.txt
— アプリケーションに含まれている、すべてのサポートされるファイルをリストしたテキスト ファイル。magicsquare.exe
またはmagicsquare
— Windows システムでコンパイルされた場合は.exe
拡張子をもつ実行可能ファイル、Linux システムまたは macOS システムでコンパイルされた場合は拡張子のない実行可能ファイル。run_magicsquare.sh
— ライブラリ パスを設定し、アプリケーションを実行するシェル スクリプト ファイル。このファイルは Linux システムおよび macOS システムでのみ生成されます。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、制限を参照してください。readme.txt
— デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれるテキスト ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
メモ: 生成されたスタンドアロン実行可能ファイルには MATLAB Runtime やインストーラーが含まれていません。buildResults
オブジェクトを使用してインストーラーを作成するには、compiler.package.installer を使用したスタンドアロン アプリケーション インストーラーの作成を参照してください。
スタンドアロン アプリケーションのテスト
入力引数 4
を指定して MATLAB 内から magicsquare
を実行するには、MATLAB デスクトップ環境内から magicsquarestandaloneApplication
フォルダーに移動し、オペレーティング システムに基づいて以下のコマンドのいずれかを実行します。
Windows
!magicsquare 4
Linux
!./magicsquare 4
macOS
system(['./run_magicsquare.sh ',matlabroot,' 4']);
MATLAB デスクトップ環境外でスタンドアロン アプリケーションを実行するには、Run Standalone Application を参照してください。
compiler.package.installer
を使用したスタンドアロン アプリケーション インストーラーの作成
buildResults
オブジェクトを関数 compiler.package.installer
の入力引数として使用して、インストーラーを作成します。
compiler.package.installer(buildResults);
この関数は、スタンドアロン アプリケーション インストーラーが含まれる新しいフォルダーを作成します。
既定では、インストーラーは MATLAB Runtime を Web からダウンロードするように構成されています。名前と値の引数を使用することで、これの変更および追加オプションの指定を行うことができます。詳細については、compiler.package.installer
を参照してください。
たとえば、インストーラー名を指定し、インストーラーに MATLAB Runtime を含めるには、以下を実行します。
compiler.package.installer(buildResults, ... 'InstallerName','MyMagic_Install','RuntimeDelivery','installer');
スタンドアロン アプリケーションのインストール
関数compiler.package.installer
で作成されたインストーラーを使用してアプリケーションをインストールするには、デプロイされたアプリケーションのインストールを参照してください。
スタンドアロン アプリケーションの実行
システム コマンド プロンプトで、スタンドアロン実行可能ファイルが含まれているフォルダーに移動します。
オペレーティング システムに基づいて次のいずれかのコマンドを使用し、入力引数 5
を指定して magicsquare
を実行します。
Windows
magicsquare 5
Linux
シェル スクリプトを使用:
./run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR> 5
メモ: Linux では、既定ではソフトウェア OpenGL™ がアプリケーションで使用されます。シェル スクリプトからパス ${MCRROOT/sys/opengl/lib/glnxa64
を削除するとハードウェア OpenGL を強制できます。
実行可能ファイルを使用:
./magicsquare 5
macOS
シェル スクリプトを使用:
./run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR> 5
実行可能ファイルを使用:
./magicsquare.app/Contents/macOS/magicsquare 5
メモ: Linux や macOS でシェル スクリプトを使用せずにアプリケーションを実行するには、まず MATLAB Runtime をライブラリ パスに追加しなければなりません。詳細については、デプロイ用の MATLAB Runtime パスの設定を参照してください。
アプリケーションにより 5 行 5 列の魔方陣がコンソールに出力されます。
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Linux または macOS でアプリケーションのコマンド ライン ショートカットを作成するには、alias コマンドを使用します。
alias mymagic='/path/to/run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR>'
入力引数 4
を指定してアプリケーションを実行するには、ターミナルで「mymagic 4
」と入力します。
エイリアスを永続的なものにするには、Bash シェルのファイル ~/.bash_aliases
または Zsh シェルの ~/.zprofile
にコマンドを追加します。たとえば、
echo "alias mymagic='~/MATLAB/apps/run_magicsquare.sh /usr/local/MATLAB/MATLAB_Runtime/R2023a'" >> ~/.bash_aliases
ヒント
関数
compiler.build.standaloneApplication
Windows コマンド シェルを起動しないスタンドアロン アプリケーションを生成するには、
compiler.build.standaloneWindowsApplication
を使用します。また、
mcc
コマンドを使用して、MATLAB Runtime やインストーラーが含まれないスタンドアロン アプリケーションを生成することもできます。
参考
compiler.build.standaloneApplication
| compiler.build.standaloneWindowsApplication
| compiler.package.installer
| アプリケーション コンパイラ | deploytool
| mcc