|
发表于 2004-7-27 20:10:06
|
显示全部楼层
<>一个与C的接口程序文件</P>
<>#include<stdio.h></P>
<>#inglclude"mex.h"</P>
<P>#include"matrix.h</P>
<P> void make(int *v1,*v2,*v3,dohble *y,x[][])</P>
<P>{</P>
<P>int a ,b ,i,j;</P>
<P>a=*v1;</P>
<P>b=*v2;</P>
<P>donble m,f;</P>
<P>m=*y;</P>
<P>double g[a];</P>
<P>for(i=0;i<b;i++)</P>
<P>{</P>
<P>for(j=0;j<a;j++)</P>
<P>{</P>
<P>c[j]=rand()*m;</P>
<P>}</P>
<P>}</P>
<P>for(i=0;i<b;i++)</P>
<P>{</P>
<P>for(j=0;j<a;j++0)</P>
<P>{</P>
<P>x[j]=c[j];</P>
<P>}</P>
<P>}</P>
<P>return;</P>
<P>}</P>
<P>void mexfunction(int nlhs,mxarrt*plhs[],int nrhs,constmxarry*prhs[])</P>
<P>{</P>
<P>int *a,*b,*d;</P>
<P>double *x,x1;</P>
<P>int R,C;</P>
<P>a=mxGetpr(prhs[0]);</P>
<P>b=mxGetpr(prhs[1]);</P>
<P>d=mxGetpr(prhs[2]);</P>
<P>R=*a;</P>
<P>C=*b;</P>
<P>if(!mxIsNumeric(prhd[0]) and !mxIsNumeric(prhd[1]) and !mxIsNumeric(prhd[2]))</P>
<P>{</P>
<P>mxErrMsgTxt("error")</P>
<P>}</P>
<P>plhs[0]=mxGreatDoubleMwtrix(R,C,mxREAL);</P>
<P>x=mxGetpr(plhs[0]);</P>
<P>make(a,b,d,x);</P>
<P>}</P>
<P>编译保存在默认的matla下的make.m</P>
<P>调用时</P>
<P>>>x=make(1,2,3)</P>
<P>x=........</P>
<P>产生一个一行两列的0到3的随机矩阵</P>[em09][em09][em09][em09] |
|