首页 > 解决方案 > 在 MATLAB 中创建恒定大小队列的简单方法

问题描述

有没有办法在 MATLAB 中使用 FIFO 队列?好像直接没有这个数据结构。

我有一个循环,并希望在循环过程中有一个 100 个数字的队列。然后在每次迭代中,我想在队列中添加一个新号码并从队列中删除最旧的号码。我需要每个循环中这 100 个数字的平均值。我认为使用队列是完成这项任务的最佳方式。

标签: matlabqueue

解决方案


您可以创建结构向量并将其用作队列。它效率不高,但应该很容易并解决您的问题。

假设你有:

obj1 = struct('field1', 1, 'field2', 2);
obj2 = struct('field1', 2, 'field2', 3);

然后你可以这样做:

queue = [obj1; obj2];

第一个元素可以用 访问queue(1),最后一个元素可以用queue(end)

然后,您可以通过分配删除第一个元素:

queue = queue(2:end);

或最后一个:

queue = queue(1:end-1);

您还可以使用以下方法添加新元素:

queue(end+1) = new_obj;

推荐阅读