特征:将数组映射到矩阵大小未知的矩阵
Eigen: Mapping an array to matrix with matrix size unknown
我想读取具有 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);
我想读取具有 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);