Опция 1:
Вы можете использовать textscan
со следующими formatSpec :
formatSpec = 'ANSWER: correct:%s time:%f guess:%s action:%s file: %f';
data = textscan(fileID,formatSpec,'Delimiter',',');
, где fileID
- этоидентификатор файла, полученный с помощью fopen
.
Опция 2:
Другой вариант - использовать readtable
с форматированием, указанным выше (напрямуюс именем файла, без идентификатора файла):
data = readtable('53485991.txt','Format',formatSpec,'Delimiter',',',...
'ReadVariableNames',false);
% the next lines are just to give the table variables some meaningful names:
varNames = strsplit(fmt,{'ANSWER',':','%s',' ','%f'});
data.Properties.VariableNames = varNames(2:end-1);
Результат (игнорируйте значения, так как я немного испортил этот пример во время игры с ним):
data =
4×5 table
correct time guess action file
_______ ______ _______________ ______ ____
'yes' 6.8888 'Lay' 'Lay' 16
'no' 7.8762 'Put on top' 'Stir' 18
'no' 7.1503 'Put on bottom' 'Stir' 3
'no' 7.151 'go' 'Stir' 270
Преимущество в варианте 2 состоит в том, что таблица намного удобнее хранить эти данные, чем массив ячеек (который является выходом textscan
).