Импортировать данные блока текстового файла в Matlab - PullRequest
0 голосов
/ 01 августа 2020

Предположим, у меня есть простой текстовый файл с именем « test.txt » в формате ниже

A=-1.1,2.2,-3.3,4.4B

Я намерен извлечь данные -1,1 , 2,2 , -3,3 и 4,4 в Matlab из текстового файла.

Как я могу это сделать?

Ps: Обратите внимание, что данные находятся между строкой «A =» и «B» и разделены запятой.

Мне удалось извлечь первые данные с помощью приведенного ниже кода.

buffer = fileread('test.txt');
search = 'A=';
local = strfind(buffer, search);
value = sscanf(buffer(local(1,1)+numel(search):end), '%f', 1);

Однако я не уверен, как получить другие значения из списка, которые заканчиваются строкой «B»

1 Ответ

1 голос
/ 02 августа 2020

Ну вот мой ответ:

clear; clc

path = 'test.txt';
fileID = fopen(path, 'r');
A = fscanf(fileID, '%s');
splitStr = regexp(A, '[a-zA-Z]', 'split');
splitStr = regexp(splitStr, '=', 'split');
splitStr = regexp(splitStr{2}, ',', 'split');
disp(splitStr{2})
fclose(fileID);

Вывод:

'-1.1'    '2.2'    '-3.3'    '4.4'
...