Accord .Net读取.mat文件错误的数据类型或值

时间:2018-06-08 19:05:30

标签: c# matlab accord.net

我正在使用Accord .Net c#库来读取.mat文件:

        string fileName = Path.Combine("MYLOCALPATH", "training_f_r1_1.mat");
        FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
        Debug.WriteLine(fileName);
        var reader = new MatReader(fStream);

        var node = reader["training_f_r1_1"];
        double[,] value = node.Value as double[,];
        Debug.WriteLine("*****");
        Debug.WriteLine(value[0,0]);
        Debug.WriteLine(value[0,1]);
        Debug.WriteLine(value[0,2]);
        Debug.WriteLine("*****");

我的matlab“.mat”文件是一个双矩阵,其值为:

33.338652248163450, 0.447357298679056, 5.207437835743190
               ...,               ...,               ...

但上面的代码告诉我:

    3500.4784339099424, -1.6283030973451347E+138, 2.4840536969417093E-208

我知道matlab中的double应该是c#中的Single我也尝试了但是它没有用。任何想法为什么价值观不同?

1 个答案:

答案 0 :(得分:0)

初始化阅读器时,必须将lazy参数设置为false

var reader = new MatReader(new BinaryReader(new FileStream("file.mat", FileMode.Open)), false, false);