![]() |
MATLAB中是否有“队列”?
我想将递归函数转换为迭代函数。我通常要做的是,初始化一个队列,将第一个[I]作业[/I]放入队列。然后在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中有使用队列的明智方法吗? 那么其他数据结构呢? [B]回答:[/B] 如果您坚持使用正确的数据结构,则可以在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'); [url=https://stackoverflow.com/questions/4142190]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 22:45。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.