将ASCII文件作为单元数组而不是结构导入



我正在将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

预层解决方案仍然受欢迎

最新更新