c++ - 特征:将数组映射到矩阵大小未知的矩阵

标签 c++ eigen

我想读取具有 Eigen 的 MNIST 数据集,每个文件都由一个矩阵表示。我希望在运行时确定矩阵大小,因为训练集和测试集的大小不同。

Map<Matrix<uchar,rows,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset);

但是得到如下错误:

NIST_Read.cpp:43:26: error: the value of 'rows' is not usable in a constant expression
     Map<Matrix<uchar,rows,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset);
                      ^~~~

Eigen::Map可以这样用吗?

最佳答案

我们需要知道什么是rows,但如果您想将它用作模板参数,它必须是constexpr variable。 (或文字整数的宏,但我们不要那样做)。但是,您说您需要在运行时确定矩阵大小,因此您需要使用 Dynamic 作为数字或行并在构造函数中指定值:

Map<Matrix<uchar,Dynamic,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset, rows, cols);

关于c++ - 特征:将数组映射到矩阵大小未知的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322814/

相关文章:

c++ - 为基本数据类型和 Eigen 数据类型编写模板函数

c++ - 在 Eigen (C++) 中求解欠定方程组

c++ - Eigen:将实数和虚数 MatrixXd 映射到 MatrixXcd

c++ - 如何使用opencv在图像中绘制矩形?

c++ - 与 replaceChild 相关的内存泄漏

c++ - 引用的内存分配

c++ - 如何将简单指针转换为固定大小的多维数组?

c++ - 依赖于其他模板参数的模板参数?

c++ - 特征密集稀疏矩阵乘积是线程化的吗?

c++ - 安装 dlib 时出错