Я пытаюсь преобразовать файл данных (здесь строка, представляющая файл с тремя строками) в структурный массив, подобный следующему:
cel = textscan('1 1.1 2 2.2 3 3.3', '%u %f');
str = cell2struct(cel, {'f1', 'f2'}, 2);
Однако теперь у меня есть массив структур размером 1x1, где я могуполучить доступ только к столбцам, используя поля массива, но не целые строки (например, 'str (2)' для второй строки).
Мне нужно иметь массив структур (или как его можно назвать) вот так:
str = struct('f1', {1, 2, 3}, 'f2', {1.1, 2.2, 3.3});
потому что теперь я могу (например) отфильтровать это так:
subStr = str(find([str.f1] > 1))
, что я не смог сделать в первом случае.Есть идеи как туда добраться?В конце я смог сделать это следующим образом:
cel = textscan('1 1.1 2 2.2 3 3.3', '%u %f');
[f1, f2] = cel{:};
str = struct('f1', num2cell(f1'), 'f2', num2cell(f2'));
Но это не так, и я боюсь, что это будет дорого (файлы довольно большие).
РЕДАКТИРОВАТЬ:
Мое решение действительно слишком требовательно к памяти, поэтому его нельзя использовать.Типичные файлы имеют заголовок, нижний колонтитул и c.5e6 строк данных в шести столбцах.
Спасибо