【发布时间】:2018-05-18 05:11:39
【问题描述】:
大家好,我写了一个 for 循环,我想在一个主题的多个会话中使用它。我有一个数据路径:C:\Users\Rouve\Documents\Promotion\tDCS\DATA\VP01\ 其中三个文件夹:Session1、Session2、Session3 所在。这些文件夹中的每一个都包含 15 个文本文件(test1.txt、test2.txt ... test15.txt)。我的目标是运行 for 循环,它将 15 个文件加载到一个会话中,将它们放入一个单元格中,提取该单元格内每个数据集的最大值,然后在所有会话中平均每三个最大值并将它们放入一个最终文件,所以每个会话我会得到 5 个值。 当我为一个会话运行循环时,它可以工作并且看起来像这样:
Volume_name='C:\Users\Rouve\Documents\Promotion\tDCS\DATA\VP02\Session1';
files=dir(fullfile(Volume_name,'*.txt'));
files={files.name}';
files_sorted=natsortfiles(files);
fileName=ls('*txt');
data = cell(numel(files_sorted),1); %# store file contents
for i=1:numel(files_sorted)
fname = fullfile(Volume_name,files_sorted{i}); %# full path to file
data{i} = dlmread(fname, '\t', 19, 1); %# load file
end
for i=1:length(data) %# get Max values of each trial (15 per session in total)
MaxValues(i)=max(data{i});
end
MaxValues=MaxValues';
Mean_values=mean(reshape(MaxValues,3,[]));
Mean_values=Mean_values';
我似乎无法弄清楚如何构造 for 循环,因此它会自动为所有三个会话执行此操作并输出三个变量,其中包含会话 01、会话 02 和会话 03 的 5 个值。我真的希望你能提供帮助我!
【问题讨论】: