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

Eigen: Mapping an array to matrix with matrix size unknown

本文关键字:未知 数组 映射 特征      更新时间:2023-10-16

我想读取带有特征的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变量(或文字整数的宏,但我们不要这样做(。但是,您说需要在运行时确定矩阵大小,因此您需要使用Dynamic作为数字或行,并在构造函数中指定值:

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