我的代码很简单:
arma::fmat fromMatlab;
fromMatlab.load(relPath + "/matrix.csv", arma::auto_detect);
我的 csv 包含以下数字:
0 0 2 4.8989795 -6.9282032 -4.8989795 -16.970563 -16.970563 28.284271
但是我的 C++ 代码返回没有小数的数字,例如:
0 0 2.0000e+00 4.0000e+00 -6.0000e+00 -4.0000e+00 -1.6000e+01 -1.6000e+01 2.8000e+01
我也尝试从 mat 加载数据,并将 fromMatlab 变量定义为 mat、fmat、Mat、Mat,错误始终相同。
发生了什么事?我正在使用犰狳 12.6,而 7.95 版本没有发生这种情况...
如果没有源代码,就很难推断出可能导致当前错误的原因,但如果我猜测(这只是猜测),在加载期间会发生一些从 float/double 的转换,正如我所看到的,小数点之前的任何内容都被截断(也许您的函数期望读取整数,而您正在打印浮点数)。也可能是打印过程中的问题,我的建议是你在打印语句之前放置一个断点,看看内存中实际写入了什么(Visual Studio 允许你通过调试器执行此操作)。