Предварительное выделение матрицы массивов.NET
Я использую Matlab для настройки процесса сбора данных для эксперимента, функция ain.DAQbufferGet
это то, что читает данные с нашего оборудования. Он содержит ряд точек данных, таких как [-200,-160,10,50,-20,40,170,160,-200... etc]
,
Проблема в том, что вывод DAQbufferGet является 1x1 System.Int16[]
Такой вывод также может быть создан с помощью
`NET.createArray('System.Int16', 50000)`
Вот 50000
это просто пример номер
Я хочу сохранить вывод DAQbufferGet в матрице без необходимости преобразовывать его в другой тип данных и иметь возможность отобразить его позже (вне цикла), как показано здесь:
data = int16(zeros(10, 50000));
for k = 1:10
data(k,:) = int16(zeros(1,50000));
end
for i = 1:10
data(i,:) = int16(ain.DAQbufferGet());
end
Мне было трудно сделать что-то подобное с 1x1 System.Int16[]
тип данных
Как бы я это сделал?
В частности, предварительно выделите матрицу массивов.NET, которые впоследствии можно будет записать в цикле for, описанном выше.
1 ответ
Похоже, что хранение массива.NET в ячейке означает, что вы можете позже извлечь его и проиндексировать как таковой
for k = 1:10
data{k} = NET.createArray('System.Int16', 50000);
end
for i = 1:10
data{i} = ain.DAQbufferGet();
end
data{i} возвращает массив.NET, который можно преобразовать в другой тип данных и вывести на график