首页 > 代码库 > matlab路径操作实战(真正实现data和code分离)

matlab路径操作实战(真正实现data和code分离)


      假设data文件夹和work文件夹并列,我的所有数据存放于data文件夹里面,我的代码存放于code文件夹里面


1、在code文件夹里面写代码获取data文件夹下所有文件

mainpath=mfilename(‘fullpath‘);
index=strfind(mainpath,‘\‘);
mainpath=[mainpath(1:index(end-1)) ‘data\‘]
filename=dir([mainpath ‘*‘]);


2、mkdir、save和load函数的高级运用

% 接上文 filename里面前两个条目是.和..,所以有效的文件是从第三个开始

for i=3:length(filename)    % 对循环读取每一个文件夹
    i
    data=http://www.mamicode.com/[];
    classType=[];
    run=[];
    runid=1;
    featureNum=[];
    for j=1:4               % 读取每一个文件夹里面的数据
        j
        file=dir([mainpath filename(i).name ‘\*_‘ num2str(j) ‘.mat‘]);
        dataread=importdata([mainpath filename(i).name ‘\‘ file.name]);
        for k=1:40
            datause=dataread(:,:,k);
            newdata=http://www.mamicode.com/func1(double(datause)); % 根据相关系数计算特征
            data=http://www.mamicode.com/[data;newdata];
            classType=[classType;j];
            run=[run;runid];
            runid=runid+1;
        end
    end
    str=[‘corr/id_‘ num2str(i-2)];
    mkdir(str)
    save([str ‘/data‘],‘data‘,‘classType‘,‘run‘);
end

      这里使用的mkdir函数和save函数都是带括号的形式,这样的话就可以把变量i的值给设定到路径里面。save函数第一个参数是路径,后面的是需要保存的变量名的字符形式。


load([‘id_‘ num2str(2),‘/data‘],‘data‘,‘classType‘,‘run‘);

      load函数与save函数格式一样,不在叙述。

matlab路径操作实战(真正实现data和code分离)