c#在matlab中读取二进制文件,c#返回不同的值

时间:2016-02-25 12:08:48

标签: c# matlab binaryfiles

我有一个bin文件,其中包含float32值,32xinf矩阵数组。数组的大小取决于录制时间,它可以是32x500秒,32x5000 10秒等等。

我使用下面的代码在Matlab中读取文件。

float[,] floatArray = new float[1, 32];

using (BinaryReader Reader = new BinaryReader(File.Open(string.Format("{0}{1}.bin", DefaultFilePath, "MyFile"), FileMode.Open)))
{
    int c = 0;

    for (int i = 0; i < floatArray.GetLength(0); i++)
    {
        for (int j = 0; j < floatArray.GetLength(1); j++)
        {
            floatArray[i, j] = Reader.ReadSingle();
            MeanOfChannels[j] += floatArray[i, j];
        }
    }
}

在c#中,我使用此代码来读取文件。

BitConverter.ToSingle(Reader.ReadBytes(sizeof(float)), 0);

这里是二进制文件中前32个值的结果。

Matlab Results

c# Results

我在Matlab和

中检查了float32(32位/ 4字节)的大小
  

Reader.ReadSingle()

(读取4个字节)。我也尝试使用下面的代码。

{{1}}

Matlab和c#中的值不相同。我做错了什么?

0 个答案:

没有答案