Matlab(私は慣れていない)のコードをC++に変換しています。コードの一部は、生データファイルを読み込み、行列の要素に8ビットごとに入力します。MatlabとC++で異なる値を取得している生データファイルを読む
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
私のMatlabのコードは、180の値を吐き出しながら、私のC++プログラムは「92」を出してくれるの発散を開始:
C++/MATLAB
92/180
58/118
230/219
60/133
をし、512バイトの残りのために一致せずに続けます。
これを引き起こす可能性のあるアイデアはありますか?
最初の考え:C++で配列に十分なメモリを割り当てておらず、オーバーランしています。あなたのために自動サイズ変更するためのまともな標準コンテナを考えてみましょう。 –
"q1"はどのように定義されていますか? – Jollymorphic
... "q1"はどのように印刷されていますか?ソースは、定義と印刷アルゴリズムの両方に役立ちます。 – Jollymorphic