matlab中是否有任何库提供min priorityqueue的功能
import java.util.PriorityQueue;
import java.util.*;
public class MyQueue {
Comparator<Double> c;
PriorityQueue<Double> PQ;
public MyQueue() {
c = new Comparator<Double>(){
public int compare(Double o1, Double o2){
if(o2 > o1) {
return -1;
} else if(o1 > o2) {
return 1;
} else {
return 0;
}
}
};
PQ = new PriorityQueue<Double>(1000,c);
}
public void addElement(double d) {
PQ.add(d);
}
public double removeElement() {
return(PQ.remove());
}
}
Run Code Online (Sandbox Code Playgroud)
我在java中实现了这个priorty队列.我可以从matlab调用它.但是,我需要将每个成本与索引相关联.我的意思是,不仅需要存储节点的成本,还需要存储其索引.我怎样才能做到这一点.我需要从matlab传递索引
如此处所示,您可以使用默认Java,PriorityQueue如下所示:
>> q=java.util.PriorityQueue;
>> q.add({value,index});
Run Code Online (Sandbox Code Playgroud)
这是从Java 1.5开始提供的,它自7.0.4以来在所有Matlab版本中预先捆绑.
否则,您可以使用文件交换中的那个,您必须编译它.
还有一个Simulink模块,但我怀疑这是你所追求的.