如何使用 mwArray 将字符串向量发送到 MATLAB 编译的 DLL
How to send vector of string to MATLAB compiled DLLs, using mwArray?
页面在mwArray类描述了创建字符串数组的mwArray单元的构造函数: mwArray(mwSize num_strings, const char** str)
.我有一个动态填充的字符串向量。我已经将vector<string>
转换为char**
,并尝试使用此数据制作mwArray。但是,构造函数签名具有const char**
,因此无法将char**
转换为const char**
否则如何将字符串向量设置为mwArray单元并发送到MATLAB DLL?
您可以将向量转换为常量字符**。这是一个这样的函数。
const char** convert(vector< string > &v)
{
int kk;
const char** ppChar = new const char *[v.size()];
for (kk = 0; kk < v.size(); kk++)
{
ppChar[kk] = const_cast< char* >(v[kk].c_str());
}
return ppChar;
}
要测试它:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
int k;
vector< string > v;
v.push_back("This is string");
v.push_back("Another string a bit longer");
v.push_back("my string");
const char** AA = convert(v);
for (k = 0; k < v.size(); k++)
{
cout << AA[k] << endl;
}
return 0;
}
相关文章:
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- C++使用 MATLAB 引擎和 g++ 进行源代码编译
- 当未选择 /CLR时,编译的MATLAB代码崩溃
- 为 OpenCV 编译 MATLAB 绑定
- 从C 调用的编译MATLAB函数的输入参数结构
- 在Matlab中使用OS X编译/混合imrender函数时出错
- 使用matlab引擎编译c++程序eclipse
- 如何从 C 调用在 MATLAB 中创建并用 C 编译的函数
- 如何使用Visual c ++编译器在MATLAB中编译vlfeat和mexopencv库
- 如何使用 mwArray 将字符串向量发送到 MATLAB 编译的 DLL
- 使用 mex 在 Matlab 中编译C++失败
- 将 MATLAB 函数编译成可以在 linux 终端上运行的东西,w.out MATLAB
- C++ MATLAB 中的 MEX 编译
- 在 Ubuntu 上使用 Mingw64 交叉编译 Matlab oct 文件时出现问题
- Matlab Mex代码未编译
- MATLAB + Mex + OpenCV:正确链接和编译,但在运行时找不到库
- MATLAB中的Myo臂章手势(无法编译.m或.mex文件)
- 在64位机上编译32位matlab应用程序(c++)
- 如何避免重复初始化.mex (matlab编译代码)
- CUDA-Matlab 编译中C++指针的问题