mex的问题c [英] the trouble with mex c

查看:51
本文介绍了mex的问题c的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




抱歉,如果此消息被发布两次,我似乎有一些问题发布

到新闻组。

我已经在c中使用mex接口方法在matlab中重写了一些循环,并且

我的计算时间缩短了大约五个小时:)。然而,结果数组

与matlab不同。这是我第一次在

c中写一些东西,我怀疑我做了一些

错误导致内存区域被覆盖,指针是

误用了,那种与blab一起发布的lcc编译器抱怨的事情没有。我没有

调试器,在重读了c和

mex文档后,我不知道该怎么办。有人会照顾一下

瞥一眼

并且可能会发现一些初学者错误会导致错误的结果?

我可以发送代码

作为附件。


我非常感谢,


Martijn

Hi,

sorry if this message gets posted twice, i seem to have some problem posting
to newsgroups.

i''ve rewritten some loop in matlab using the mex interface method in c, and
i''ve achieved a reduction in calculation time of about five hours :).
however, the resulting arrays
are not the same as with matlab. this is the first time i write something in
c, and i suspect i''m making some
mistakes that causes memory regions to be overwritten, pointers to be
misused, that sort of thing that
doesn''t make the lcc compiler shipped with matlab complain. i''ve got no
debugger and after rereading c and
mex documentation i''ve got no clue what to do. would someone care to take a
glance at the code
and maybe identify some beginners mistake that causes the erroneous results?
I can send the code
as an attachment.

I would greatly appreciate that,

Martijn

推荐答案

" Martijn van den Branden" <米************* @ student.tudelft.nl>写在

消息新闻:bv ********** @ news.tudelft.nl ...
"Martijn van den Branden" <m.*************@student.tudelft.nl> wrote in
message news:bv**********@news.tudelft.nl...

< snip> ;有人会关注一下代码
并且可能会发现一些初学者错误会导致错误的
结果吗?我可以将代码
作为附件发送。
Hi, <snip> would someone care to take a glance at the code
and maybe identify some beginners mistake that causes the erroneous results? I can send the code
as an attachment.




不要发送附件,将其修剪到合理的大小(不超过

a几KB,但注意不要删除显示问题的位)和

在这里发布。


Peter



Don''t send in an attachment, trim it down to a reasonable size (no more than
a few KB, but take care not to cut out the bits that show the problem) and
post it here.

Peter


我已经在下面列出了完整的代码,但在我删除了声明的地方

的变量

,他们显然被......取代了...


提前致谢,


Martijn


__________________________________________________ __________________________

#include" mex.h"

#include< math.h>

#define PI 3.14159


虚源(双x,双y,双z,双x1,双y1,双z1,

双x2,双y2,双z2,双x3 ,双y3,双

z3,

双x4,双y4,双z4,双* srcphi,双

* dblphi)

{




以下公式中的局部变量的所有声明都在这里。


*(srcphi)= -1.0 /(4 * PI)*(



(((x- x1)*(y2-y1) - (y-y1)*(x2-x1))/ d12)* log((r1 + r2 + d12)/(r1 + r2-d12))+

(((x-x2)*(y3-y2) - (y-y2)*(x3-x2))/ d23)* log((r2 + r3 + d23)/(r2 + r3-d23)) +

(((x-x3)*(y4-y3) - (y-y3)*(x4-x3))/ d34)* log((r3 + r4 + d34)/( r3 + r4-d34))+

(((x-x4)*(y1-y4) - (y-y4)*(x1-x4))/ d41)* log((r4 + r1 + d41)/(r4 + r1-d41))



+ fabs(z)*(

atan((m12) * e1-h1)/(z * r1)) - atan((m12 * e2-h2)/(z * r2))+

atan((m23 * e2-h2)/(z * r2)) - atan((m23 * e3-h3)/(z * r3))+

atan((m34 * e3-h3)/(z * r3)) - atan(( m34 * e4-h4)/(z * r4))+

atan((m41 * e4-h4)/(z * r4)) - atan((m41 * e1-h1)/( z * r1))



);


*(dblphi)= -1.0 /(4 * PI)* (

atan((m12 * e1-h1)/(z * r1)) - atan((m12 * e2-h2)/(z * r2))

+ atan((m23 * e2-h2)/(z * r2)) - atan((m23 * e3-h3)/(z * r3))
+ atan((m34 * e3-h3)/(z * r3)) - atan((m34 * e4-h4)/(z * r4))

+ atan((m41 * e4-h4)/(z * r4)) - atan((m41 * e1-h1)/(z * r1)));


返回; < br $>
}


