Чтение файлов Matlab - PullRequest
       0

Чтение файлов Matlab

0 голосов
/ 12 января 2012

У меня есть файл с многочисленными точками данных, отформатированные как XX.XXX. Числа непрерывно соединяются.

Как разделить все числа на отдельные значения?

Я пытался читать из файла с "% 5.3d" и "% 5.3f", но ни один из них не работал.Аналогично, «% 6s» не работал.

Пример ввода:

75.91425.43937.55492.55874.43839.51519.59935.11762.33178.14914.81569.43037.90083.32590.492
70.45060.24634.07148.20638.34348.88881.90070.37655.06531.76382.54791.43659.88274.56288.827
87.28590.39641.39551.67340.39870.613

Требуемый вывод:

75.914
25.439
37.554
92.558
etc.

Я пытался:

fscanf(Fid,'%6.3f',[3 inf]);
fscanf(Fid,'%5.3f',[3 inf]);
fscanf(Fid,'%5.3f',[3 inf]);
fscanf(Fid,['%2d' char('.') '%3d'], [6 inf]);

1 Ответ

2 голосов
/ 12 января 2012

Предполагая, что каждый элемент состоит из 6 символов, вы можете сделать следующее, так как fscanf не работает.Примечание: я сохранил ваш образец в "numData.txt"

РЕДАКТИРОВАТЬ: Это гораздо лучше.

fid = fopen('numData.txt','r');
numArray = textscan(fid,'%6.3f',inf);

дает

numArray =

   75.9140
   25.4390
   37.5540
   ... etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...