2016-09-09 2 views
0

Я читаю текстовый файл, используя textscanfunction MATLAB. Проблема заключается в том, что ничего не читается в value, поскольку плавающие точки разделены тремя пробелами, и я довольно новичок в программировании MATLAB, чтобы использовать эффективный синтаксис. Мой текущий код приведен ниже:MATLAB: Чтение пространственных разделенных значений float из файла tex

Код:

values = textscan(input_file, '%f %f %f %f %f\n %*[^\n]'); 

Входной файл следует следующий формат:

Файл:

0.781844 952.962130 2251.430836 3412.734125 4456.016362 
0.788094 983.834855 2228.432996 3196.415590 4378.885466 
0.794344 967.653718 2200.798973 3119.844502 4374.097695 

Если значения с плавающей точкой # разделены, то инструкция ниже работает нормально:

values = textscan(input_file, '%f#%f#%f#%f#%f\n %*[^\n]'); 

Есть ли какое-либо решение, за исключением токенизации?

+0

Не могли бы вы дать образец строки из файла, который вы пытаетесь прочитать (т. пример, как выглядит ваш вход)? – selyunin

ответ

1

Вы должны указать разделитель, также вы должны активировать MultipleDelimsAsOne для лечения повторного пространства как единый разделитель:

value = textscan(input_file, '%f %f %f %f %f \n ','Delimiter',' ','MultipleDelimsAsOne',1); 

При необходимости вы также можете указать несколько разделителей одновременно:

del = {';',' '}; 
+0

это не работает. вы уверены, что в строке спецификатора формата есть пробелы? –

+0

Посмотрев на пример в документации, похоже, вы можете просто использовать одно пространство для разделителя. Вы пробовали это? –

+0

Я отредактировал свой ответ, я тестирую этот код на вашем образце, и все работает. – obchardon

0

Если вам не нужно использовать textscan, возможно, вы можете использовать importdata. Там вы можете указать разделитель как параметр. Документация http://se.mathworks.com/help/matlab/ref/importdata.html

Пример кода

filename = 'myfile01.txt'; 
delimiterIn = ' '; 
A = importdata(filename,delimiterIn); 
+0

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

Смежные вопросы