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)

Это какая-то помощь?

Другие вопросы по тегам