墨西哥人c++创建std::从TypedArray向量<双> <双>

52视图(30天)
我用墨西哥人,c++,我试图把Matlab TypedArray <双>为c++ std::向量<双>
ObjectArrayobj(输入[0]);
std::要查看< matlab::引擎::MATLABEngine > matlabPtr = getEngine ();
matlab::数据::TypedArray <双> foo = matlabPtr - > getProperty (obj, u“foo”)
我试图避免以下,遍历和添加每个值,因为看起来很低效的大型向量。
std::向量<双>栏;
(汽车elem: inArray) {
bar.push_back (inArray);
}
我希望有一些直接访问底层向量的方法。
std::向量<双>栏= foo.someFunc ()

答案(1)

阿米特P
阿米特P 2019年5月9日
您可以使用迭代器TypedAray中可用。
ObjectArrayobj(输入[0]);
std::要查看< matlab::引擎::MATLABEngine > matlabPtr = getEngine ();
matlab::数据::TypedArray <双> foo = matlabPtr - > getProperty (obj, u“foo”)
/ /使用这里的迭代器
std::向量<长双>桌子(foo.begin (), foo.end ());
希望这可以帮助。
2的评论
Daniele Nanni
Daniele Nanni 2022年1月26日
编辑:Daniele Nanni 2022年1月26日
你好,
工作顺利一个向量,但如果obj矩阵吗?
我试过你的解决方案,当我申请:
ObjectArray obj(输入[0]);/ / Obj_INET_ONET
TypedArray < <飘> > std::复杂inet_matrix = matlabPtr - > getProperty (obj u“inet_matrix”);
matlab::数据::ArrayDimensions size_matrix = inet_matrix.getDimensions ();
std::向量< <飘> > std::复杂inet_vec (inet_matrix.begin (), inet_matrix.end ());
inet_vec包含矩阵inet_matrix(40×8)作为一个长向量(所以1 x40 * 8)。我需要一个矩阵在c++中做一些操作的脚本中,然后发送回matlab结果。我怎么能这样做呢?
谢谢你的时间,因为现在回答我!

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!