void coefficientmatrix(int totpanelsf,int totpanelswake,double eps,

double * xcf,double * ycf,double * zcf,

double * x1f,double * y1f,double * z1f,

double * x2f,double * y2f,double * z2f,

...

...

double * xe2wake,double * ye2wake,double

* ze2wake,

double * xe3wake,double * ye3wake,double

* ze3wake,

double * z1wakeqs,double * z2wakeqs,double

* z3wakeqs,double * z4wakeqs,

double * A,double * S,double * E)

{

int i,j,k, count = 0,count2 = 0;

double xp,yp,zp;

double pcolloc [3],p1 [3],p2 [3],p3 [3 ],p4 [3];

双srcphi,dblphi;


for(i = 0; i< totpanelsf; i ++)

{


xp = xcf [i] -nxf [i ] * eps;

yp = ycf [i] -nyf [i] * eps;

zp = zcf [i] -nzf [i] * eps;


for(j = 0; j< totpanelsf; j ++)

{


pcolloc [0] = xe1 [ j] *(xp-xcf [j])+ ye1 [j] *(yp-ycf [j])+ ze1 [j] *(zp-zcf [j]);

pcolloc [ 1] = xe2 [j] *(xp-xcf [j])+ ye2 [j] *(yp-ycf [j])+ ze2 [j] *(zp-zcf [j]);

pcolloc [2] = nxf [j] *(xp-xcf [j])+ nyf [j] *(yp-ycf [j])+ nzf [j] *(zp-zcf [j]);


p1 [0] =

xe1 [j] *(x1f [j] -xcf [j])+ ye1 [j] *(y1f [ j] -ycf [j])+ ze1 [j] *(z1fqs [j] -zcf [j]);

p1 [1] =

xe2 [j ] *(X1F [j]的-xcf [j]的)+ YE2 [J] *(Y1F [j]的-ycf [j]的)+ ZE2 [J] *(z1fqs [j]的-zcf [J]); <无线电通信/>
p1 [2] =

nxf [j] *(x1f [j] -xcf [j])+ nyf [j] *(y1f [j] -ycf [j ])+ nzf [j] *(z1fqs [j] -zcf [j]);


p2 [0] =

xe1 [j] * (x2f [j] -xcf [j])+ ye1 [j] *(y2f [j] -ycf [j])+ ze1 [j] *(z2fqs [j] -zcf [j]);

p2 [1] =

xe2 [j] *(x2f [j] -xcf [j])+ ye2 [j] *(y2f [j] -ycf [j]) + ze2 [j] *(z2fqs [j] -zcf [j]);

p2 [2] =

nxf [j] *(x2f [j] - XCF [j])+ NYF [J] *(Y2F [j]的-ycf [j]的)+ NZF [J] *(Z 2fqs [j] -zcf [j]);


p3 [0] =

xe1 [j] *(x3f [j] -xcf [j ])+ ye1 [j] *(y3f [j] -ycf [j])+ ze1 [j] *(z3fqs [j] -zcf [j]);

p3 [1] =

xe2 [j] *(x3f [j] -xcf [j])+ ye2 [j] *(y3f [j] -ycf [j])+ ze2 [j] *(z3fqs [ j] -zcf [j]);

p3 [2] =

nxf [j] *(x3f [j] -xcf [j])+ nyf [j ] *(y3f [j] -ycf [j])+ nzf [j] *(z3fqs [j] -zcf [j]);


p4 [0] =

xe1 [j] *(x4f [j] -xcf [j])+ ye1 [j] *(y4f [j] -ycf [j])+ ze1 [j] *(z4fqs [j] -zcf [j]);

p4 [1] =

xe2 [j] *(x4f [j] -xcf [j])+ ye2 [j] * (y4f [j] -ycf [j])+ ze2 [j] *(z4fqs [j] -zcf [j]);

p4 [2] =

NXF [J] *(x4f [j]的-xcf [j]的)+ NYF [J] *(Y4F [j]的-ycf [j]的)+ NZF [J] *(z4fqs [j]的-zcf [j]的) ;


来源(pcolloc [0],pcolloc [1],pcolloc [2],p1 [0],p1 [1],p1 [2],

p2 [0],p2 [1],p2 [2],p3 [0],p3 [1],p3 [2],

p4 [0],p4 [1] ,p4 [2],& srcphi,& dblphi);


*(S + count)= srcphi;

*(A + count) = dblphi;

count ++;

}


for(k = 0; k< totpanelswake; k ++)

{


pcolloc [0] =

xe1wake [k] *(xp-xcwake [k])+ ye1wake [k] *(yp-ycwake [k])+ ze1wake [k ] *(zp-zcwake [k]

);

pcolloc [1] =

xe2wake [k] *(xp-xcwake [ k])+ ye2wake [k] *(yp-ycwake [k])+ ze2wake [k] *(zp-zcwake [k]

);

pcolloc [ 2] =

xe3wake [k] *(xp-xcwake [k])+ ye3wake [k] *(yp-ycwake [k])+ ze3wake [k] *(zp-zcwake [k ]

);


p1 [0] =

xe1wake [k] *(x1wake [k] -xcwake [k ])+ ye1wake [k] *(y1wake [k] -ycwake [k])+ ze1wake [k]

*(z1wakeqs [k] -zcwake [k]);

p1 [1] =

xe2wake [k] *(x1wake [k] -xcwake [k])+ ye2wake [k] *(y1wake [k] -ycwake [k])+ ze2wake [k]

*(z1wakeqs [k] -zcwake [k]);

p1 [2] =

xe3wake [k] *(x1wake [k] -xcwake [k])+ ye3wake [k] *(y1wake [k] -ycwake [k])+ ze3wake [k]

*(z1wakeqs [k] -zcwake [k]);


p2 [0] =

xe1wake [k] *(x2wake [k] -xcwake [k])+ ye1wake [k ] *(y2wake [k] -ycwake [k])+ ze1wake [k]

*(z2wakeqs [k] -zcwake [k]);

p2 [1 ] =

xe2wa ke [k] *(x2wake [k] -xcwake [k])+ ye2wake [k] *(y2wake [k] -ycwake [k])+ ze2wake [k]

*(z2wakeqs [ k] -zcwake [k]);

p2 [2] =

xe3wake [k] *(x2wake [k] -xcwake [k])+ ye3wake [k ] *(y2wake [k] -ycwake [k])+ ze3wake [k]

*(z2wakeqs [k] -zcwake [k]);


p3 [0] =

xe1wake [k] *(x3wake [k] -xcwake [k])+ ye1wake [k] *(y3wake [k] -ycwake [k])+ ze1wake [ k]

*(z3wakeqs [k] -zcwake [k]);

p3 [1] =

xe2wake [k] *( x3wake [k] -xcwake [k])+ ye2wake [k] *(y3wake [k] -ycwake [k])+ ze2wake [k]

*(z3wakeqs [k] -zcwake [k ]);

p3 [2] =

xe3wake [k] *(x3wake [k] -xcwake [k])+ ye3wake [k] *(y3wake [k ] -ycwake [k])+ ze3wake [k]

*(z3wakeqs [k] -zcwake [k]);


p4 [0] =

xe1wake [k] *(x4wake [k] -xcwake [k])+ ye1wake [k] *(y4wake [k] -ycwake [k])+ ze1wake [k]

*(z4wakeqs [k] -zcwake [k]);

p4 [1] =

xe2wake [k] *(x4wake [k] -xcwake [k])+ ye2wake [k] *(y4wake [k] -ycwake [k])+ ze2wake [k]

*(z4wakeqs [k] -zcwake [k]);

p4 [2] =

xe3wake [k] *(x4wake [k] -xcwake [k])+ ye3wake [k] *(y4wake [k] -ycwake [k])+ ze3wake [k]

*(z4wakeqs [k] -zcwake [k]);


source(pcolloc [0],pcolloc [1],pcolloc [2], p1 [0],p1 [1],p1 [2],

p2 [0],p2 [1],p2 [2],p3 [0],p3 [1],p3 [ 2],

p4 [0],p4 [1],p4 [2],& srcphi,& dblphi);


*(E + count2)= dblphi;

count2 ++;

}


}

return;

}


