MATLAB Compilerは、MATLAB コード (MATLAB コードのまま) を暗号化してアーカイブ.m
し、薄い実行可能 (.exe または .dll) ラッパーにパッケージ化します。これは、MATLAB Compiler Runtime (MCR) と共にエンド ユーザーに提供されます。必要に応じて、MCR を実行可能ファイル内にパッケージ化することもできます。
MCR は自由に再配布可能であり、基本的にフロントエンド デスクトップのない MATLAB のコピーと考えることができます。
ユーザーが実行可能ファイルを実行すると、MATLAB コードが解凍および復号化され、MATLAB ではなく MCR に対して実行されます。したがって、この方法で配布されたアプリケーションは、MATLAB 内で実行するのとまったく同じように (同じ速度を含めて) 実行する必要があります。
MATLAB Coderは、MATLAB 言語のサブセットを C コードに変換します。これは、mex ファイルとして MATLAB に戻す、C コンパイラでコンパイルして別のアプリケーションから呼び出す、組み込みデバイスに配布するなど、さまざまな方法で使用できます。これは MATLAB コードではなく C コードであるため、(常にではありませんが) 多くの場合、元の MATLAB コードよりもはるかに高速に実行されます。C コードは MCR を必要としません。サポートされている MATLAB 言語のサブセットは非常に広範囲に及びますが、このワークフローにコミットする前に検討すべき重要な制限がいくつかあります。生成されるコードは C コードですが、C コンパイラではなく C++ コンパイラを使用する必要がある場合は、C++ ラッパーを生成できます。
MATLAB Compilerは、作成した MATLAB アプリケーションを、MATLAB のコピーを持っていない人と簡単かつ (かなり) 直接的に共有したいユース ケースを対象としています。展開された.m
コードは暗号化されているため、知的財産を保護しながら MATLAB コードを共有するためにも使用できます。
MATLAB Coderには、mex ファイルに変換して MATLAB コードを高速化したい場合や、別のアプリケーションまたは組み込みデバイス用の C コードを生成する必要がある場合など、他のユース ケースがあります。
より詳細な質問がある場合は、MathWorks に電話して質問することを強くお勧めします。
編集: 上記の情報は、MATLAB R2014b 以下のバージョンに対して正しいです。MATLAB R2015a の時点で、MATLAB Compilerの機能はMATLAB Builder製品の機能とリミックスされており、新しい製品MATLAB Compiler SDKもあります。
R2015a の時点で、MATLAB Compilerは上記と同じように機能します (つまり、暗号化、アーカイブ、およびパッケージ化しますが、C を生成しません) が、.exe および Excel アドイン (.xla) としてパッケージ化されるようになりました。R2015a より前は、この機能は製品MATLAB Builder EX for Excelに存在していました。
R2015a 以降、MATLAB Compilerは .dll コンポーネントを生成しなくなりました。この機能は、新しい製品MATLAB Compiler SDKに移動されました。これには、.NET アセンブリと Java クラスを生成する機能も含まれています。R2015a より前は、この機能は製品MATLAB Builder NE for .NETおよびMATLAB Builder JA for Javaに存在していました。
言い換えると:
R2014b 以前では、次のようになっていました。
MATLAB Compiler : .exe および .dll コンポーネントの生成
MATLAB Builder NE for .NET : .NET アセンブリの生成
MATLAB Builder JA for Java : Java クラスの生成
MATLAB Builder EX for Microsoft Excel : Excel アドインを生成します。
R2015a では、次のようになります。
MATLAB Compiler : .exe および Excel アドインの生成
MATLAB Compiler SDK : .dll、.NET アセンブリ、および Java クラスを生成します。
MATLAB Coderの範囲とユース ケースは、これらのリリース間で変更されていません (ただし、新しい機能があります)。
編集: R2015b 以降、MATLAB Compiler SDKは Python パッケージも生成します。
C/C++ 用の MATLAB Coder と MATLAB Compiler の区別に関する追加情報は、ここにあります。
コード生成用のさまざまな MATLAB 製品の比較表。