簡體   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