gpt4 book ai didi

arrays - MATLAB:将行追加到数组而不处理整个数组

转载 作者:行者123 更新时间:2023-12-02 07:05:59 25 4
gpt4 key购买 nike

我正在 1000Hz 的眼动追踪系统上运行解决方案。数据以 X 和 Y 凝视位置坐标的形式来自眼动仪。我正在尝试将这两个坐标添加到数组的末尾。

我目前的解决方案如下:

gazePositionArray = [];    
while gazeDataIsAvailable
[x y] = getNewCoordinates;
gazePositionArray = [gazePositionArray; x y];
end

问题出在第四行。为了更新数组,它复制旧数组的内容并在末尾添加新坐标。例如,对于记录的前 30 秒,这很好,但是阵列中存在的数据越多,计算机为了创建新阵列必须执行的处理就越多(30 秒后,系统尝试复制 30,000每秒 1000 行数据 - 每次迭代都会变得越来越多)

有没有一种方法可以将一行追加到 MATLAB 数组的末尾,而系统无需将整个数组复制到自身中?

最佳答案

一些相关问题:

Matrix of unknown length in MATLAB?

Pre-allocating memory in MATLAB à la std::vector::reserve(n)

<小时/>

典型的解决方案是预先分配一 block “大”内存,并在需要时巧妙地复制到更大的内存。我最喜欢的方法是在当前分配已满时将大小加倍,但还有其他方法。

都不难,但它们都需要几行额外的代码。请参阅上面的问题和答案以获取一些示例。

关于arrays - MATLAB:将行追加到数组而不处理整个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com