void mexFunction(int nlhs,mxArray * plhs [],

int nrhs,const mxArray * prhs [])

{


/ *输入变量* /


int totpanelsf,totpanelswake;

双eps;


double * xcf,* ycf,* zcf;

double * x1f,* y1f,* z1f;

double * x2f,* y2f,* z2f;

double * x3f,* y3f,* z3f;

double * x4f,* y4f,* z4f;

double * xe1,* ye1,* ze1;

double * xe2,* ye2,* ze2;

double * nxf,* nyf,* nzf;

double * z1fqs,* z2fqs,* z 3fqs,* z4fqs;


double * xcwake,* ycwake,* zcwake;

double * x1wake,* y1wake,* z1wake;

double * x2wake,* y2wake,* z2wake;

double * x3wake,* y3wake,* z3wake;

double * x4wake,* y4wake,* z4wake;

double * xe1wake,* ye1wake,* ze1wake;

double * xe2wake,* ye2wake,* ze2wake;

double * xe3wake,* ye3wake, * ze3wake;

double * z1wakeqs,* z2wakeqs,* z3wakeqs,* z4wakeqs;


/ *输出变量* /


double * A,* S,* E;

/ *指定标量输入* /


totpanelsf = mxGetScalar(prhs [0] );

totpanelswake = mxGetScalar(prhs [1]);

eps = mxGetScalar(prhs [2]);


/ *指定输入指针* /


xcf = mxGetPr(prhs [3]);

.....

.....

z3wakeqs = mxGetPr(prhs [57]);

z4wakeqs = mxGetPr(prhs [58]);


/ *为输出创建矩阵* /


plhs [ 0] = mxCreateDoubleMatrix(totpanelsf,totpanelsf,mxREAL);

plhs [1] = mxCreateDoubleMatrix(totpanelsf,totpanelsf,mxREAL);

plhs [2] = mxCreateDoubleMatrix(totpanelsf ,totpanelswake,mxRE AL);

/ *指定输出指针* /


A = mxGetPr(plhs [0]);

S = mxGetPr(plhs [1]);

E = mxGetPr(plhs [2]);


/ *调用系数矩阵C子程序* /


coefficientmatrix(totpanelsf,totpanelswake,eps,

xcf,ycf,zcf,

x1f,y1f,z1f ,

x2f,y2f,z2f,

x3f,y3f,z3f,

x4f,y4f,z4f,

xe1,ye1,ze1,

xe2,ye2,ze2,

nxf,nyf,nzf,

z1fqs,z2fqs,z3fqs,z4fqs ,

xcwake,ycwake,zcwake,

x1wake,y1wake,z1wake,

x2wake,y2wake,z2wake,

x3wake,y3wake,z3wake,

x4wake,y4wake,z4wake,

xe1wake,ye1wake,ze1wake,

xe2wake,ye2wake,ze2wake,

xe3wake,ye3wake,ze3wake,

z1wakeqs,z2wakeqs,z3wakeqs,z4wakeqs,

A,S,E);

return;

}


