| 查看: 1529 | 回复: 2 | |||
[交流]
OriginLab 中Labtalk编程 代码分享 小角激光光散射数据处理使用 已有1人参与
|
|
在处理数据时由于需要处理批量的数据,不得已想办法编写了几行代码。之前编写代码时各种网上查找,除了找到一些教程外并没有找到对计算机小白很友好的代码实例,所以在此分享一下我的代码,代码很简单,我觉得对那些同样是初学者的同学们应该比较好理解。最后,希望大家多多分享,互相交流。OriginLab的编程语言用好了处理数据真的很方便。 在下非计算机专业,仅仅是计算机爱好者,如果有什么格式上的不专业呀请自动忽略,计算机小白在各位大神面前瑟瑟发抖。。。。。。另外,也期待各位大神能分享一些由易到难的代码实例,帮助大家共同学习进步。 //以下代码可以将每一列都减去该列第一行的值,然后找到每一列的最大值,用该列除以该列的最大值,然后对该列取对数,并对该列的前N个点进行线性拟 //合,将线性拟合的直线的斜率输出在对应列的最后一行 //进行线性拟合,拟合的斜率放在每列对应的最后一行 const colume=46; //我需要处理46列数据,每列数据有947行 const row=947; //同时对连续的第j列,每一列都进行每一行都减去第一行的值下面这一段用j表示列,用i表示每一列的行 for (j=2;j<=colume;j++) { for(i=2;i<=row;i++) { wcol(j)=wcol(j)-wcol(j)[1]; } } //减完以后对每一列的第一行赋值为0。因为刚才只是从第二行开始减,所以现在也要把第一行减去第一行的值,即直接赋值为0.倒数第一行倒数第二行都赋值为空,即"--"。因为倒数第一行和倒数第二行是数据自带的最大值和最小值,我并不需要。 for (j=2;j<=colume;j++) { wcol(j)[1]=0; //“"--"”表示此处的值为空 wcol(j)[row-1]="--"; //“"--"”表示此处的值为空 wcol(j)[row]="--"; } //对每一列的值求最大值,并列在该列的最下面一个空格里 for(i=2;i<=colume;i++) { wcol(i)[row+1]=max(wcol(i)) } //然后用每一列都除以该列的最大值,从而进行归一化 for(i=2;i<=colume;i++) { wcol(i)=wcol(i)/wcol(i)[row+1] } //除以最大值以后将最大值删掉 for(i=2;i<=colume;i++) { wcol(j)[row+1]="--"; } //然后对每一列归一化处理后的光强进行取自然对数 for(i=2;i<=colume;i++) { wcol(i)=ln(wcol(i)) } //对每一列初始的35个点线性拟合,并求出拟合直线的斜率,将斜率放在该列最后一行 //对于前面有坐标但是y值为空的情况,程序不会把他当做第一个点。考虑到点与点之间的间隔都相同,所以即使不是一一对应也没有关系, //因为我们需要的是斜率 loop(ii, 2, colume) { range dd = (1, $(ii)); fitlr iy:=dd N:=35 ; wcol(ii)[row+1]=fitLR.b; } 欢迎大家交流讨论~转载请注明出处~这么渣的代码,估计也没人转载吧 ![]() ![]() ![]() ![]() 附件为练习用的txt,导入到origin中即可。新的代码:以下代码实现了对matrixT中每一列数据的平滑。 //以下代码将需要你输入待处理的数据所在的sheet的shortname,然后将目前每一列数据进行平滑,将平滑数据放在后面的列 //用作x坐标的列必须是数值,不能是导入txt时候的“x=23”这种形式 string sheetname$=sheet1; //sheetname$这个string类型的变量名需要手动 //输入。如果能找到当前活动的workbook的worksheet的名字就好了 string bookname$=%H; //得到当前处于活动状态的workbook的short name range rtemp=[bookname$]sheetname$!; //定义类型为range的名为rtemp的变量 int colnum=rtemp.nCols; //得到当前活动状态的workbook的名为 //sheetname$的sheet有多少列 for(i=2;i<=colnum;i++) //将当前sheet中的从第2列开始的列平滑,并 //输出到当前sheet的后面 { range riy=[bookname$]sheetname$!wcol(i); range roy=[bookname$]sheetname$!wcol(i+colnum); smooth iy:=riy meth:=sg poly:=2 npts:=30 oy:=roy //本行代码需要读者查询Labtalk中的smooth函数的各个输入参数的含义 } |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : matrix.txt
2017-06-14 21:38:51, 3.37 M
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
参与限项
已经有3人回复
假如你的研究生提出不合理要求
已经有7人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复


2楼2017-06-14 21:40:25
3楼2017-06-24 16:45:38














回复此楼
shenyehui