Matlab之数据处理
写在前面的,软件不太强大,每次保存都需要生成rec和dark的文件,在处理是只需要一个就行了,所有网上查看了下运用批处理的命令去掉多余的文件:
解决办法:windows命令模式下CMD进入文件的目录,输入命令:del /q *rec*.csv(*rec*就是需要删除的包含rec的文件)
昨天下午搞了一个下午的数据提取,想过了用多种方法包括java,delphi等,最后还是想到用Matlab比较方便,选对工具真的很重要啊
我的数据格式:有多个csv文件,对我有用的只有B15:B270的数据,如何提取,看下面代码:
wave = csvread('.\dark\dark.csv',14,0,[14,0,269,0]);%看参数,具体参数的功能参考相应的Matlab书籍 dark =csvread('.\dark\dark.csv',14,1,[14,1,269,1]);%获取背景参数,当前目录的下级目录 ref = csvread('.\ref\ref.csv',14,1,[14,1,269,1]);%获取参比 B = ref-dark; files = dir('*.csv');%获取当前目录的文件数,注意读取的是csv文件 l = length(files); C = []; for i = 1:lfilename = files(i).name;%获得文件名A=csvread(filename,14,1,[14,1,269,1]);%读入指定列的数据,详细参数功能参考对应的代码D = B./(A-dark);%矩阵对应的数相除C = [C D];%矩阵列合并 end E = [wave log10(C)]; %dlmwrite('result.txt',C,'delimiter','\t');%以文本的形式输出,注意指定精确度'precision','%f32' xlswrite('result.xlsx',E,'Sheet1');%xls的形式输出 msgbox(['complete! ' num2str(l) ' xls files.']);
后来跑数据不好,分析原因是没有去三次的平均值,我是每一个位置光谱扫了三次,但是对应的化学只有一个值(一开始我的办法是三次都是取同一个化学值,但是这样的做法是不对的),所有在原有的基础上,每隔3列取一次平均值,算法如下(代码比较简单):
A = xlsread('result.xlsx','Sheet1','B3:PE258'); [m,n]=size(A); B=[]; for i=3:3:n%第二个参数是步长temp = A(:,i-2:i);C = mean(temp,2);B=[B C]; end xlswrite('mean_3.xlsx',B,'Sheet1');%xls的形式输出 msgbox(['complete! ']);
以上就提取完成了,但是化学值是必须自己手动写的,那个真叫一个辛苦,420个数据还好吗,真的还好吗?
方法是通用的,以后读取xls的文件可以对应的用xlsread和xlswrite方法来写,类似能读的文本还有txt、dat......
关于常见的光谱数据的处理,对于同一个点的三次的取平均值的matlab的算法:
B=[];%产生一个空矩阵, for i=0:14 data=zeros(396,1);%生成一个行*列为396*1的零矩阵 for j=1:3s=strcat(num2str(i),'-',num2str(j),'.txt');%'-'是取得i和j之间的链接符。如果是1.2那就是'.'。k=importdata(s);t=k(:,2);%如果原数据的第一列是光的波数,第二列才是吸光度,那么这里写2data=data+t;%注意矩阵的相加 enddata=data/3;%举证的除法运算,其中每个点都除以3B=[B,data]; end
关于近红外光谱的吸光度的算法,偶然在一个java程序中看见的计算方法:
result[i] = Math.abs(Math.round(((resultQ[i] - resultDark[i]) / (double)(resultLight[i] - resultDark[i])) * 10000) / 10000.0);//此处得到的是透射率T% result[i] = -Math.log10(result[i]);//得到吸光度abs
Matlab实现曲线拟合
function string = curveFitting(a,x,y) %spfit 拟合两组数据的线性关系 %a 拟合的次数 %x x轴数据 %y y轴数据 fx=polyfit(x,y,a)%结果返回a次拟合多项式系数,从高次到低次依次存放到变量fx中; yvalue=polyval(fx,x);%求得多项式在x0处的值y0; ymean=mean(y); Rsquare=(norm(yvalue-ymean)/norm(y-ymean))^2 %求得相关系数R的平方进行输出 SC=[]; Temp=[]; for i =1:aif fx(i) > 0if i >1string = ['+',num2str(fx(i))];elsestring = num2str(fx(i));endelsestring = num2str(fx(i));endTemp = [string,['x^',num2str(a+1-i)]];SC = [SC,Temp]; end if fx(a+1) > 0lastString = ['+',num2str(fx(a+1))];SC =[SC,lastString]; elseSC = [SC,num2str(fx(a+1))]; end %画图程序(x,y)对应的点,x1y1对应的是带入拟合后的点 x1=x(1):0.2:x(length(x));%0.2是步长,不是特别要求 y1=polyval(fx,x1); plot(x,y,'b*',x1,y1,'g'); xlabel(strcat('拟合方程:y=',SC));
Matlab批量到数据(二维荧光数据处理)
B=[];%产生一个空矩阵 for i=0:14 data=zeros(396,1);%生成一个行*列为396*1的零矩阵 for j=1:3s=strcat(num2str(i),'-',num2str(j),'.txt');%'-'是取得i和j之间的链接符。如果是1.2那就是'.'。k=importdata(s);t=k(:,2);%如果原数据的第一列是光的波数,第二列才是吸光度,那么这里写2data=data+t; enddata=data/3;B=[B,data]; end
转载于:https://www.cnblogs.com/sowhat4999/p/4439862.html
Matlab之数据处理相关推荐
- gps数据处理matlab,基于Matlab的数据处理方法在GPS高程拟合中的应用
基于Matlab的数据处理方法在GPS高程拟合中的应用 在分析GPS高程异常拟合模型实质的基础上,结合工程实例,顾及地球重力场的空间连续性特点,运用Matlab中的拟合插值函数Griddata等进行高 ...
- matlab实验数据处理,实验一 数据处理方法的MATLAB实现
实验一数据处理方法的MATLAB实现 一.实验目的 学会在MATLAB环境下对已知的数据进行处理. 二.实验方法 1. 求取数据的最大值或最小值. 2. 求取向量的均值.标准方差和中间值. 3.在MA ...
- matlab沉降数据处理,基于MATLAB的高层建筑沉降变形监测数据处理
第 32卷 第 5期 2009年 10月 测绘与空间地理信息 GEOMATICS & SPATIAL IN FORMATION TECHNOLOGY Vol. 32,No. 5 Oct. , ...
- 用matlab做数据处理的几个小坑
导入数据是个苦差事,有时候matlab不接受你给它的数据格式,譬如xls和xlsx明明能够打开,但是matlab却死活不认. 怎么办?如果能够将这些数据变成txt格式,会方便得多 给你们一个思想 大量 ...
- matlab直观数据处理,霍尔效应实验的MATLAB数据处理
[专题研讨 ] 霍尔效应实验 的 数据处理 王雪晴 , 杜豪杰 评顶 山学院 电气信息工程学院 , 河南 平顶 山 摘要 运用 语言对大学物理 实验霍尔效应进行最小 二乘法数据处理 . 与传统手动作 ...
- matlab实验数据处理
%% %------------------------------------------------------------------------三组信号一致性处理 clear all; clo ...
- 【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘
文章目录 数据预处理任务 数据集成 数据变换 数据清洗 数据规约 主要处理函数 数据预处理任务 数据清洗:去掉数据中的噪声,纠正不一致 数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集 ...
- Matlab高光谱遥感数据处理与混合像元分解实践技术
光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...
- Matlab高光谱遥感、数据处理与混合像元分解实践技术应用
光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...
最新文章
- 10年内,这19个关键技术将改变世界!
- 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...
- 模块化工程构建系列(一)
- 解决mysql获取不到连接的问题
- python解析json_python3 解析 json 字符串并返回支持属性访问的对象
- qcolor文字生成颜色
- 可以替代Viso的小巧开源工具DIA。
- BGP 默认路由和OSPF默认路由的异同
- 编程实现将rdd转换为dataframe:源文件内容如下(_第四篇|Spark Streaming编程指南(1)
- 【389天】跃迁之路——程序员高效学习方法论探索系列(实验阶段146-2018.03.01)...
- Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
- javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
- 数据分析师面试常见的77个问题
- websocket与下位机通过netty方式通信传输行为信息
- qt 使用msvc 打断点无反应解决办法
- 来了!2020云栖大会 蚂蚁金融科技产品能力再升级
- 微博自动同步发表到微头条工具使用说明
- React项目中请求跨域解决方法
- html 图片鼠标移上去点亮,CSS3 实现鼠标移到图片上时一片亮光一闪而过的效果...
- Hbase启动失败,查询日志后报错信息是master.HMasterCommandLine Master exiting
热门文章
- iphone 如何成功的把three20成功的添加到xcode中去。
- HP的“高端”磁带库!
- PAT1004. 成绩排名
- 问题 H: Search Problem (V)
- 数据:以太坊2.0合约24小时新增2.04万ETH
- Filecoin Gas基础费率涨至4.78 nanoFIL
- SAP License:SAP与中国电子技术标准化研究院开展交流活动
- 读懂现金贷产品的客群风险标签维度
- DjangoForm组件初识
- FusionCharts 技术文档-Jsp画图例子