主题:急需解决!!!
function [x,y]=hua(m,n)
x=m+n;
y=m-n;
C++源程序:
double a[4]={1,2,3,4};
double b[4]={2,3,4,5};
if(FAILED(CoInitialize(NULL)))
{
printf("unable to initialize COM");
}
VARIANT x,y,m,n;
VariantInit(&x);
VariantInit(&y);
VariantInit(&m);
VariantInit(&n);
m.vt=VT_R8|VT_ARRAY;
SAFEARRAYBOUND rgsabound[1],rs[1];
rgsabound[0].lLbound=0;
rgsabound[0].cElements=4;
m.parray=SafeArrayCreate(VT_R8,1,rgsabound);
m.parray->pvData=a;
rs[0].lLbound=0;
rs[0].cElements=4;
n.parray=SafeArrayCreate(VT_R8,1,rs);
n.parray->pvData=b;
Icomhuaclass *st=NULL;
HRESULT hr=CoCreateInstance(CLSID_comhuaclass,NULL,CLSCTX_ALL,
IID_Icomhuaclass,(void **)&st);
if(SUCCEEDED(hr))
{
st->hua(2,&x,&y,m,n);
memcpy(a,x.parray->pvData,4*sizeof(double));
memcpy(b,y.parray->pvData,4*sizeof(double));
printf("%f\n%f\n%f\n%f\n",a[0],a[1],a[2],a[3]);
printf("%f\n%f\n%f\n%f\n",b[0],b[1],b[2],b[3]);
printf("succeed");
st->Release();
}
else
{
printf("unsucceed");
}
return 0;
出现错误:Error using ==> plus
Matrix dimensions must agree.Error in ==> hua at 2
帮忙解决下 谢谢 !!!
x=m+n;
y=m-n;
C++源程序:
double a[4]={1,2,3,4};
double b[4]={2,3,4,5};
if(FAILED(CoInitialize(NULL)))
{
printf("unable to initialize COM");
}
VARIANT x,y,m,n;
VariantInit(&x);
VariantInit(&y);
VariantInit(&m);
VariantInit(&n);
m.vt=VT_R8|VT_ARRAY;
SAFEARRAYBOUND rgsabound[1],rs[1];
rgsabound[0].lLbound=0;
rgsabound[0].cElements=4;
m.parray=SafeArrayCreate(VT_R8,1,rgsabound);
m.parray->pvData=a;
rs[0].lLbound=0;
rs[0].cElements=4;
n.parray=SafeArrayCreate(VT_R8,1,rs);
n.parray->pvData=b;
Icomhuaclass *st=NULL;
HRESULT hr=CoCreateInstance(CLSID_comhuaclass,NULL,CLSCTX_ALL,
IID_Icomhuaclass,(void **)&st);
if(SUCCEEDED(hr))
{
st->hua(2,&x,&y,m,n);
memcpy(a,x.parray->pvData,4*sizeof(double));
memcpy(b,y.parray->pvData,4*sizeof(double));
printf("%f\n%f\n%f\n%f\n",a[0],a[1],a[2],a[3]);
printf("%f\n%f\n%f\n%f\n",b[0],b[1],b[2],b[3]);
printf("succeed");
st->Release();
}
else
{
printf("unsucceed");
}
return 0;
出现错误:Error using ==> plus
Matrix dimensions must agree.Error in ==> hua at 2
帮忙解决下 谢谢 !!!