预分配.NET阵列矩阵

时间:2017-09-04 11:16:39

标签: .net matlab for-loop optimization pre-allocation

我正在使用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 个答案:

答案 0 :(得分:1)

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

$count = $xml.Report.Error.Count
for ($i = 0; $i -lt $count; $i++)
{ 
    Write-Host $xml.Report.Error.Get($i)
}

data {i}返回一个.NET数组,该数组可以转换为另一种数据类型并绘制

相关问题