如何在MATLAB中为单元阵列的单元阵列创建FIFO队列?
假设我们有一个由单元阵列组成的单元阵列,称为Q,a,每个单元都是如下所示的单元阵列,例如: Q{1}{1} ans= 等等。问题是,我想创建一个FIFO队列,以便“清除”每个单元格,并将每个单元格的内容发送给另一个函数(在上面的单元格中,值为0 451 0),每次一个接一个。必须仅使用FIFO队列,因为它是特定算法实现的一部分。 如果可能的话,我宁愿不要像LinkedList那样在Matlab中使用Java,因为我已经在其他主题中读过了 我怎样才能用这个单元阵列来完成FIFO队列?有什么想法吗?任何帮助都将不胜感激。接受第一个价值观如何在MATLAB中为单元阵列的单元阵列创建FIFO队列?,matlab,queue,fifo,cell-array,Matlab,Queue,Fifo,Cell Array,假设我们有一个由单元阵列组成的单元阵列,称为Q,a,每个单元都是如下所示的单元阵列,例如: Q{1}{1} ans= 等等。问题是,我想创建一个FIFO队列,以便“清除”每个单元格,并将每个单元格的内容发送给另一个函数(在上面的单元格中,值为0 451 0),每次一个接一个。必须仅使用FIFO队列,因为它是特定算法实现的一部分。 如果可能的话,我宁愿不要像LinkedList那样在Matlab中使用Java,因为我已经在其他主题中读过了 我怎样才能用这个单元阵列来完成FIFO队列?有什么想法吗?
input = Q(1); % or Q{1} depending on requirements
清除第一个值:
Q(1) = []; % Q will now be, e.g. 1x3255 cell
% Q(1) is now the old Q(2)
这需要是()而不是{}-后者将只清空Q(1)
的内容(Q
将保持1 x 3256)
要向队列末尾添加其他值,请执行以下操作:
Q(end+1) = newdata;
好的,谢谢,你在这个问题上有很好的方法。我想问你们两件事:第一,这个解决方案能更像FIFO吗?也就是说,分别为队列Q的第一个和最后一个元素使用head和tail变量?另外,您能帮我介绍一下如何将新数据添加到队列的末尾吗?我认为它比一般的陈述Q(end+1)=newdata要复杂得多;因为我们必须处理一个单元格数组,一个单元格数组。提前谢谢!
Q(end+1) = newdata;