Matlab如何正确识别变色龙工作站导出的原始数据(*.txt)

对于科研狗,大家都希望能够将变色龙等色谱工作站中的原始数据导出后自己作图,毕竟工作站给出的图清晰度太低了,而且经常无法满足自己或期刊杂志的要求,此外,对于采用一维色谱升级二维色谱方案(缺少方案的亲们,色谱博士可提供多项方案支撑,以打破仪器本身限制)的科研狗们,原始数据的导出就更加重要了,因为目前没有色谱工作站支持升级方案后期二维色谱的数据处理,我们需要自己动手来处理和合成二维色谱数据,为此导出原始数据再结合其他软件进行数据处理就变得尤为重要了。好了,不废话了,直接进入主题(注意哦亲,本站几乎所有内容仅登录可见,谢谢!)。

(1)打开变色龙工作站导出后的txt原始数据后,大家可看到其数据排列方式基本如下:

Matlab如何正确识别变色龙工作站导出的原始数据(*.txt)

(2)方法一:一种比较繁琐的方法:对于以上数据,我们如果采用excel进行预处理,可采用ctrl+A全选数据复制,再粘贴至excel,注意一定要全选,否则可能excel无法正确对数据进行分列分行处理。其结果如下图,大家只需要将红色框内的内容全部删除即可得到完整数据类型的excel数据了,或者也可以直接存储为xls格式文件,这样接下来就可以用 xlsread(注意若未删除红色框内部分内容,切记标记数据其实位置)轻松读取原始数据进入Matlab

Matlab如何正确识别变色龙工作站导出的原始数据(*.txt)

这里附上xlsread的函数帮助,免得亲到处寻找(大家也可以直接前往Matlab中文社区查找):https://ww2.mathworks.cn/help/matlab/ref/xlsread.html?searchHighlight=xlsread&s_tid=doc_srchtitle

语法

  num = xlsread(filename)
  num = xlsread(filename,sheet)
  num = xlsread(filename,xlRange)
  num = xlsread(filename,sheet,xlRange)
  num = xlsread(filename,sheet,xlRange,'basic')
  [num,txt,raw] = xlsread(___)
  ___ = xlsread(filename,-1)
  [num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)

说明

num = xlsread(filename) 读取名为 filename 的 Microsoft® Excel® 电子表格工作表中的第一张工作表,并在一个矩阵中返回数值数据。

num = xlsread(filename,sheet) 读取指定的工作表。

num = xlsread(filename,xlRange) 从工作簿的第一个工作表的指定范围内读取数据。使用 Excel 范围语法,例如 'A1:C3'

num = xlsread(filename,sheet,xlRange) 读取指定的工作表和范围。

num = xlsread(filename,sheet,xlRange,'basic')basic 导入模式下读取电子表格中的数据。如果您的计算机未安装 Windows® 版 Excel,xlsread 会自动在 basic 导入模式下运行,该模式支持 XLS、XLSX、XLSM、XLTX 和 XLTM 文件。

如果不指定所有参数,请使用空字符向量 '' 作为占位符,例如,num = xlsread(filename,'','','basic')

[num,txt,raw] = xlsread(___) 还使用先前语法中的任何输入参数,在元胞数组 txt 中返回文本字段,在元胞数组 raw 中返回数值数据和文本数据。

 

___ = xlsread(filename,-1) 打开一个 Excel 窗口以便按交互方式来选择数据。选择工作表,将鼠标拖放到所需范围上,然后点击确定。只有安装了 Microsoft Excel 软件的 Windows 计算机才支持此语法。

 

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)(其中 processFcn 是函数句柄)读取电子表格,对数据调用 processFcn,并在数组 num 中以数值数据的形式返回最终结果。xlsread 函数在元胞数组 txt 中返回文本字段、在元胞数组 raw 中返回数值和文本数据,并在数组 custom 中返回 processFcn 的第二个输出。xlsread 函数不会更改电子表格中存储的数据。只有安装了 Excel 软件的 Windows 计算机才支持此语法。

(3)如果大家习惯了上述方法的话也挺好的,毕竟上述方法是一种思路上最为直接的方法,但是上述方法并非为最简单的方法,由于色谱博士成员在进行上述操作的时候,尤其在进行二维色谱数据处理的时候感到非常繁琐,因此我们在焦虑和挣扎中发现了一种更快更简单的方法,那就是使用textread,大家打起精神,相信你会有所收获的。

在Matlab中直接载入上述txt文档的文件名及路径,假如其路径和文件名为:H:\thinkpad 14-7-17data in use\yeast extract doctor\data\two-dimensional\papers research\paper 4 ultra fast stop-flow 2D separation\第一维凝胶色谱柱的选择\UPLC SEC -T3 RPLC 二维分离\玉米肽进样-7.5-1.txt,将该值赋值至DataPosition,即:

DataPosition='H:\thinkpad 14-7-17data in use\yeast extract doctor\data\two-dimensional\papers research\paper 4 ultra fast stop-flow 2D separation\第一维凝胶色谱柱的选择\UPLC SEC -T3 RPLC 二维分离\玉米肽进样-7.5-1.txt';

然后采用以下语句:[data1,data2,data3]= textread(DataPosition,'%n%n%n','headerlines',44);%44其实就是数据开始的行号,大家可以检查一下

好了接下来大家应该就知道效果了,上述data1,data2和data3分别对应txt数据中的时间,步长和响应值,而前方的很多文字部分内容会恰如其当的忽略掉了,然后我们直接另DataY=[data1 data3],就可以得到相应矩阵了。

Matlab如何正确识别变色龙工作站导出的原始数据(*.txt)

看完上述方法,大家觉得是不是很简单,but。。。其实这种方法我们捣腾了一天才发现这个方法,希望大家和彼此都毕业顺利。

文章末尾固定信息

我的微信
这是我的微信扫一扫
weinxin
我的微信
我的微信公众号
我的微信公众号扫一扫
weinxin
我的公众号
chromdocwp
  • 本文由 发表于 2018年5月6日 21:24:21
  • 转载请务必保留本文链接:https://www.peposx.com/2018/05/06/%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8matlab%e6%ad%a3%e7%a1%ae%e8%af%86%e5%88%ab%e5%8f%98%e8%89%b2%e9%be%99%e5%b7%a5%e4%bd%9c%e7%ab%99%e5%af%bc%e5%87%ba%e7%9a%84%e5%8e%9f%e5%a7%8b%e6%95%b0%e6%8d%ae/
评论  0  访客  0

发表评论