关于matlab 股票数据接口的编译问题
发布:lzh8221 | 分类:Matlab软件培训
关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
程序如下,但是用matlabmex编译出错。求大侠帮忙。我用的版本是2010b的voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*pahs[]){typedefstruct{DWORDdt;//日期:比如读出数据为20031110,代表2003年11月 ...
免费学术公开课,扫码加入![]() |
void mexFunction(int nlhs,
mxArray * plhs[] , int nrhs,const mxArray * pahs[])
{
typedef struct {
DWORD dt;//日期: 比如读出数据为20031110,代表2003年11月10号
DWORD k_price;//开盘价*0.01():读出的价格乘0.01为实际价格。下同。
DWORD h_price;//最高价*0.01
DWORD l_price;//最底价*0.01
DWORD s_price;//收盘价
float s_tolmoney;//(单位:亿)
DWORD bur_tol;//成交量
DWORD unknown; ///没有使用
}ST_K_DATE;
FILE * f = 0;
int nfieldidx= 0;
char * pkdata;
int lday = 8;
int dims[2] = {1, lday };
char msg[128] = "";
char path[512] = {0};
int i,r,c ,*val;
double*kp,*sp,*hp,*lp,*tm,*vol;
int lseekpos;
mxArray *field_value;
const char *field_names[] = {"日期", "开盘价","最高价","最低价","收盘价","成交金额","成交量"};
ST_K_DATE * pd = 0;
r = mxGetM(pahs[0]);
c = mxGetN(pahs[0]);
sprintf(msg,"r:%d , c:%drn",r,c);
mexPrintf(msg);
mxGetString(pahs[0],msg,128);
sprintf(path,"D:/jcb_hxzq/vipdoc/sh/lday/sh%s.day",msg);
mexPrintf(path);
lday = (int)*mxGetPr(pahs[1]);
dims[1] = lday;
pkdata = malloc (sizeof(ST_K_DATE)*lday);
plhs[0] = mxCreateStructArray(2, dims, NUMBER_OF_FIELDS, field_names);
plhs[1] = mxCreateDoubleMatrix(1,lday,mxREAL);
plhs[2] = mxCreateDoubleMatrix(1,lday,mxREAL);
plhs[3] = mxCreateDoubleMatrix(1,lday,mxREAL);
plhs[4] = mxCreateDoubleMatrix(1,lday,mxREAL);
plhs[5] = mxCreateDoubleMatrix(1,lday,mxREAL);
plhs[6] = mxCreateDoubleMatrix(1,lday,mxREAL);
f = fopen(path,"r+b");
lseekpos = sizeof(ST_K_DATE)*lday;
fseek(f,-lseekpos,SEEK_END);
fread(pkdata,sizeof(ST_K_DATE),lday,f);
pd = (ST_K_DATE*)pkdata;
for (i=0;i<lday;i++){
nfieldidx = 0;
msg[0] = 0;
sprintf(msg,"%d",pd.dt);
mxSetField(plhs[0],i,field_names[nfieldidx++],mxCreateString(msg));
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.k_price*0.01f;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.h_price*0.01f;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.l_price*0.01f;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.s_price*0.01f;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.s_tolmoney;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
field_value = mxCreateDoubleMatrix(1,1,mxREAL);
mxGetPr(plhs[nfieldidx]) = *mxGetPr(field_value) = pd.bur_tol;
mxSetField(plhs[0],i,field_names[nfieldidx++],field_value);
}
fclose(f);
}
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
人气文章
本文标题:关于matlab 股票数据接口的编译问题
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_matlabruanjianpeixun_2764764_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



