3

文字列のベクトルを 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'
4

2 に答える 2

5

文字列のベクトルを char 行列として格納するには、すべての文字列が同じ長さであり、メモリに連続して格納されている必要があります。

文字列の配列を MATLAB に格納する最良の方法は、セル配列を使用することです。 mxCreateCellArraymxSetCell、およびを使用してみてくださいmxGetCell。内部的には、セル配列は基本的に、他のオブジェクト、char 配列、行列、他のセル配列などへのポインターの配列です。

于 2010-05-19T16:29:18.440 に答える