Передайте массивы ячеек данных .NET

Пример массивов ячеек данных .NET

В системе Convert Nested System. Массивы объектов пример, массив ячеек 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, сложно с помощью структуры массива ячеек. Вот несколько советов по работе с содержимым вложенных System.Object массивы в MATLAB. После чтения данных из метода .NET:

  • Создайте массивы ячеек для всех System.Object массивы.

  • Преобразуйте типы .NET в типы MATLAB в соответствии с информацией в указателе Данные Returned from .NET Objects.

  • Создайте переменный MATLAB для каждого типа в массивах ячеек.

  • Вызовите функции MATLAB с переменным MATLAB.

Создайте массив ячеек для каждой System.Object

В этом примере показано, как скопировать System.Object данные в массив ячеек.

Следующий оператор создает массив ячеек mlData:

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

Этот массив ячеек содержит элементы этих типов.

Для доступа к содержимому System.Object массив, создайте другой массив ячеек mlPlotData:

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

Этот массив ячеек содержит элементы этих типов.

Создайте переменный MATLAB из данных .NET

Присвойте данные камеры переменным 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)