Main Content

.NET 配列の cell 配列への変換

.NET の配列 System.String および配列 System.Object を MATLAB® の cell 配列に変換するには、関数 cell を使用します。cell 配列の要素は .NET 型に最も近い MATLAB 型です。詳細は、.NET 型の MATLAB 型へのマッピングを参照してください。

たとえば、.NET の System.IO.Directory クラスを使用して、c:\ フォルダーにあるフォルダー名の cell 配列を作成します。

myList = cell(System.IO.Directory.GetDirectories('c:\'));

入れ子形式の System.Object 配列の変換

変換は配列 System.Object 内に含まれる配列 System.Object に対して再帰的ではありません。関数 cell を使用して、各配列 System.Object を変換しなければなりません。

例として、MATLAB 例での .NET アプリケーションのビルドの指示に従って NetDocCell アセンブリをビルドします。ソース コードは次のとおりです。

 C# NetDocCell ソース ファイル

アセンブリを読み込み、cell 配列 mlData を作成します。

dllPath = fullfile('c:','work','NetDocCell.dll');
NET.addAssembly(dllPath);
obj = NetDocCell.MyGraph;
mlData = cell(obj.getNewData)

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

mlData = 
    [1x1 System.String]    [1x1 System.Object[]]

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

mlPlotData = cell(mlData{2})

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

mlPlotData = 
    [1x1 System.String]    [1x1 System.Double[]]

System.Object[,] 配列に対する関数 cell の構文

関数 cell の次の構文を使用して、配列 System.Object[,] に格納されている System.DateTime および System.String のデータを MATLAB データの cell 配列に変換します。

A = cell(obj,'ConvertTypes',type)

ここで、obj は .NET の配列 System.Object[,]type は次のいずれかになります。

  • {'System.DateTime'}System.DateTime の要素を MATLAB の datetime 要素に変換。

  • {'System.String'}System.String 要素を MATLAB 文字配列に変換。

  • {'all'} — サポートされているすべての .NET 型を、等価な MATLAB 型に変換。

A は、配列 obj と同じサイズの cell 配列です。

関連するトピック