如何找到在墨西哥人c++ CellArray大小?
31日视图(30天)
显示旧的评论
我试图写一个c++程序在Matlab墨西哥人。我传递一个单元阵列需要找到的大小。这是一个叫做myMatlabFunction.cpp兆瓦
#包括“mex.hpp”
#包括“mexAdapter.hpp”
使用名称空间matlab:数据;
使用matlab:墨西哥人::ArgumentList;
类MexFunction:公共matlab::墨西哥人:函数{
公众:
无效操作符()(ArgumentList输出,ArgumentList输入){
CellArraymyCell = std::移动(输入[0]);
/ /什么在这里找到细胞的数量吗?
输出[0]= myCell;
}
};
和相应的Matlab命令
%初始化细胞
mcell =细胞(3,1);
mcell {1} = 1 (1、3);
mcell {2, 1} = 1 (1、2);
mcell {3 1} = 1 (1、4);
%调用c++函数
= myMatlabFunction (mcell);
matlab::数据::TypedArrayRef双> < ref myCell [0];
然后我可以访问所有元素的第一个细胞细胞数组。但我怎么发现细胞的数量?我难以确定文档如何找到大小。
0评论
答案(2)
强迫症
2018年10月17日
单元阵列的大小,使用
mxGetM
的行数,
mxGetN
列数,或
mxGetNumberOfElements
的元素数量。
mwSizeNRow = mxGetM (prhs [0]);
mwSizeNCol = mxGetN (prhs [0]);
mwSizeNElem = mxGetNumberOfElements (prhs [0]);
获得元素的数量在一个细胞数组元素,提取细胞元素的指针,然后使用相同的功能。
mxArray* pCell = mxGetCell (prhs [0], j);/ /获取指针j细胞数组的元素
mwSizeNumRow = mxGetM (pCell);
mwSizeNumCol = mxgetN (pCell);
mwSizeNumElem = mxGetNumberOfElements (pCell);
陆妹妹江泽惠女士
2020年3月31日
编辑:陆妹妹江泽惠女士
2020年3月31日
基本上,我所做的矩阵如下。不过,我还没试过在其他数据类型。但我认为MATLAB c++ API的数据API文档可能是有益的。
/ /这是输入矩阵
TypedArray <双>矩阵= std::移动(输入[0]);
/ /得到维
std::向量<无符号长int > size_t = matrix.getDimensions ();
/ /我们可以片大小的向量
std:: cout < <" test_size = "< < std:: endl < < size_t [0] < < std:: endl;
std:: cout < <" test_size = "< < std:: endl < < size_t [1] < < std:: endl;
/ /得到这个尺寸向量的大小
std:: cout < <“规模大小= "< < std:: endl < < size_test.size () < < std:: endl;