Matlab: чтение информации текстового файла с пробелами
У меня ужасный текстовый файл, заполненный пробелами (пример ниже), мне нужна информация в 6-м столбце (например, 9381950, 9332480 и 9997980), но из-за спорадических пробелов команды textread или textcan проблематичны даже при детальном форматировании. Есть ли способ сканировать каждую строку на наличие столбцов [35:41]?
983 8409 hfj 984098 989999999 9381950
688 hfij 786898 775907659
133 9856 356474764 9332480
95 7409 hfgu 949865 553456546
914 343557989
667 8989 456755688 9997980
2 ответа
Решение
Вы можете читать файл построчно, и, поскольку кажется, что у вас есть файл фиксированного формата, вы можете просто извлечь столбцы или символы из каждой строки из предопределенного места в строке:
out_cell = {};
fid = fopen('data.txt');
tline = fgetl(fid);
while ischar(tline)
out_cell{end+1} = tline(20:30); % put which ever part of line you want
tline = fgetl(fid);
end
fclose(fid);
out_cell{:}
Вы можете "отсканировать" каждую строку, прочитав ваш файл, используя:
fid = fopen('yourfile.extension')
currentLine = fgetl(fid)
# Do some testing here #
# Then proceed to next line using fgetl(fid) again (e.g. using a while loop)
Это какая-то помощь?