我正在将ASCII数据加载到Matlab中,我更希望将它们存储为单元阵列而不是结构,以使后续分析更简单。
当我使用uiimport
函数时,它允许我将数据作为单元数组导入,但我希望在没有图形界面的情况下导入大量数据。现在,我一直在尝试使用importdata
函数作为:
data=importdata(filename,'t',15);
除了将数据保存为结构之外,它的工作非常完美。有没有其他方法可以做到这一点,或者对我来说,只制作一个结构单元会是最快的方法?
非常感谢!
我仍然没有一个非常漂亮的解决方案,但它可以工作。因此,我最终选择了使用importdata
,使用for循环创建一个包含每个受试者和试验的结构化阵列的细胞,
ntrials=4; %# of trials per subject
datanamelist=['subjectA'; 'subjectB'; 'etc' ];
for i=1:size(datanamelist,1)
for j=1:ntrials;
filename=sprintf('%s%g.txt',datanamelist(i,:),j);
PDdata{i,j}=importdata(filename,'t',15); %first 15 lines are headers
end
end
我现在可以从每个特定阵列中提取数据,并将其作为PDdata{subject,ntrials}.data
进行访问
因此,通过(在受试者i和试验j上循环)创建包含所有数据的4D矩阵
dataMatrix(:,:,i,j)=PDdata{i,j}.data
预层解决方案仍然受欢迎