繁体   English   中英

读取原始数据文件,在Matlab和C ++中获取不同的值

[英]Reading raw data file, getting different values in Matlab and C++

我正在将一些代码从Matlab(我不熟悉)转换为C ++。 部分代码读入原始数据文件,并将每8位输入到矩阵的元素中。

MATLAB:

header=fread(fid, 512, '*uint8');

同样,在C ++中我有:

fread(&q1[0][0], sizeof(uint8_t), 512, filepath);

当然这些都是读取相同的文件,并且它们吐出的值匹配到元素#33。

10
0
0
0
244
1
0
0
10
0
0
0
244
1
0
0
10
0
0
0
244
1
0
0
10
0
0
0
208
7
0
0

然后,我的C ++程序吐出“92”,而我的Matlab代码吐出180.值开始分歧:

C++ / MATLAB
92 / 180
58 / 118
230 / 219
60 / 133

并继续进行而不匹配512字节的其余部分。

关于可能导致这种情况的任何想法?

您是否在C ++中使用“b”选项打开二进制文件? 默认为't',文本模式,它将以不同方式排列换行符/回车符。

编辑:假设这是Windows。 如果不是Windows,那么你可以忽略它。

事实证明,Matlab正在预处理我发送的原始文件,这改变了标题。 虽然文件是“副本”(就Windows而言),但是它们的标题不同,在打印出原始数据的开头时给出了不同的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM