2013-12-11 2 views
0

У меня есть текстовый файл, который выглядит какЧтение чисел с плавающей точкой из файла в Matlab

0.47814941 0.47802734 0.47802734 0.47802734 0.47827148 0.47814941 
0.47802734 0.47802734 0.47802734 0.47802734 0.47827148 0.47802734 
0.47827148 0.47814941 0.47802734 0.47802734 0.47814941 0.47814941 

Проблема заключается в том, что в какой-то линии есть только 5 номеров и на других линиях 6. Поэтому работа с TextScan трудно. Я предпочитаю один большой выходной вектор со всеми номерами, начиная верхнюю строку слева направо, затем следующую строку и т. Д. Я думаю, что нет predifined функция доступна, но любая помощь ценится

Обобщенная: Я стараюсь, чтобы получить один выходной вектор, содержащий все цифры читаются слева направо, сверху вниз

+3

Где находится проблема с использованием 'textscan'? – Daniel

+0

Вы хотите, чтобы выход как один вектор или нет? Вы сомневаетесь в этом, поскольку говорите о строках, а также о числах, идущих слева направо. – horchler

+0

Проблема с textscan заключается в том, что некоторые строки имеют 5 чисел и другие 6. Таким образом, textscan даст 6-й вектор с большим количеством нулей. Да, я хочу, чтобы результат был как единый вектор, начиная с числа в первой строке, первом столбце, затем в первой строке, втором столбце, строке frrd, третьем столбце ... и т. Д. – Derk

ответ

0

Вы можете попробовать сделать regexp

str = 'Let try to found this number 1001 and the other one 120.29284832'; 
dum=regexp(str,'\d+.\d+','match'); 

Возможно, вам понадобится работать с регулярным выражением для вашего случая.

Потому что, если строка:

str = 'Digit number like this .2020'; 

Переменная dum содержат только 2020 и не .2020.

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