1

我正在将 ASCII 数据加载到 Matlab 中,我希望将它们存储为单元数组而不是结构,以使后续分析更直接。

当我使用该uiimport函数时,它允许我将数据导入为元胞数组,但我想在没有图形界面的情况下导入大量数据。现在,我一直在尝试将该importdata功能用作:

data=importdata(filename,'\t',15);

它完美地工作,除了它将数据保存为结构的事实。有没有其他方法可以做到这一点,或者只制作一个结构单元对我来说是最快的吗?

提前谢谢了!

4

1 回答 1

1

我仍然没有一个非常漂亮的解决方案,但它有效。所以我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

因此,创建一个包含所有数据的 4D 矩阵(循环对象 i 和试验 j)

dataMatrix(:,:,i,j)=PDdata{i,j}.data

仍然欢迎更漂亮的解决方案

于 2013-08-13T09:53:45.797 回答