Поскольку каждая из строк имеет разный размер, вы должны либо создать массив ячеек, структуру, либо иметь дело с добавлением NaN или нуля в матрицу.Я решил использовать массив ячеек, надеюсь, что все в порядке!Если кто-то лучше с regexp, чем я, пожалуйста, прокомментируйте, ячейки вывода теперь не идеальны (т.е. показывают 345 ~ вместо 345 ~ 0.9), но я уверен, что это небольшое исправление.Вот код:
datfile = 'test.dat';
text = fileread(datfile);
row1 = regexp(text,'*[a-z]?\d+','match');
data(:,1) = row1';
row2 = regexp(text,'*[a-z]?\d+','split');
row2 = [row2(:,2:end)'];
for i = 1:size(row2,1)
data{i,2} = regexp(row2{i},'\d+\S\d+\s','split');
end
Это создает массив ячеек данных, где первый столбец каждой строки - это ваш * a682 идентификатор, а второй столбец каждой строки - это ячейка с вашими значениями данных.Чтобы получить их, вы можете использовать:
data{1}
для отображения идентификатора
data{1,2}
для отображения содержимого ячейки
data{1,2}{1}
для отображения конкретной точки данных
Это должно работать и относительно просто!