matlab批量读取一个文件夹里类似命名的mat文件
参考网址:
首先命名方式体现在只是名字里数字有变化,其他部分是一样的,一共有1227个。
思路:通过循环,利用num2str将名字中变化的部分表示,然后读取mat文件,最后合并起来。
我的每个mat里面是一个1000*1的cell---->
代码:
filepath=\'E:\My-AMG-Paper\stayPointTry2\\'; %文件夹名字
for k = 1: 1227 % 一共的个数
temp = load([filepath,\'stayPointFile_\',num2str(k),\'.mat\']); % 利用num2str表示1,2,3,4.。。[ ]里面的内容,用逗号或者空格连接都可以,最后就是一个字符串,就是mat的路径名,temp读出来是一个structure
matname = char(fieldnames(temp));% 获取结构成员名称
data{k} = getfield(temp,matname);% 获取该名称下的成员内容,用 temp.usertrj_stay 也可以获得structure的值
end
data是一个cell,里面有1227个cell,每个cell是之前的1000*1的cell,,,,听起来很复杂,,就是连起来了而已,,但是这样不行,我不要这么多层,然后cat连接补充一句:
all_staypoint = cat(1,data{:});
save(\'all_staypoint.mat\',\'all_staypoint\');