如何在引入mxIsScalar之前检查变量是否为标量或数组?

And*_*uri 2 c matlab mex

在Matlab的mex文件中有一个函数mxIsScalar可以告诉你mex文件的输入是否是标量.但该功能已在R2015a中引入.

如果使用以前版本的Matlab(在我的情况下是2014b,如果这很重要),检查输入是标量还是数组的最优雅方法是什么?

我需要相结合mxGetNumberOfDimensions,mxGetDimensionsmxIsNumeric做到这一点?或者还有其他明确简单的方法吗?我赞成可读性而不是速度.

Edr*_*ric 5

除了mxGetMmxGetN,还有mxGetNumberOfElements,你可以这样使用:

bool const isScalar = (size_t(1) == mxGetNumberOfElements(prhs[0]));
Run Code Online (Sandbox Code Playgroud)