" Peter Pichler" < PI ***** @ pobox.sk>在消息中写道

news:40 ******** @ mk-nntp-2.news.uk.tiscali.com ...
I''ve included the full code below, but at places i''ve deleted declarations
of variables
where they are obvious replaced by ...

Thanks in advance,

Martijn

__________________________________________________ __________________________
#include "mex.h"
#include <math.h>
#define PI 3.14159

void source (double x, double y, double z, double x1, double y1, double z1,
double x2, double y2, double z2, double x3, double y3, double
z3,
double x4, double y4, double z4, double *srcp double
*dblphi)
{

ALL DECLARATIONS OF THE LOCAL VARIABLES IN THE
EQUATIONS BELOW GO HERE.

*(srcphi) = -1.0/(4*PI)*(
(
(((x-x1)*(y2-y1)-(y-y1)*(x2-x1))/d12)*log((r1+r2+d12)/(r1+r2-d12)) +
(((x-x2)*(y3-y2)-(y-y2)*(x3-x2))/d23)*log((r2+r3+d23)/(r2+r3-d23)) +
(((x-x3)*(y4-y3)-(y-y3)*(x4-x3))/d34)*log((r3+r4+d34)/(r3+r4-d34)) +
(((x-x4)*(y1-y4)-(y-y4)*(x1-x4))/d41)*log((r4+r1+d41)/(r4+r1-d41))
)
+fabs(z)*(
atan((m12*e1-h1)/(z*r1)) - atan((m12*e2-h2)/(z*r2)) +
atan((m23*e2-h2)/(z*r2)) - atan((m23*e3-h3)/(z*r3)) +
atan((m34*e3-h3)/(z*r3)) - atan((m34*e4-h4)/(z*r4)) +
atan((m41*e4-h4)/(z*r4)) - atan((m41*e1-h1)/(z*r1))
)
);

*(dblphi) = -1.0/(4*PI)*(
atan((m12*e1-h1)/(z*r1)) - atan((m12*e2-h2)/(z*r2))
+ atan((m23*e2-h2)/(z*r2)) - atan((m23*e3-h3)/(z*r3))
+ atan((m34*e3-h3)/(z*r3)) - atan((m34*e4-h4)/(z*r4))
+ atan((m41*e4-h4)/(z*r4)) - atan((m41*e1-h1)/(z*r1)));

return;
}


