预分配 .NET 数组矩阵

Preallocating a Matrix of .NET Arrays

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

似乎将 .NET 数组存储在单元格中意味着您可以稍后将其提取并索引

for k = 1:10
data{k} = NET.createArray('System.Int16', 50000);
end

for i = 1:10
data{i} = ain.DAQbufferGet();
end

data{i} returns 可以转换为另一种数据类型并绘制的 .NET 数组