PDA

查看完整版本 : MATLAB中是否有“队列”?


poster
2019-12-10, 20:48
我想将递归函数转换为迭代函数。我通常要做的是,初始化一个队列,将第一个作业放入队列。然后在while循环中,我消耗了队列中的作业并将新作业添加到队列中。如果我的递归函数多次调用自身(例如,走许多分支的树),则会添加多个作业。伪代码:

queue = new Queue(); queue.put(param); result = 0; while (!queue.isEmpty()) { param = queue.remove(); // process param and obtain new param(s) // change result queue.add(param1); queue.add(param2); } return result; 我在MATLAB中找不到任何类似于结构的队列。我可以使用向量来模拟队列,将3加到队列就像:

a = [a 3] 和删除元素是

val = a(1); a(1) = []; 如果我正确地使用了MATLAB,这种方法将成为性能杀手。

在MATLAB中有使用队列的明智方法吗?

那么其他数据结构呢?



回答:

如果您坚持使用正确的数据结构,则可以在MATLAB内部使用Java:

import java.util.LinkedList q = LinkedList(); q.add('item1'); q.add(2); q.add([3 3 3]); item = q.remove(); q.add('item4');

更多&回答... (https://stackoverflow.com/questions/4142190)