【问题标题】:How to import matrix into armadillo using binary files?如何使用二进制文件将矩阵导入犰狳?
【发布时间】:2021-10-23 11:54:26
【问题描述】:

我正在尝试将 MATLAB 中生成的矩阵导入犰狳。例如,我有一个 100x1 双倍的矩阵“A”。我使用 stackoverflow 上一个问题中的信息来使用 MATLAB 生成二进制文件:

% Generate LocalX.bin
name = 'LocalX.bin';
[F,err] = fopen(name,'w');
if F<0,error(err);end
fwrite(F,LocalX, 'int32');
fclose(F);

然后我使用以下方法将其导入犰狳:

arma::Mat<int> LocalX;
std::string localx = "LocalX.bin";
LocalX.load(localx, arma::arma_binary);

问题是,我丢失了矩阵维度,无法使用 aramdillo 对其执行任何矩阵操作。

如何在保持矩阵维度的同时将数据导入犰狳?

谢谢。

(第一次在stackoverflow上提问)

【问题讨论】:

    标签: c++ matlab armadillo lapack openblas


    【解决方案1】:

    如果您事先知道尺寸(ROWS,COLS),您可以在加载矩阵之后添加LocalX.reshape(ROWS,COLS)

    【讨论】:

    • 根据犰狳文档,.set_size() 不保证保留数据。使用.reshape() 会更合适。
    • 是的,你是对的,错过了......将编辑
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多