2010-05-19 5 views
3

저는 C++에서 matlab으로 문자열의 벡터를 전달하고 싶습니다. mxCreateCharMatrixFromStrings과 같은 사용 가능한 함수를 사용하려고했지만 정확한 동작을 제공하지 않습니다.matlab에 문자열 배열을 만드는 방법은 무엇입니까?

그래서, 이런 식으로 뭔가를 가지고 :

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 환경이 벡터를 얻는 방법이다? 숯불 매트릭스와 같은 문자열의 벡터를 저장

>> [strings] = MyFunc(...) 
>> strings(1) = 'string 1' 

답변

5

당신의 문자열이 모두 같은 길이 것을 요구하고 그들이 연속에 저장하고 있다는 :

plhs[0] = ??? 

내 목표는 실행 할 수있다 기억.

MATLAB에 문자열 배열을 저장하는 가장 좋은 방법은 셀 배열을 사용하는 것입니다. mxCreateCellArray, mxSetCell 및 mxGetCell을 사용해보십시오. 후드에서 셀 배열은 기본적으로 다른 객체, char 배열, 행렬, 다른 셀 배열 등에 대한 포인터 배열입니다.

+0

그 중 ... 지금까지. 감사. – aduric

관련 문제