0

我试图做脚本来评估我的实验室数据到 matlab,我有很多样本的 txt 文件,每个样本有 30 个 txt 文件。我做了一个函数来从这些文件中获取数据并将它们存储到包含数据和标签的结构中。我想知道是否可以使用循环而不是逐行加载所有 30 个文件。

function s = try1(fn)
    % adapt for other file format according to your needs
    fid = fopen(fn);
    s.data = [];
    % skip first lines

    for k=1:6
        l = fgetl(fid);
        % read header
        a = regexp(l,',','split');
        s.labels = a;
        l = fgetl(fid);
        k=0;
    end

    while( (l~=-1)&(k<130) )
        l = l(1:end-1);
        a = regexp(l,', ','split');
        a = regexpre
        p(a, ',','.');
        s.data = [s.data; str2double(a(2:4))];
        l = fgetl(fid);
        k = k+1;
    end
    fclose(fid);
end
4

1 回答 1

0

要使用数据目录执行您想要的操作并在循环中处理每个文件,您可以使用fullfile(...)和 循环的组合。这可能会起作用:

dataDirectory = 'c:/myDirectory';
allFilesDir = dir(fullfile(dataDirectory , '*.txt'));
allFN = {allFilesDir.name}

% Or do this:
% allFN = {'file1.txt', 'file2.txt'};

result = [];

for ind = 1:length(allFN)

    myFN = fullfile(dataDirectory, allFN{ind});
    result(ind) = try1(myFN);

end

% Now get the mean:
myMean = mean([result.data])
于 2013-09-19T15:14:34.770 回答