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 字节整数表示。
我有一段代码正试图在 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 字节整数表示。