Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MATLAB Compiler を使用してシンボリック式から生成された MATLAB 関数の展開

この例では、シンボリック式から MATLAB® 関数を生成し、その関数を使用して、MATLAB Compiler™ でスタンドアロン アプリケーションを作成する方法を示します。

Fig1.png

この例は、MATLAB 関数からのスタンドアロン アプリケーションの作成 (MATLAB Compiler)で説明されている手順に従うもので、シンボリック式から MATLAB 関数を生成するための手順を更新しています。

シンボリック式からの展開可能な関数の生成

最初に、次の 2 階微分方程式を作成します。

d2ydt2+12dydt+2y=0.

これは syms を使用したシンボリック方程式とします。

syms y(t);
ode = diff(y,2) + diff(y)/2 + 2*y == 0;

この微分方程式を解くには、関数 odeToVectorField を使用して 1 階微分方程式に変換します。

V = odeToVectorField(ode);

次に、matlabFunctionを使用してシンボリック式 V を MATLAB 関数ファイルに変換します。ファイル myODE.m 内の変換された関数は Symbolic Math Toolbox™ なしで使用できます。変換された関数は、MATLAB Compiler を使用して展開できます。

matlabFunction(V,'vars',{'t','Y'},'File','myODE');

MATLAB でのスクリプトの記述

ode45 を使用して微分方程式を解き、解をプロットする plotODESols.m という名前の MATLAB スクリプトを記述します。それを関数 myODE.m と同じディレクトリに保存します。

type plotODESols.m
sol = ode45(@myODE,[0 20],[0 4]);
x = linspace(0,20,200);
y = deval(sol,x,1);
plot(x,y)
xlabel('Time t')
ylabel('Displacement y')

このスクリプトを使用して、アプリケーション コンパイラ アプリでスタンドアロン アプリケーションを作成して展開できます。

アプリケーション コンパイラ アプリを使用したスタンドアロン アプリケーションの作成

MATLAB の [アプリ] タブの [アプリ] セクションで、矢印をクリックしてアプリ ギャラリーを開きます。[アプリケーションのデプロイ][アプリケーション コンパイラ] をクリックします。MATLAB Compiler プロジェクト ウィンドウが開きます。

Fig2.png

または、MATLAB プロンプトで applicationCompiler と入力して、[アプリケーション コンパイラ] アプリを開くこともできます。

MATLAB Compiler プロジェクト ウィンドウで、展開する MATLAB アプリケーションのメイン ファイルを指定します。

  1. ツールストリップの [メイン ファイル] セクションで、Fig3.png をクリックします。

  2. [ファイルの追加] ダイアログ ボックスで、生成されたスクリプトを含むファイルの場所を参照します。plotODESols.m を選択し、[開く] をクリックします。アプリケーション コンパイラ アプリによって、関数 plotODESols がメイン ファイルのリストに追加されます。

[パッケージ化オプション] セクションで次の 2 つのオプションのいずれかを選択して、生成されるアプリケーションに MATLAB Runtime インストーラーを含めるかどうかを決定します。

  • ランタイムを Web からダウンロード — MATLAB Runtime をダウンロードして、展開された MATLAB アプリケーションと共にインストールするインストーラーを生成します。

  • ランタイムをパッケージに含める — MATLAB Runtime インストーラーを含むインストーラーを生成します。

次のオプションを入力して、パッケージ化されたアプリケーションとその外観をカスタマイズします。

Fig4.png

  • アプリケーション情報 — 展開されるアプリケーションに関する編集可能な情報。アプリケーション アイコンとスプラッシュ スクリーンを変更して、スタンドアロン アプリケーションの外観をカスタマイズすることもできます。生成されたインストーラーは、この情報を使用して、インストールされたアプリケーションのメタデータを入力します。

  • 追加インストーラー オプション — 生成されたインストーラーの既定のインストール パスを編集し、カスタム ロゴを選択するためのオプション。

  • アプリケーションの実行に必要なファイル — 生成されたアプリケーションの実行に必要な追加ファイル。これらのファイルは、生成されるアプリケーション インストーラーに含められます。ツールストリップの [メイン ファイル] セクションに plotODESols.m を追加すると、コンパイラは myODE.m をアプリケーションの実行に必要なファイルとして自動的に追加します。

  • エンド ユーザー用にインストールされるファイル — アプリケーションと共にインストールされるファイル。これらのファイルには、自動生成される readme.txt ファイルと、ターゲット プラットフォーム用に生成される実行可能ファイルが含まれます。

  • ランタイム追加設定 — 生成される実行可能ファイルを制御するためのプラットフォーム固有のオプション。

これらのオプションの詳細については、アプリケーションのカスタマイズ (MATLAB Compiler)を参照してください。

パッケージ化されたアプリケーションを生成するには、ツールストリップの [パッケージ化] セクションで [パッケージ化] をクリックします。[プロジェクトを保存] ダイアログ ボックスで、プロジェクトを保存する場所を指定します。

[パッケージ] ダイアログ ボックスで、[プロセスが完了したら出力フォルダーを開く] が選択されていることを確認します。

展開プロセスが完了すると、出力には以下のものが含まれているはずです。

  • for_redistribution — アプリケーションと MATLAB Runtime のインストール ファイルが格納されたフォルダー。

  • for_testingmcc によって作成されたすべてのアーティファクトが格納されたフォルダー (特定のターゲットのバイナリ、ヘッダー、ソース ファイルなど)。これらのファイルは、インストールのテストに使用します。

  • for_redistribution_files_only — アプリケーションの再配布に必要なファイルが格納されたフォルダー。MATLAB または MATLAB Runtime がマシンにインストールされているユーザーにこれらのファイルを配布します。

  • PackagingLog.txt — MATLAB Compiler によって生成されたログ ファイル。

スタンドアロン アプリケーションのインストールと実行

スタンドアロン アプリケーションをインストールするには、for_redistribution フォルダーで実行可能ファイル MyAppInstaller_web をダブルクリックします。

プロキシ サーバーを使用してインターネットに接続する場合は、[接続設定] をクリックします。表示されるダイアログ ボックスにプロキシ サーバーの設定を入力します。[OK] をクリックします。

インストールを完了するには、インストール ウィザードの指示に従います。

スタンドアロン アプリケーションを実行するには、以下のようにします。

  1. ターミナル ウィンドウを開きます。

  2. アプリケーションをインストールしたフォルダーに移動します。

  3. アプリケーションを実行します。

FigPlot.png

スタンドアロン アプリケーションを実行して展開するために、他のマシンの管理者権限があることを確認してください。

ターゲット マシンでのスタンドアロン アプリケーションのテスト

MATLAB で生成されたスタンドアロン アプリケーションをテストするためのターゲット マシンを 1 台選択します。

for_testing フォルダーのファイルをターゲット マシンにコピーします。

スタンドアロン アプリケーションをテストするには、以下のようにします。

  1. ターミナル ウィンドウを開きます。

  2. for_testing フォルダーに移動します。

  3. アプリケーションを実行します。

ターゲット マシンでのスタンドアロン アプリケーションの展開

for_redistribution_files_only フォルダーを、すべてのターゲット マシン上の MATLAB または MATLAB Runtime のファイルがインストールされている場所にコピーします。

for_redistribution_files_only フォルダーの実行可能ファイルを使用して、MATLAB で生成されたスタンドアロン アプリケーションをすべてのターゲット マシンで実行します。