各行に5つのエントリがあり、そのうち2つはfloatで、他は整数であるファイルを読み取ろうとしています。ただし、matlabのfscanf関数は2行しか読み取らないため、メモリの問題だと思います(5k行のデータの場合)。
これを修正する方法を知っていますか?
私はそれが記憶の問題だとは思わない。入力ファイルに予期しない文字が含まれている可能性がありますか?以下を再現できますか?
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
filename='input.txt';
fid = fopen(filename);
A = fscanf(fid, '%f %f %d %d %d', [5 inf])';
fclose(fid);
>> A(:,1)
ans =
1.0e-004 *
0.3400
0.3400
0.3400
0.3400
0.3400
>> A(:,5)
ans =
998877
998877
998877
998877
998877
複数の数値タイプでfscanfを使用すると、すべての数値が2倍になると確信しているので注意してください。
>> class(A(:,5))
ans =
double