Matlab редактировать текстовый файл, заменяя числа их - PullRequest
0 голосов
/ 25 мая 2018

Я хочу использовать Matlab для замены каждого числа с плавающей запятой в текстовом файле другим числом.(скажем, половина исходного значения) Другие данные (целые и строковые) не должны изменяться.Несколько строк моего текстового файла (каждая переменная находится в новой строке):

VERTEX
  8
0
 10
0.000000
 20
110.500000
 42
0.000000
  0
VERTEX
  8
0
 10
0.000000
 20
0.000000
 42
0.000000
  0
VERTEX
  8
0
 10
124.000000
 20
0.000000
 42
0.000000
  0
VERTEX
  8
0
 10
248.000000
 20
0.000000
 42
0.000000
  0
VERTEX
  8
0
 10
248.000000
 20
110.500000
 42
0.000000
  0
VERTEX
  8
0
 10
248.000000
 20
221.000000
 42
0.000000
  0

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 25 мая 2018

Вот решение с использованием fgetl и regexp

rid = fopen('test.txt','r');
wid = fopen('test2.txt','w');

while ~feof(rid)    
    s = fgetl(rid); % read a line
    if regexp(s, '\d+\.\d+') % float founded
        fprintf(wid, '42\n'); % wite "another integer"
    else
         fprintf(wid, '%s\n', s); % write original data
    end

end

fclose(rid);
fclose(wid);
...