В системе 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 и преобразуйте:
% 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)