Как указать до конца файла в Matlab - PullRequest
1 голос
/ 26 октября 2011

У меня есть плоский файл, сохраненный в двоичном формате, я хочу найти конкретный байт и прочитать до конца этого файла, поэтому нам нужно условие для этого, каково условие, указывающее конец файла?

Кстати, я не хочу загружать весь файл, просто откройте файл и найдите нужную мне позицию, затем прочитайте до конца файла ...

Ответы [ 3 ]

3 голосов
/ 26 октября 2011

Функция fread MATLAB (и, действительно, другие функции файлового ввода-вывода) автоматически обнаружит конец двоичного файла; нет необходимости в специальном маркере конца файла.

фред документация

Общая документация MATLAB IO

1 голос
/ 27 октября 2011

Вы можете передать Inf для аргумента размера при использовании функции FREAD (будет считываться до конца файла).Вот пример:

%# first lets create a simple binary file
fid = fopen('file.bin', 'wb');
fwrite(fid, 'hello world', 'char*1');
fclose(fid);

%# now open binary file, seek to some position, and read bytes till EOF
fid = fopen('file.bin', 'rb');
fseek(fid, 6, 'bof');                %# go to the 7th byte
B = fread(fid, Inf, 'uint8=>char');  %# read bytes until end-of-file (as chars)
fclose(fid);

disp(B)
1 голос
/ 26 октября 2011

Вы можете использовать feof для проверки конца файла. Например, чтобы прочитать файл по одному символу за раз:

fid = fopen('bench.dat');

k = 0;
while ~feof(fid)
    curr = fscanf(fid,'%c',1);
    if ~isempty(curr)
       k = k+1;
       benchstr(k) = curr;
    end
end

fclose(fid);
...