.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)