Я использую библиотеку 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
Я знаю, что double в Matlab должен быть Single в c # Я тоже пробовал, но это не сработало.Есть идеи, почему значения разные?