dir函数
dir函数可以获得指定文件夹下的所有子文件夹和文件,并存放在一个文件结构的数组中,
主要内容有name(文件名)、date(修改日期)、bytes(文件大小)、isdir(目录是1,不是为0)、datenum (matlab中特定的修改日期)。这个数组各结构体内容是什么样子的呢,下面一张图看的更清楚!
dir ( ' . ' ) %列出当前目录下的所有子文件夹和子文件
dir ( ' G:\Matlab ')% 列出指定目录下的所有子文件夹和文件
dir( ' *.m' )%列出当前目录后缀是.m文件的所有文件
下面介绍通过dir函数获取目录下的所有Excel文件
dirs=dir('此处为路径\*.xlsx'); %读取路径下的指定类型文件列表,返回结构数组,此处我需要的Excel表格,所以后缀是xlsx,也可以是其他后缀名喔。
dircell=struct2cell(dirs)'; % 将结构体转换成元胞数组,转置让文件名按列排列。
filenames={dirs.name}; %取出文件名+后缀
文件名存储好之后,就可以用for循环结合xlsread函数读取每个Excel表格的数据,进行批量的处理操作啦!
for i=1:length(filenames)
Data=xlsread(filenames,'sheet1');
……
end
曲线拟合
在数据处理时,通常我们都是需要先滤波,再用指定函数拟合,得到光滑曲线。至于滤波不过多介绍啦,需要结合具体专业采用具体的方法,matlab里面也有专门的滤波函数。
下面主要介绍一下Matlab里面的拟合。
首先必须要知道的就是拟合工具箱,在命令行输入cftool(x,y)即可调用,下面来看一下效果。
点击File-Generate Code即可生成当前拟合函数,保存后(命名默认)就可以通过调用该函数来批量拟合多组数据啦!
如何返回拟合函数值呢
举个例子,我用傅里叶逼近拟合,如何调用函数,并且求指定自变量对应的数值呢?利用下面函数就可以调用啦!
fuliye=createFit(x,y);%调用保存好的createFit函数,傅里叶逼近拟合
curve=feval(fuliye,[2:1:10]);%feval可以求自变量[2:1:10],对应的因变量输出值啦
如何判断拟合效果呢
首先需要熟悉一个概念。
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据并使得这些求得的数据与实际数据之间误差的平方和为最小。
那么对于任意的x值,就会有一个实际值y和一个拟合值y’,那么对于所有的x值,最小二乘的就是求解下面公式的最小值:
比如用一次函数y=ax+b来拟合,系数a、b的值就要通过不断计算,使得误差的平方和最小来确定。
如果你已知数据趋势,例如低碳钢拉伸曲线,或者拟合工具箱里的基本函数已经不能满足需求,也可以自定义曲线函数来拟合数据哒
上面是我处理后的两张基坑排桩变形图象呢,有人觉得这样图很丑,那就对了。毕导也说过:学术界是一个以丑为美的领域,没有那么多的花里胡哨啦!学术图表配色原则和理工男穿衣搭配原则是类似的!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删