Matlab fwrite in C#
本文关键字:in fwrite Matlab | 更新日期: 2023-09-27 17:51:21
我有一段代码,我试图在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
功能
如果希望第1位之后的所有数字都写成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字节的整数表示。