1

私の主な目標は、matlab(.m) で記述されたコードを別の c# アプリケーションと統合することです。私は2つのオプションを検討しました:

  1. Matlab Builder NE を使用する
    • メリット:使うから使う!
    • 短所: 今まで持っていないライセンス ($$) が必要です。エンド ユーザーの PC に MCR をインストールする必要があります。
  2. .m ファイルからスタンドアロン EXE ファイルを生成する
    • 長所: 何も実行する必要はありません。
    • 短所:初心者には使いにくい。すべての機能をサポートしていません。

これまでのところ、オプション 2) の「概念実証」を試みていますが、成功していません。質問の始め方すらわかりません。ツールボックスについてもう少し詳しく知るとすぐに、質問を改善します。質問が基準を満たしていない場合はお知らせください。

  1. Matlab Coder、Real-Time Workshop(RTW)、RTW Embedded Coder の関係は? 両方の RTW ライセンスを持っていることは確かですが、「Matlab Coder」を持っているかどうかはわかりません
  2. 「emlc」コマンドを使用して EXE を生成しようとしています。それは正しいコマンドですか?私はそれを機能させることができませんでした。C/C++ コードを正しく生成しましたが、EXE が生成されません (既に MEX セットアップを構成しています)。
  3. 「emlc」によって生成された C/C++ コードを Visual Studio にインポートして、EXE をコンパイルおよびビルドできますか? 超簡単ですか?
  4. 「Emlc」はどのツールボックスに属していますか?
  5. %#codegen ディレクティブは何を表していますか?
  6. .m ファイルに 2 つの関数 (functionA、functionB) があるとします。また、EXE を生成できたと想像してください。exeのエントリポイントは何ですか? それは機能Aまたは機能Bでしょうか?データ型を定義するにはどうすればよいですか?
4

2 に答える 2

3

MATLAB Coder は、Simulink がなくても MATLAB から C コードを生成できる比較的新しい製品です。それ以前は、(Simulink を使用していなくても) を使用して MATLAB から C コードを生成するには、Simulink と Real-Time Workshop が必要でした。emlc. MATLAB Coder がリリースされたとき、Real-Time Workshop は Simulink Coder に、Real-Time Workshop Embedded Coder は Embedded Coder に名前が変更されました。MATLAB/Simulink Coder と Embedded Coder の違いは、「基本的な」コーダー製品は機能的に正しいコードを生成できるが、そのコードはリアルタイム パフォーマンス向けに最適化されていないか、特定のコーディング標準を満たすようにカスタマイズできないことです。Embedded Coder を使用すると、MATLAB および Simulink Coder によって生成されたコードを最適化およびカスタマイズできます。MATLAB Coder は Simulink Coder の前提条件であるため、RTW のライセンスをお持ちの場合は、MATLAB Coder のリリース時に無料のライセンスが付与されます。

emlcMATLAB Coderに属していると思います。MATLAB Coder によって生成されたコードは、Visual Studio にインポートしてコンパイルできます。実際にどれだけ簡単かはわかりませんが、このプロセスを簡単にする「Pack N Go」という機能があるので、チェックしてみてください。Visual Studio ターゲットもありますが、これがベース MATLAB Coder に含まれているのか、Embedded Coder も必要なのかは不明です。

于 2013-10-10T13:39:11.700 に答える
2

6) 参照:

エントリ ポイントは MATLAB の場合と同じです。つまり、m ファイルで定義された最初の関数です。コマンドライン引数はすべて文字列としてこの関数に渡されます。

于 2013-10-10T14:18:46.857 に答える