В таких вопросах самый простой способ выяснить это, как правило, попробовать сами, если это не слишком сложно.Теперь вы указали, что используете Linux , возможно, вы можете повторить тест на своей платформе и посмотреть, соответствуют ли результаты.
Для Windows платформа,skip
значение:
- реализовано до Первое записываемое значение
- , кажется, оставляет каждый пропущенный байт со значением
00
(вероятно, чтоОС назначить в качестве нового значения для файла)
Примеры:
Этот код:
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,1,'short',10,'ieee-le')
fclose(fid)
Создает следующееfile (видно в шестнадцатеричном редакторе):
И если у вас есть более одного значения для записи:
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Вы все равно получаете 10x 00
значения перед каждым short
значение, которое вы активно пишете:
Это был случай для вновь созданного файла.Давайте посмотрим, что происходит с существующим файлом:
%% Let's create a file full of `FF`
FFarray = uint8(ones(36,1)*255) ;
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,FFarray,'uint8')
fclose(fid)
, что дает:
Теперь, используя тот же код, что и раньше (с permission
установить w
):
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Да, мы все равно получаем то же самое.Теперь это согласуется с документацией MATLAB для указанного вами разрешения:
w
=> Открыть или создать новый файл для записи. Отменить существующее содержимое , если есть.
Если вы просто измените это разрешение на r+
( Открыть файл для чтения и записи. ):
fid = fopen(my_filename,'r+','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Вы перезаписываете только пропущенные значения: