Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 创建一个循环来生成我从TXT文件中获得的数据的平均值?_Matlab_Text_For Loop - Fatal编程技术网

Matlab 创建一个循环来生成我从TXT文件中获得的数据的平均值?

Matlab 创建一个循环来生成我从TXT文件中获得的数据的平均值?,matlab,text,for-loop,Matlab,Text,For Loop,我试图用脚本将我的实验室数据转换成matlab,我有很多样本的txt文件,每个样本有30个txt文件。我做了一个函数,从这些文件中获取数据,并将它们存储到包含数据和标签的结构中。 我想知道是否可以使用循环而不是逐行加载所有30个文件 function s = try1(fn) % adapt for other file format according to your needs fid = fopen(fn); s.data = []; % skip firs

我试图用脚本将我的实验室数据转换成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
函数s=try1(fn)
%根据需要调整其他文件格式
fid=fopen(fn);
s、 数据=[];
%跳过第一行
对于k=1:6
l=fgetl(fid);
%读标题
a=regexp(l’,’,‘split’);
s、 标签=a;
l=fgetl(fid);
k=0;
结束

而((l~=-1)&(k要对数据目录执行您想要的操作并在循环中处理每个文件,您可以使用
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])

我假设你可以在一个循环中调用
try1
,或者我遗漏了什么?是的,但我想给出txt文件的文件夹目标,这个循环获取这个try1中的所有文件这是一个很好的wwaz,但我收到了这样一条消息“从结构转换为双精度时发生以下错误:使用==>双精度转换从s转换为双精度时出错”truct不可能。“?从结构转换为双精度时发生以下错误:使用==>从结构转换为双精度时出错。错误为==>getmean at 13 result(ind)=try1(myFN);我认为在这种情况下,我必须更改我的try1函数,以便能够将其用于fullfile(..)@Steven需要更清楚一些。现在使用函数try1。我调用它时得到了如下结果:数据:[100x3 double]和一些标签。我只需要使用这些数据。获取them@mecaeng完整文件只需要一个目录和文件名,并适当地组合它们(通常通过添加
/
或``取决于操作系统…如果已经有操作系统,则不添加)。