//==============================================================================
// Name : pq_push.cpp
// Author : Andrea Tagliasacchi
// Version : 1.0
// Copyright : 2009 (c) Andrea Tagliasacchi
// Description : inserts a new element in the priority queue
//
// May 22, 2009: Created
//==============================================================================
#include "MyHeap.h"
//------------------------------- MATLAB -------------------------------------//
#define toSysout(...) printf(__VA_ARGS__)
#define exit_with_error(...) \
do { \
fprintf(stdout, "Error: "); \
fprintf(stdout, __VA_ARGS__ ); \
fprintf(stdout, "\n" ); \
exit(1); \
} while(0)
#ifdef MATLAB_MEX_FILE
#ifdef _CHAR16T
#define CHAR16_T
#endif
#include "mex.h"
void retrieve_heap( const mxArray* matptr, MaxHeap<double>* & heap){
// retrieve pointer from the MX form
double* pointer0 = mxGetPr(matptr);
// check that I actually received something
if( pointer0 == NULL )
mexErrMsgTxt("vararg{1} must be a valid priority queue pointer\n");
// convert it to "long" datatype (good for addresses)
long pointer1 = (long) pointer0[0];
// convert it to "KDTree"
heap = (MaxHeap<double>*) pointer1;
// check that I actually received something
if( heap == NULL )
mexErrMsgTxt("vararg{1} must be a valid priority queue pointer\n");
}
void retrieve_index( const mxArray* matptr, int& index){
// check that I actually received something
if( matptr == NULL )
mexErrMsgTxt("missing second parameter (element index)\n");
if( 1 != mxGetM(matptr) || !mxIsNumeric(matptr) || 1 != mxGetN(matptr) )
mexErrMsgTxt("second parameter should be a unique integer array index\n");
// retrieve index
index = (int) mxGetScalar(matptr);
if( index % 1 != 0 )
mexErrMsgTxt("the index should have been an integer!\n");
}
void retrieve_cost( const mxArray* matptr, double& cost){
// check that I actually received something
if( matptr == NULL )
mexErrMsgTxt("missing third parameter (element index)\n");
if( 1 != mxGetM(matptr) || !mxIsNumeric(matptr) || 1 != mxGetN(matptr) )
mexErrMsgTxt("second parameter should be a unique integer array index\n");
// retrieve index
cost = (double) mxGetScalar(matptr);
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
if( nrhs!=3 )
mexErrMsgTxt("This function requires 3 arguments\n");
if( !mxIsNumeric(prhs[0]) )
mexErrMsgTxt("parameter 1 missing!\n");
if( !mxIsNumeric(prhs[1]) )
mexErrMsgTxt("parameter 2 missing!\n");
if( !mxIsNumeric(prhs[2]) )
mexErrMsgTxt("parameter 3 missing!\n");
// retrieve the heap
MaxHeap<double>* heap;
retrieve_heap( prhs[0], heap);
// retrieve the parameters
int index;
retrieve_index( prhs[1], index );
double cost;
retrieve_cost( prhs[2], cost);
// push in the PQ
try{
heap->push( cost, index-1 );
}
catch( InvalidKeyIncreaseException exc ){
return;
}
// return control to matlab
return;
}
#endif
没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB中无人机同步规划定位与制图的仿真.rar
共47个文件
m:24个
cpp:6个
mexw64:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 41 浏览量
2024-09-01
13:24:12
上传
评论
收藏 204KB RAR 举报
温馨提示
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB中无人机同步规划定位与制图的仿真.rar (47个子文件)
MATLAB中无人机同步规划定位与制图的仿真
pq_pop.cpp 2KB
anneal.m 8KB
pq_push.mexglx 13KB
pq_demo.m 1024B
calccost.m 1KB
testcost.m 460B
pq_push.m 902B
drawCircle.m 190B
README.markdown 2KB
pq_top.mexglx 13KB
voronoi_astar.m 3KB
pq_delete.mexw64 8KB
setupN1000.mat 114KB
makeNoiseFilter.m 864B
pq_size.mexw64 8KB
pq_top.m 769B
grad2.m 207B
plotlocal.m 3KB
obstacle2.mat 522B
pq_size.mexglx 7KB
obstacles.mat 352B
pq_top.mexw64 13KB
pq_size.m 858B
pq_create.m 1KB
pq_create.mexw64 11KB
pq_push.cpp 3KB
graddesc.m 910B
pq_delete.cpp 2KB
noiseFilter.m 1KB
pq_push.mexw64 16KB
plotlocal3d.m 3KB
pq_size.cpp 2KB
noiseFilterDist.m 1KB
pq_pop.m 725B
voronoi_planner.m 14KB
pq_delete.m 570B
pq_delete.mexglx 7KB
pq_create.cpp 2KB
simulator_main.m 21KB
aStar.m 3KB
pq_top.cpp 2KB
pq_pop.mexglx 13KB
MyHeap.h 13KB
runFigs.m 210B
localplan.m 208B
pq_pop.mexw64 14KB
pq_create.mexglx 8KB
共 47 条
- 1
资源评论
matlab科研助手
- 粉丝: 3w+
- 资源: 5959
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-基于springboot+vue的学校赛事管理系统【前后端源码+SQL+可运行】41015.zip
- JavaWeb实验四lab4【源代码+注释】
- 扫雷游戏代码分享(c基础) 36 36后门
- (1985-2022年)297个地级市农业技术创新【重磅,更新!!】
- 基于MATLAB车牌识别系统系统【含界面GUI】.zip
- 基于MATLAB车牌识别系统系统【GUI含界面】.zip
- 基于NI Vision和MATLAB的图像颜色识别与透视变换
- 基于Spring与MyBatis整合实战教程
- 基于MATLAB车牌识别系统实现系统【含界面GUI】.zip
- VID_20241026_153326.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功