メインコンテンツ

C# クライアントから MATLAB への複素数データの受け渡し

R2026b

MATLAB® R2022b 以降で C# アプリケーションから MATLAB にデータを渡すには、.NET 用 MATLAB エンジン API の使用を検討してください。詳細については、MATLAB 関数への .NET データ型の受け渡しと.NET からの MATLAB 関数の実行を参照してください。

MATLAB を COM オートメーション サーバーとして使用して MATLAB R2022a 以前用に作成された既存のプログラムを維持する必要がある場合は、クライアントである C# プログラム内で複素数データを作成して MATLAB に渡す、この例を使用します。行列は、実数値を変数 pr に、虚数値を pi にもつベクトルで構成されています。例では、この行列が C# プログラムに読み戻されます。

C# の MATLAB タイプ ライブラリのリファレンス:

MLApp.MLApp matlab = new MLApp.MLApp();

C# クライアント プログラムから、MATLAB COM オブジェクトにプロジェクトへの参照を追加します。たとえば、Microsoft® Visual Studio® でプロジェクトを開きます。[Project] メニューから、[Add Reference] を選択します。[Add Reference] ダイアログ ボックスから [COM] を選択します。MATLAB アプリケーションを選択します。詳細については、ベンダーのドキュメンテーションを参照してください。

以下に詳しい例を示します。

using System;
namespace ConsoleApplication4
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
MLApp.MLApp matlab = new MLApp.MLApp(); 

System.Array pr = new double[4];
pr.SetValue(11,0);
pr.SetValue(12,1);
pr.SetValue(13,2);
pr.SetValue(14,3);

System.Array pi = new double[4];
pi.SetValue(1,0);
pi.SetValue(2,1);
pi.SetValue(3,2);
pi.SetValue(4,3);

matlab.PutFullMatrix("a", "base", pr, pi);

System.Array prresult = new double[4];
System.Array piresult = new double[4];

matlab.GetFullMatrix("a", "base", ref prresult, ref piresult);
}
}
}

参考

|

トピック