void coefficientmatrix(int totpanelsf, int totpanelswake, double eps,
double *xcf, double *ycf, double *zcf,
double *x1f, double *y1f, double *z1f,
double *x2f, double *y2f, double *z2f,
...
...
double *xe2wake, double *ye2wake, double
*ze2wake,
double *xe3wake, double *ye3wake, double
*ze3wake,
double *z1wakeqs, double *z2wakeqs, double
*z3wakeqs, double *z4wakeqs,
double *A, double *S, double *E)
{
int i,j,k,count = 0,count2=0;
double xp, yp, zp;
double pcolloc[3], p1[3], p2[3], p3[3], p4[3];
double srcp dblphi;

for(i=0;i<totpanelsf;i++)
{

xp = xcf[i]-nxf[i]*eps;
yp = ycf[i]-nyf[i]*eps;
zp = zcf[i]-nzf[i]*eps;

for (j=0;j<totpanelsf;j++)
{

pcolloc[0] = xe1[j]*(xp-xcf[j])+ye1[j]*(yp-ycf[j])+ze1[j]*(zp-zcf[j]);
pcolloc[1] = xe2[j]*(xp-xcf[j])+ye2[j]*(yp-ycf[j])+ze2[j]*(zp-zcf[j]);
pcolloc[2] = nxf[j]*(xp-xcf[j])+nyf[j]*(yp-ycf[j])+nzf[j]*(zp-zcf[j]);

p1[0] =
xe1[j]*(x1f[j]-xcf[j])+ye1[j]*(y1f[j]-ycf[j])+ze1[j]*(z1fqs[j]-zcf[j]);
p1[1] =
xe2[j]*(x1f[j]-xcf[j])+ye2[j]*(y1f[j]-ycf[j])+ze2[j]*(z1fqs[j]-zcf[j]);
p1[2] =
nxf[j]*(x1f[j]-xcf[j])+nyf[j]*(y1f[j]-ycf[j])+nzf[j]*(z1fqs[j]-zcf[j]);

p2[0] =
xe1[j]*(x2f[j]-xcf[j])+ye1[j]*(y2f[j]-ycf[j])+ze1[j]*(z2fqs[j]-zcf[j]);
p2[1] =
xe2[j]*(x2f[j]-xcf[j])+ye2[j]*(y2f[j]-ycf[j])+ze2[j]*(z2fqs[j]-zcf[j]);
p2[2] =
nxf[j]*(x2f[j]-xcf[j])+nyf[j]*(y2f[j]-ycf[j])+nzf[j]*(z2fqs[j]-zcf[j]);

p3[0] =
xe1[j]*(x3f[j]-xcf[j])+ye1[j]*(y3f[j]-ycf[j])+ze1[j]*(z3fqs[j]-zcf[j]);
p3[1] =
xe2[j]*(x3f[j]-xcf[j])+ye2[j]*(y3f[j]-ycf[j])+ze2[j]*(z3fqs[j]-zcf[j]);
p3[2] =
nxf[j]*(x3f[j]-xcf[j])+nyf[j]*(y3f[j]-ycf[j])+nzf[j]*(z3fqs[j]-zcf[j]);

p4[0] =
xe1[j]*(x4f[j]-xcf[j])+ye1[j]*(y4f[j]-ycf[j])+ze1[j]*(z4fqs[j]-zcf[j]);
p4[1] =
xe2[j]*(x4f[j]-xcf[j])+ye2[j]*(y4f[j]-ycf[j])+ze2[j]*(z4fqs[j]-zcf[j]);
p4[2] =
nxf[j]*(x4f[j]-xcf[j])+nyf[j]*(y4f[j]-ycf[j])+nzf[j]*(z4fqs[j]-zcf[j]);

source(pcolloc[0],pcolloc[1],pcolloc[2],p1[0],p1[1],p1[2],
p2[0],p2[1],p2[2],p3[0],p3[1],p3[2],
p4[0],p4[1],p4[2],&srcp &dblphi);

*(S+count)= srcphi;
*(A+count)= dblphi;
count++;
}

for (k=0;k<totpanelswake;k++)
{

pcolloc[0] =
xe1wake[k]*(xp-xcwake[k])+ye1wake[k]*(yp-ycwake[k])+ze1wake[k]*(zp-zcwake[k]
);
pcolloc[1] =
xe2wake[k]*(xp-xcwake[k])+ye2wake[k]*(yp-ycwake[k])+ze2wake[k]*(zp-zcwake[k]
);
pcolloc[2] =
xe3wake[k]*(xp-xcwake[k])+ye3wake[k]*(yp-ycwake[k])+ze3wake[k]*(zp-zcwake[k]
);

p1[0] =
xe1wake[k]*(x1wake[k]-xcwake[k])+ye1wake[k]*(y1wake[k]-ycwake[k])+ze1wake[k]
*(z1wakeqs[k]-zcwake[k]);
p1[1] =
xe2wake[k]*(x1wake[k]-xcwake[k])+ye2wake[k]*(y1wake[k]-ycwake[k])+ze2wake[k]
*(z1wakeqs[k]-zcwake[k]);
p1[2] =
xe3wake[k]*(x1wake[k]-xcwake[k])+ye3wake[k]*(y1wake[k]-ycwake[k])+ze3wake[k]
*(z1wakeqs[k]-zcwake[k]);

p2[0] =
xe1wake[k]*(x2wake[k]-xcwake[k])+ye1wake[k]*(y2wake[k]-ycwake[k])+ze1wake[k]
*(z2wakeqs[k]-zcwake[k]);
p2[1] =
xe2wake[k]*(x2wake[k]-xcwake[k])+ye2wake[k]*(y2wake[k]-ycwake[k])+ze2wake[k]
*(z2wakeqs[k]-zcwake[k]);
p2[2] =
xe3wake[k]*(x2wake[k]-xcwake[k])+ye3wake[k]*(y2wake[k]-ycwake[k])+ze3wake[k]
*(z2wakeqs[k]-zcwake[k]);

p3[0] =
xe1wake[k]*(x3wake[k]-xcwake[k])+ye1wake[k]*(y3wake[k]-ycwake[k])+ze1wake[k]
*(z3wakeqs[k]-zcwake[k]);
p3[1] =
xe2wake[k]*(x3wake[k]-xcwake[k])+ye2wake[k]*(y3wake[k]-ycwake[k])+ze2wake[k]
*(z3wakeqs[k]-zcwake[k]);
p3[2] =
xe3wake[k]*(x3wake[k]-xcwake[k])+ye3wake[k]*(y3wake[k]-ycwake[k])+ze3wake[k]
*(z3wakeqs[k]-zcwake[k]);

p4[0] =
xe1wake[k]*(x4wake[k]-xcwake[k])+ye1wake[k]*(y4wake[k]-ycwake[k])+ze1wake[k]
*(z4wakeqs[k]-zcwake[k]);
p4[1] =
xe2wake[k]*(x4wake[k]-xcwake[k])+ye2wake[k]*(y4wake[k]-ycwake[k])+ze2wake[k]
*(z4wakeqs[k]-zcwake[k]);
p4[2] =
xe3wake[k]*(x4wake[k]-xcwake[k])+ye3wake[k]*(y4wake[k]-ycwake[k])+ze3wake[k]
*(z4wakeqs[k]-zcwake[k]);

source(pcolloc[0],pcolloc[1],pcolloc[2],p1[0],p1[1],p1[2],
p2[0],p2[1],p2[2],p3[0],p3[1],p3[2],
p4[0],p4[1],p4[2],&srcp &dblphi);

*(E+count2)= dblphi;
count2++;
}

}
return;
}

