Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中为单元阵列的单元阵列创建FIFO队列?_Matlab_Queue_Fifo_Cell Array - Fatal编程技术网

如何在MATLAB中为单元阵列的单元阵列创建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队列?有什么想法吗?

假设我们有一个由单元阵列组成的单元阵列,称为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;