C# 中的 Matlab fwrite

Matlab fwrite in C#

我有一段代码正试图在 C# 中实现。该代码使用 Matlab 使用 frwite 命令写入文件。我尝试查看文档并做一些示例来了解 frwite 是如何工作的。 我尝试了以下但没有成功。

代码如下:

line_vectors = [5;10;15;20;25]
sampPeriod=100000;
[filename,permission,machineformat] = fopen(outputfile);
fwrite(outputfile,sampPeriod,'int32');
fwrite(outputfile,line_vectors(:),'float32');

使用 fread() 的输出:

       160
       134
         1
         0
         0
         0
       160
        64
         0
         0
        32
        65
         0
         0
       112
        65
         0
         0
       160
        65
         0
         0
       200
        65

我尝试在 C# 中实现类似的代码:

                using (BinaryWriter writer = new BinaryWriter(file))
                {
                    writer.Write(100000);
                    writer.Write(5);
                    writer.Write(10);
                    writer.Write(15);
                    writer.Write(20);
                }

在 Matlab 中使用 fread() 的输出:

   160
   134
     1
     0
     5
     0
     0
     0
    10
     0
     0
     0
    15
     0
     0
     0
    20
     0
     0
     0

如果有人可以帮助我在 C# 中映射 fwrite 功能。

如果你想让第一个之后的数字都写成float32,你可以为其他值指明值类型,像这样:

using (BinaryWriter writer = new BinaryWriter(file))
{
    writer.Write(100000);
    writer.Write(5.0f);
    writer.Write(10.0f);
    writer.Write(15.0f);
    writer.Write(20.0f);
}

BinaryWriter.Write 是一个重载函数,有许多可能的输入类型。根据作为输入变量传递的类型,函数的特定版本将表示值的字节写入该类型。由于您的初始代码未提供其他信息,默认情况下假定 int,并使用 4 字节整数表示。