Armadillo C++线性代数库:如何创建布尔值的向量

Gar*_*ngh 4 boolean vector armadillo

最近我开始使用Armadillo C++库.鉴于我的C++编码技巧不是很好,我发现这对线性代数非常友好.我也在使用它与我的matlab一起为许多重建算法加速.

我确实需要创建一个布尔值的向量,我宁愿使用这个库而不是.但是,我无法弄清楚如何去做.我尝试过使用uvec; 但是,文档似乎表明它不能与boolean一起使用.

任何帮助,将不胜感激.

此致,Dushyant

Sva*_*erg 5

考虑使用一个uchar_mattypdef 矩阵Mat<unsigned char>,它应该消耗与布尔值矩阵相同的内存量.

犰狳的文档版本7.8的状态,一个矩阵Mat<type>,可以是以下类型: float,double,std::complex<float>,std::complex<double>,short,int,long,和unsigned版本short,int以及long.然而,GitHub上的代码包含typedef Mat <unsigned char> uchar_mat;在文件include/armadillo_bits/typedef_mat.hpp中,因此您也应该能够使用uchar_mat.

bool值矩阵unsigned char(bool类型消耗8位)相比,您不会通过创建值矩阵来保存任何内存.这是因为在C++中,每种数据类型都必须是可寻址的 ; 它必须至少有1个字节长,以便可以创建指向它的指针.