matlab - 在 MATLAB 中创建恒定大小队列的简单方法
问题描述
有没有办法在 MATLAB 中使用 FIFO 队列?好像直接没有这个数据结构。
我有一个循环,并希望在循环过程中有一个 100 个数字的队列。然后在每次迭代中,我想在队列中添加一个新号码并从队列中删除最旧的号码。我需要每个循环中这 100 个数字的平均值。我认为使用队列是完成这项任务的最佳方式。
解决方案
您可以创建结构向量并将其用作队列。它效率不高,但应该很容易并解决您的问题。
假设你有:
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;
推荐阅读
- java - 自定义程序 - IndexOutOfBoundsException
- python - request.get(url) 仅返回正文为空的标头信息
- python - 如何获取外键字段
- authentication - 如何在 Laravel 中为类似请求制作全局策略/中间件/门
- docker - Docker compose 容器通信
- python - 如何使用 phpmyadmin 从 django 中的数据库中获取数据
- c# - 如何在 C# 中存储文件或文本的数字签名?
- python - 如何使用 python 从 Telemart 中抓取数据?
- php - 如果没有特色图片,请在 elementor pro post 元素上添加无图片占位符
- c++ - 这个 Union 和 Bit 字段交互是如何工作的?