使用MATLAB两年多,目前每天工作必备,占坑,有时间再答!
偶尔翻翻一年以前自己写的数据处理的代码,真的要被自己蠢哭,当年真的是too young too naive。废话少说!
1. eval
当处理海量数据,进行计算分析的时候,你就需要打开不同文件夹提取和保存数据。这种情况下,eval函数可以大大提高程序的灵活性。如下:input文件夹下有10个子文件夹a1,a2,...,a10,没个文件夹下都有3个mat文件:Press_l,X_l和Y_l。分别读取数据并对其进行处理,然后输出结果文件:XL_l和Patch_l。代码如下:
clear
clc
number=10;%文件数
%创建输出文件夹 C:\Z目录下output文件夹
system('mkdir C:\Z\output')
for i=1:number %打开不同文件夹下相同的数据
eval(['load C:\Z\input\a',num2str(i),'\Press_l.mat']);
eval(['load C:\Z\input\a',num2str(i),'\X_l.mat']);
eval(['load C:\Z\input\a',num2str(i),'\Y_l.mat']);
...%计算过程 要输出结果 XL_l 和 Patch_l
...
name=['mkdir C:\Z\output\a',num2str(i)];%在同一目录下生成输出文件
system(name);%生成C:\Z\output目录下a*文件夹
str1=['C:\Z\output\a',num2str(i),'\XL_l.mat'];
str2=['C:\Z\output\a',num2str(i),'\Patch_l.mat'];
eval(['save ',str1,' XL_l']);
eval(['save ',str2,' Patch_l']);
end可能有人要说了,我的文件夹名字不规律,怎么办。简单,将你的文件夹名字存到一个cell数组内,然后调用胞元就可以了。代码如下:
clear
clc
str={'a1','b2','c3','d4','e5'};
number=size(str,2);%文件数
%创建输出文件夹 C:\Z目录下output文件夹
system('mkdir C:\Z\output')
for i=1:number %打开不同文件夹下相同的