Main Content

.NET データの cell 配列の受け渡し

.NET データの cell 配列の例

入れ子形式の System.Object 配列の変換の例では、cell 配列 mlData には、MyGraph.getNewData メソッドからのデータが含まれています。ソース ファイル内のクラス ドキュメンテーションを読むことで、次のような MATLAB® グラフを作成できます。

dllPath = fullfile('c:','work','NetDocCell.dll');
asm = NET.addAssembly(dllPath);
graph = NetDocCell.MyGraph;

% Create cell array containing all data
mlData = cell(graph.getNewData);

% Plot the data and label the graph
figure('Name',char(mlData{1}))
plot(double(mlData{2}(2)))
xlabel(char(mlData{2}(1)))

しかし、型や次元の異なるデータの追跡や .NET データを MATLAB 型にマップするために必要な変換は、cell 配列構造を使用する複雑な操作です。MATLAB で入れ子になった配列 System.Object の内容を操作するためのヒントを紹介します。.NET メソッドからデータを読み取った後、次を行います。

  • すべての配列 System.Object に cell 配列を作成します。

  • .NET オブジェクトから返されるデータの処理の情報に従って、.NET データ型を MATLAB のデータ型に変換します。

  • cell 配列内に各型の MATLAB 変数を作成します。

  • MATLAB 変数で MATLAB 関数を呼び出します。

System.Object に対する cell 配列の作成

この例では、cell 配列に System.Object データをコピーする方法を示します。

次のステートメントは、cell 配列 mlData を作成します。

mlData = cell(graph.getNewData)
mlData = 
    [1x1 System.String]    [1x1 System.Object[]]

この cell 配列にはこれらの型の要素が含まれます。

配列 System.Object の内容にアクセスするには、別の cell 配列 mlPlotData を作成します。

mlPlotData = cell(mlData{2})
mlPlotData = 
    [1x1 System.String]    [1x1 System.Double[]]

この cell 配列にはこれらの型の要素が含まれます。

.NET データからの MATLAB 変数の作成

セル データを MATLAB 変数に代入し、変換します。

% Create descriptive variables
% Convert System.String to char
mytitle = char(mlData{1});
myxlabel = char(mlPlotData{1});
% Convert System.Double to double
y = double(mlPlotData{2});

MATLAB 変数での MATLAB 関数の呼び出し

次のデータを使用して MATLAB グラフを作成します。

% Remove the previous figure
close
% Plot the data and label the graph
figure('Name',mytitle,'NumberTitle','off')
plot(y)
xlabel(myxlabel)