0

我正在使用 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 循环中写入该矩阵。

4

1 回答 1

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 数组,该数组可以转换为另一种数据类型并绘制

于 2017-09-05T13:14:59.963 回答