0

C#.NET を使用して UI を実装し、MATLAB で開発した画像処理手順を使用しています。したがって、これら 2 つのプロセスを 1 つのシステムとして使用するには、MATLAB を C#.NET に統合する方法を知る必要があります.....

4

2 に答える 2

0

マトラブビルダー?http://www.mathworks.co.uk/products/netbuilder/

于 2011-06-22T10:55:09.843 に答える
0

C#/.NET 内からユーザー定義の matlab 関数を呼び出す方法:

ここで一度詳しく説明しました。この統合方法では、matlab 関数を C#/.NET で参照できる dll アセンブリにコンパイルするために、matlabの展開ツールが必要になります。

要約すると、これらの手順は次のとおりです。

1) matlab 関数 (m ファイル) を記述して保存します。これらの関数は C#/.NET から呼び出します

2) matlab で展開ツール(deploytool) を開き、すべての matlab m ファイルをパッケージに追加します。たとえば、MyMatlabFunctions.prjという名前を付けます。

3) MyMatlabClassのような名前でパッケージをデプロイするクラスを追加します。このクラスには、matlab 関数の .NET 変換 (またはコンパイル) が含まれます。

4) deploytool を使用してパッケージMyMatlabFunctions.prjをビルドします。生成されたMyMatlabFunctions.dllは、Visual Studio プロジェクトで参照されます。

5) matlab 関連の参照 (dll) のMatCode.dllMWarray.dllを Visual Studio プロジェクトに追加します。

6) matlab 関数の dll 変換を呼び出す C#/.NET メソッドを記述します。以下の簡単な例: 行列の加算 (addMatrices.m)

static public void SimpleMatrixAddition()
{
    double[,] a = { { 2, 3 }, { 5, 6 }, { 8, 9 } }; //Matrix 1
    double[,] b = { { 1, 2}, { 4, 5}, { 7, 8} };    //Matrix 2

    MWNumericArray arr1 = a;
    MWNumericArray arr2 = b;

    MyMatClass obj = new MyMatClass();

    // call matlab function (addMatrices.m)
    MWArray result = (MWNumericArray)obj.addMatrices((MWArray)arr1, (MWArray)arr2);

    // display matlab matrix
    Console.WriteLine("matlab matrix:\n" + result);
    Console.ReadKey();
}
于 2014-07-25T20:27:11.710 に答える