В Преобразовании Вложенная Система. Пример Массивов объектов, массив ячеек 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, согласно информации в Обрабатывают Данные, Возвращенные в Объекты.NET.
Создайте переменные MATLAB для каждого типа в массивах ячеек.
Вызовите функции MATLAB с переменными MATLAB.
Этот пример показывает, как скопировать данные 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 и преобразуйте:
% 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 с этими данными:
% Remove the previous figure close % Plot the data and label the graph figure('Name',mytitle,'NumberTitle','off') plot(y) xlabel(myxlabel)