写在前面的,软件不太强大,每次保存都需要生成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之数据处理相关推荐

  1. gps数据处理matlab,基于Matlab的数据处理方法在GPS高程拟合中的应用

    基于Matlab的数据处理方法在GPS高程拟合中的应用 在分析GPS高程异常拟合模型实质的基础上,结合工程实例,顾及地球重力场的空间连续性特点,运用Matlab中的拟合插值函数Griddata等进行高 ...

  2. matlab实验数据处理,实验一 数据处理方法的MATLAB实现

    实验一数据处理方法的MATLAB实现 一.实验目的 学会在MATLAB环境下对已知的数据进行处理. 二.实验方法 1. 求取数据的最大值或最小值. 2. 求取向量的均值.标准方差和中间值. 3.在MA ...

  3. matlab沉降数据处理,基于MATLAB的高层建筑沉降变形监测数据处理

    第 32卷 第 5期 2009年 10月 测绘与空间地理信息 GEOMATICS & SPATIAL IN FORMATION TECHNOLOGY Vol. 32,No. 5 Oct. , ...

  4. 用matlab做数据处理的几个小坑

    导入数据是个苦差事,有时候matlab不接受你给它的数据格式,譬如xls和xlsx明明能够打开,但是matlab却死活不认. 怎么办?如果能够将这些数据变成txt格式,会方便得多 给你们一个思想 大量 ...

  5. matlab直观数据处理,霍尔效应实验的MATLAB数据处理

    [专题研讨 ] 霍尔效应实验 的 数据处理 王雪晴 , 杜豪杰 评顶 山学院 电气信息工程学院 , 河南 平顶 山 摘要 运用 语言对大学物理 实验霍尔效应进行最小 二乘法数据处理 . 与传统手动作 ...

  6. matlab实验数据处理

    %% %------------------------------------------------------------------------三组信号一致性处理 clear all; clo ...

  7. 【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

    文章目录 数据预处理任务 数据集成 数据变换 数据清洗 数据规约 主要处理函数 数据预处理任务 数据清洗:去掉数据中的噪声,纠正不一致 数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集 ...

  8. Matlab高光谱遥感数据处理与混合像元分解实践技术

    光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...

  9. Matlab高光谱遥感、数据处理与混合像元分解实践技术应用

    光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...

最新文章

  1. 10年内,这19个关键技术将改变世界!
  2. 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...
  3. 模块化工程构建系列(一)
  4. 解决mysql获取不到连接的问题
  5. python解析json_python3 解析 json 字符串并返回支持属性访问的对象
  6. qcolor文字生成颜色
  7. 可以替代Viso的小巧开源工具DIA。
  8. BGP 默认路由和OSPF默认路由的异同
  9. 编程实现将rdd转换为dataframe:源文件内容如下(_第四篇|Spark Streaming编程指南(1)
  10. 【389天】跃迁之路——程序员高效学习方法论探索系列(实验阶段146-2018.03.01)...
  11. Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
  12. javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
  13. 数据分析师面试常见的77个问题
  14. websocket与下位机通过netty方式通信传输行为信息
  15. qt 使用msvc 打断点无反应解决办法
  16. 来了!2020云栖大会 蚂蚁金融科技产品能力再升级
  17. 微博自动同步发表到微头条工具使用说明
  18. React项目中请求跨域解决方法
  19. html 图片鼠标移上去点亮,CSS3 实现鼠标移到图片上时一片亮光一闪而过的效果...
  20. Hbase启动失败,查询日志后报错信息是master.HMasterCommandLine Master exiting

热门文章

  1. iphone 如何成功的把three20成功的添加到xcode中去。
  2. HP的“高端”磁带库!
  3. PAT1004. 成绩排名
  4. 问题 H: Search Problem (V)
  5. 数据:以太坊2.0合约24小时新增2.04万ETH
  6. Filecoin Gas基础费率涨至4.78 nanoFIL
  7. SAP License:SAP与中国电子技术标准化研究院开展交流活动
  8. 读懂现金贷产品的客群风险标签维度
  9. DjangoForm组件初识
  10. FusionCharts 技术文档-Jsp画图例子