我想将一个字符串向量从C ++传递给MATLAB。我尝试使用mxCreateCharMatrixFromStrings
等可用函数,但它没有给我正确的行为。
所以,我有这样的事情:
void mexFunction(
int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
vector<string> stringVector;
stringVector.push_back("string 1");
stringVector.push_back("string 2");
//etc...
问题是如何将此向量传递到matlab环境?
plhs[0] = ???
我的目标是能够运行:
>> [strings] = MyFunc(...)
>> strings(1) = 'string 1'
答案 0 :(得分:5)
将字符串向量存储为char矩阵要求所有字符串的长度相同,并且它们会连续存储在内存中。
在MATLAB中存储字符串数组的最佳方法是使用单元格数组,尝试使用mxCreateCellArray
,mxSetCell
和mxGetCell
。在引擎盖下,单元格数组基本上是指向其他对象,字符数组,矩阵,其他单元格数组等的指针数组。
答案 1 :(得分:0)
file_name