主要内容

通过稀疏阵列马铃薯来自C ++

马铃薯®稀疏阵列提供了具有大百分比零的双重或逻辑数据的高效存储。MATLAB稀疏阵列支持算术,逻辑和索引操金宝app作。有关更多信息,请参阅稀疏矩阵

matlab :: data :: ArrayFactory创建一个Matlab :: data :: sparsearray大批。将稀疏数组的数据写入缓冲区并使用这些缓冲区创建稀疏阵列。将稀疏数组传递给MATLABMatlabengine :: SetVariable.

#include“matlabdataArray.hpp”#include“matlabengine.hpp”void sparsearray(){使用命名空间matlab ::引擎;//连接到名为shared matlab会话,开始为:// matlab -r“matlab.eengine.shareengine('mymatlabengine')”字符串会话(U“mymatlabengine”);std :: unique_ptr  matlabptr = connectmatlab(会话);//定义稀疏阵列STD :: Vector  Data = {3.5,12.98,21.76}的数据。STD :: Vector  Rows = {0,0,1};STD :: Vector  cols = {0,4,8};size_t nnz = 3;//为Data Matlab :: Data :: ArrayFactory Factory创建缓冲区;buffer_ptr_t  data_p = factory.createbuffer (nnz);buffer_ptr_t  rows_p = factory.createBuffer (nnz); buffer_ptr_t cols_p = factory.createBuffer(nnz); // Write data into the buffers double* dataPtr = data_p.get(); size_t* rowsPtr = rows_p.get(); size_t* colsPtr = cols_p.get(); std::for_each(data.begin(), data.end(), [&](const double& e) { *(dataPtr++) = e; }); std::for_each(rows.begin(), rows.end(), [&](const size_t& e) { *(rowsPtr++) = e; }); std::for_each(cols.begin(), cols.end(), [&](const size_t& e) { *(colsPtr++) = e; }); // Use the buffers to create the sparse array matlab::data::SparseArray arr = factory.createSparseArray({ 2,9 }, nnz, std::move(data_p), std::move(rows_p), std::move(cols_p)); // Put the sparse array in the MATLAB workspace matlabPtr->setVariable(u"s", arr); }

matlab.谁是命令显示传递给MATLAB工作区的数组是稀疏数组。

>>谁名字尺寸字节班级属性S.2x9.128.双倍的

有关如何设置和构建C ++引擎程序的信息,请参阅构建C ++引擎程序

也可以看看

||