Matlab에서 mex 파일로 만들려는 C++에 Eigen 라이브러리를 사용하려고합니다. 코드를 아래의 필수 항목으로 나눴습니다. 길이가 입력 행렬의 행 수와 일치하는 리턴 벡터를 만들어야합니다.Matlab mex 파일의 고유 벡터 사용
double y_OUT[nrow] = {};
- 오류 C2057 : 예상 상수 표현 오류
- 오류 C2466 : 나는 라인에 해당하는 컴파일에 follwing을 오류를 얻을 아래의 코드와 은의 배열을 할당 할 수 없습니다 일정한 크기 0
나는 왜 길이 nrow의 벡터를 할당 할 수 없는지 알 수 없다. 특정 줄의 주석 처리를 제거하고 nrow를 인쇄하여 실제로 올바른 번호가 포함되어 있는지 확인했습니다. 누구든지 어떤 포인터를 줄 수 있습니까 (말장난 의도)?
void mexFunction(
int nlhs,
mxArray *plhs[],
int nrhs,
const mxArray *prhs[]
)
{
double *x_IN;
int nrow,ncols;
/* Check for proper number of arguments */
//...
x_IN = mxGetPr(prhs[0]);
nrow = (int)mxGetM(prhs[0]);
ncols = (int)mxGetN(prhs[0]);
double y_OUT[nrow] = {};
MatrixXd x=Map<MatrixXd>(x_IN,nrow,ncols);
VectorXd Respons=VectorXd::Zero(nrow);
Map<VectorXd>(y_OUT,nrow)=Respons.array();
return;
}
코드를 수정할 수 있었습니까? 작업 버전으로 업데이트 할 수 있습니까? mex matlab 입력 매개 변수에서 Eigen Matrix를 만들 수 없습니다. – Pedro77