4

ファイルをワークスペースにロードせずに、.dat ファイルの長さを (行に関して) 把握する方法はありますか?

4

3 に答える 3

18

行カウンター -- 行ごとに 1 文字のみを読み込みます。

Nrows = numel(textread('mydata.txt','%1c%*[^\n]'))

またはファイルの長さ (Matlab):

datfileh = fopen(fullfile(path, filename));
fseek(datfileh, 0,'eof');
filelength = ftell(datfileh);
fclose(datfileh);
于 2011-08-25T17:53:05.750 に答える
12

行数を見つけると述べたので、テキストファイルで作業していると思います。ここに1つの解決策があります:

fid = fopen('your_file.dat','rt');
nLines = 0;
while (fgets(fid) ~= -1),
  nLines = nLines+1;
end
fclose(fid);

これは、FGETSを使用して各行を読み取り、読み取った行数をカウントします。ファイルのデータはワークスペースに保存されず、while ループの条件チェックで使用されるだけであることに注意してください。

于 2009-06-03T14:48:40.270 に答える
3

ファイルシステムの組み込みコマンドを使用できることも覚えておく価値があるため、Linuxではコマンドを使用できます

[s,w] = system('wc -l your_file.dat');

次に、返されたテキスト ( に格納されているw) から行数を取得します。(Windowsには同等のコマンドはないと思います。)

于 2009-06-07T14:14:17.003 に答える