void mexFunction (int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{

/* Input variables */

int totpanelsf, totpanelswake;
double eps;

double *xcf, *ycf, *zcf;
double *x1f, *y1f, *z1f;
double *x2f, *y2f, *z2f;
double *x3f, *y3f, *z3f;
double *x4f, *y4f, *z4f;
double *xe1, *ye1, *ze1;
double *xe2, *ye2, *ze2;
double *nxf, *nyf, *nzf;
double *z1fqs, *z2fqs, *z3fqs, *z4fqs;

double *xcwake, *ycwake, *zcwake;
double *x1wake, *y1wake, *z1wake;
double *x2wake, *y2wake, *z2wake;
double *x3wake, *y3wake, *z3wake;
double *x4wake, *y4wake, *z4wake;
double *xe1wake, *ye1wake, *ze1wake;
double *xe2wake, *ye2wake, *ze2wake;
double *xe3wake, *ye3wake, *ze3wake;
double *z1wakeqs, *z2wakeqs, *z3wakeqs, *z4wakeqs;

/* Output variables */

double *A, *S, *E;
/* Assign scalars to input */

totpanelsf = mxGetScalar(prhs[0]);
totpanelswake = mxGetScalar(prhs[1]);
eps = mxGetScalar(prhs[2]);

/* Assign pointers to input */

xcf = mxGetPr(prhs[3]);
.....
.....
z3wakeqs = mxGetPr(prhs[57]);
z4wakeqs = mxGetPr(prhs[58]);

/* Create Matrices for the outputs */

plhs[0] = mxCreateDoubleMatrix(totpanelsf,totpanelsf,mxREAL) ;
plhs[1] = mxCreateDoubleMatrix(totpanelsf,totpanelsf,mxREAL) ;
plhs[2] = mxCreateDoubleMatrix(totpanelsf,totpanelswake,mxRE AL);
/* Assign pointers to output */

A = mxGetPr(plhs[0]);
S = mxGetPr(plhs[1]);
E = mxGetPr(plhs[2]);

/* Call the coefficient matrix C subroutine */

coefficientmatrix(totpanelsf,totpanelswake,eps,
xcf, ycf, zcf,
x1f, y1f, z1f,
x2f, y2f, z2f,
x3f, y3f, z3f,
x4f, y4f, z4f,
xe1, ye1, ze1,
xe2, ye2, ze2,
nxf, nyf, nzf,
z1fqs, z2fqs, z3fqs, z4fqs,
xcwake, ycwake, zcwake,
x1wake, y1wake, z1wake,
x2wake, y2wake, z2wake,
x3wake, y3wake, z3wake,
x4wake, y4wake, z4wake,
xe1wake, ye1wake, ze1wake,
xe2wake, ye2wake, ze2wake,
xe3wake, ye3wake, ze3wake,
z1wakeqs, z2wakeqs, z3wakeqs, z4wakeqs,
A, S, E);
return;
}

"Peter Pichler" <pi*****@pobox.sk> wrote in message
news:40********@mk-nntp-2.news.uk.tiscali.com...
" Martijn van den Branden <米************* @ student.tudelft.nl>在
消息新闻中写道:bv ********** @ news.tudelft.nl ...
"Martijn van den Branden" <m.*************@student.tudelft.nl> wrote in
message news:bv**********@news.tudelft.nl...
< snip>
Hi, <snip>
有人会关注一下代码
并且可能会发现一些初学者错误会导致错误的
would someone care to take a glance at the code
and maybe identify some beginners mistake that causes the erroneous


结果吗?


results?

我可以发送代码
作为附件。
I can send the code
as an attachment.



不要发送附件,将其修剪到合理的大小(不再是



Don''t send in an attachment, trim it down to a reasonable size (no more



比几KB,但注意不要删除显示问题的位)并将其贴在这里。

Peter


than a few KB, but take care not to cut out the bits that show the problem) and
post it here.

Peter



Peter Pichler写道:
Peter Pichler wrote:
" Martijn van den Branden" <米************* @ student.tudelft.nl>写了

< snip>
"Martijn van den Branden" <m.*************@student.tudelft.nl> wrote

<snip>
有人会关注一下代码,也许会找出一些初学者的错误导致错误的结果?我可以将代码作为附件发送。
would someone care to take a glance at the code and maybe
identify some beginners mistake that causes the erroneous
results? I can send the code as an attachment.



不要发送附件,将其修剪到合理的大小
(不超过几KB,但是注意不要删除显示问题的部分,并在此处发布。



Don''t send in an attachment, trim it down to a reasonable size
(no more than a few KB, but take care not to cut out the bits
that show the problem) and post it here.




但请确保它仍然是一个可编译的完整程序。剪切并

粘贴它,既没有标签也没有//评论,并保持线长

低于72.


-

Chuck F(cb********@yahoo.com)(cb********@worldnet.att.net)

可用于咨询/临时嵌入式和系统。

< http://cbfalconer.home.att.net>使用worldnet地址!



But make sure it is still a compilable complete program. Cut and
paste it, with neither tabs nor // comments, and keep line lengths
below 72.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!


这篇关于mex的问题c的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