2012-02-23 12 views
4

私はアルゴリズムコードをMatlabに書くつもりです。そして、.mファイルをObjective-Cがアクセスできる形式に変換する必要があります。 mccを試してみると、次のようなエラーが出ました。Objective CからMATLABコードを呼び出す方法

The -t switch is no longer supported; the Compiler no longer generates C/C++ 
source code for M-functions (it generates wrapper functions instead, see 
the documenation for -W). 

mccがCソースコードを作成していない場合、どのようにラッパーを生成できますか?私はmファイルとラッパーの両方をコピーしなければならないのですか?そしてそれらのラッパーはiOSで動作しますか?

答えて

3

MATLAB Compilerは、MATLABコードをCコードに変換せず、これまでずっとこれを行っていません。

代わりに、MATLABコードをアーカイブおよび暗号化し、ラッパー(実行可能ファイル、ライブラリ、またはBuilder製品、.NETアセンブリ、Java .jarファイルのいずれかにアクセスできる場合)を作成します、またはExcelアドイン)。このラッパーは、MATLABコードを解読および解読し、アプリケーションに含める必要がある(しかし、自由に再配布可能です)MATLAB Compiler Runtimeに対して実行します。

あなたはiOSでMCRを実行することはできません。そのフットプリントは大きすぎます。 Objective-Cで別のプラットフォームをターゲットにしている場合は、MATLAB Compilerを使用してライブラリを作成し、Objective-Cから呼び出すことができます。

MATLAB Coder(MATLAB Compilerと同じではありません)は、MATLAB言語のサブセットをCコードに変換できます。 iOSをターゲットにしている場合、これは1つの方法です。あるいは、MATLABコードをリモートで実行して、アプリがWeb経由でアクセスできるようにすることもできます。

3

私は、私はあなたの本当の質問に回答することはできませんあなたが書かれているものによって少し混乱しています:

MATLABドキュメントは、CプログラムからMatlab engineの使用方法についての明確な指示を提供します。 Objective-CはノブがオンのCだけなので、Objective-Cプログラムからエンジンを呼び出さないでください。 Matlabエンジンが実行されているときに有効な呼び出しが表示されますが、呼び出すプログラムがどの言語で書かれているかはわかりません。mccの使用法は無関係です。必要なものは、Mac上のObjective-Cコンパイラです。 Matlabのドキュメントでは、X4からv4.1までのコンパイラに含まれるコンパイラは、Matlabエンジンアプリケーションでは問題ないことを示しています。私の経験上、Matlabをインストールしたときにコンパイラオプションをコンパイルするのに少し時間がかかるかもしれませんが、それ以上のことはありません。

Objective-CコーディングMatlabを使用する予定がある場合は、アルゴリズムコアのMファイルを作成することから始めたくない場合があります。 Matlabエンジンは実際にはM-ファイルを実行しませんが、Objective-Cプログラムなどの外部プログラムからコマンドを実行します。あなたの開発ルートは、(1)アルゴリズムを実装するためにMファイルを作成し、(2)Matlabの機能が必要なときに重要なステップでMatlabエンジンを呼び出すObjective-Cプログラムを書くことがあります。エンジンをMファイルにするアプリケーションを書くことができますが、これは私の経験外です。

プログラムをビルドするためにMatlabを使用してコンパイラを実行することはできますが、この場合はXcode(またはMac IDE)を使用してプログラムをビルドする方がよいでしょう。 Matlabエンジン。このドキュメントでも、必要なことが説明されています。

ラッパーは関係ありません。 Mファイルは必要ありません。 MatlabエンジンをiOS上で動かすことは、幸いです!

関連する問題