C-MEX file: I want to return an empty array, does anyone know how?

조회 수: 5 (최근 30일)
Mayela
Mayela 2015년 8월 18일
답변: Vincent Huber 2020년 10월 2일
If I assign plhs[0] = NULL; I get a warning in Matlab's command window and the output argument is not created/modified. Any attempt to create a matrix or an array with 0's dimensions causes Matlab to crash.

채택된 답변

James Tursa
James Tursa 2015년 8월 19일
This will return an empty 0x0 matrix:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
plhs[0] = mxCreateDoubleMatrix( 0, 0, mxREAL );
}
If you need something else please provide more detail about what you are trying to do.

추가 답변 (1개)

Vincent Huber
Vincent Huber 2020년 10월 2일
In C++ if I call for
value = feval(mh,"myMexfunction",arg1,...)
with inside
outputs[0] = factory.createArray<double>({ 0,0 });
Matlab complains the following way:
Error using matlab.mex.MexHost/feval
Too many output arguments.

카테고리

Help CenterFile Exchange에서 Write C Functions Callable from MATLAB (MEX Files)에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by