主题:运行C++Builder调用MATLAB出现了如下错误这是什么原因,请大师指点!
#include <vcl.h>
#pragma hdrstop
#include "Try.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMyForm *MyForm;
//---------------------------------------------------------------------------
__fastcall TMyForm::TMyForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyForm::Button1Click(TObject *Sender)
{ DemoMATLAB();
}
//---------------------------------------------------------------------------
void TMyForm::DemoMATLAB()
{
Engine *eng;
char buffer[200];
int array[6]={1,2,3,4,5,6};
mxArray *S=NULL,*T=NULL;
engOpen(NULL);
S=mxCreateDoubleMatrix(1,6,mxREAL);
mxSetName(S,"S");
memcpy((char *)mxGetPr(S),(char*)array,6 *sizeof(int));
engPutArray(eng,S);
engEvalString(eng,"T=S/S.^2;");
engEvalString(eng,"plot(S,T);");
engOutputBuffer(eng,buffer,200);
T=engGetArray(eng,"T");
engClose(eng);
mxDestroyArray(S);
mxDestroyArray(T);
}
[C++ Error] Try.cpp(29): E2219 Wrong number of arguments in call of macro 'mxSetName'
[C++ Error] Try.cpp(31): E2219 Wrong number of arguments in call of macro 'engPutArray'
[C++ Error] Try.cpp(35): E2219 Wrong number of arguments in call of macro 'engGetArray'
[C++ Error] Try.cpp(35): E2188 Expression syntax
#pragma hdrstop
#include "Try.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMyForm *MyForm;
//---------------------------------------------------------------------------
__fastcall TMyForm::TMyForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyForm::Button1Click(TObject *Sender)
{ DemoMATLAB();
}
//---------------------------------------------------------------------------
void TMyForm::DemoMATLAB()
{
Engine *eng;
char buffer[200];
int array[6]={1,2,3,4,5,6};
mxArray *S=NULL,*T=NULL;
engOpen(NULL);
S=mxCreateDoubleMatrix(1,6,mxREAL);
mxSetName(S,"S");
memcpy((char *)mxGetPr(S),(char*)array,6 *sizeof(int));
engPutArray(eng,S);
engEvalString(eng,"T=S/S.^2;");
engEvalString(eng,"plot(S,T);");
engOutputBuffer(eng,buffer,200);
T=engGetArray(eng,"T");
engClose(eng);
mxDestroyArray(S);
mxDestroyArray(T);
}
[C++ Error] Try.cpp(29): E2219 Wrong number of arguments in call of macro 'mxSetName'
[C++ Error] Try.cpp(31): E2219 Wrong number of arguments in call of macro 'engPutArray'
[C++ Error] Try.cpp(35): E2219 Wrong number of arguments in call of macro 'engGetArray'
[C++ Error] Try.cpp(35): E2188 Expression syntax