在C++或Python中从多个输入文件创建矩阵

2024-06-17 08:09:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个荧光光谱仪,它以一种不舒服/愚蠢的方式输出其荧光数据,以便进一步处理。也就是说,在实际数据开始之前有55行注释和信息。第55行从第1列中的发射波长和第2列中的荧光值开始,用标签限制器将其分开。在注释中,第22行还有激发波长。文件看起来像这样(行号不是文件的一部分。为了清楚起见,我添加了它们):

Line 1   Stefan
Line 2   Date: 23.1.2012
Line 3   WS_40#01.SP
Line 4   ...
Line 22  240
Line 23  ...   
Line 55  300.000000 62.237799  
Line 56  300.500000 59.904189  
Line 57  301.000000 58.901731  
Line 58  ...
Line 656 600.5      23.900000  

每个激发波长有一个文件,一个样本总共有44个文件(从240到455nm,5 nm步进)。44 spectras的通用文件名存储在名为“的文件中文件名.txt". 44个文件以数字命名,例如FILENAME#01.sp,FILENAME#02.sp,…,FILENAME#44.sp

目标: 我想从这44个文件中创建一个矩阵,如下所示(理想情况下,激发波长取自第22行,但列名也可以手动创建,因为它们总是相同的):

^{pr2}$

最后,矩阵应该存储在一个名为文件名.csv在

<>这是如何使用C++或Python来实现的?在

问题是我已经在R中为这个问题编写了一个解决方案,但是我们希望有一个.exe文件,这样实验室技术人员就可以在不熟悉R的情况下完成这项任务。这将真正帮助我们的实验室完成重要的事情。在

不幸的是,我没有好的python或c++代码。在

如果问题不清楚,请告诉我。在这种情况下,我将添加一些信息或重新措辞的问题。在

任何直接的帮助或链接到其他网站/帖子都是非常感谢的。在


Tags: 文件数据信息文件名方式line情况矩阵
2条回答
<>在C++中,可以使用标准模板库从文本文件中读取和写入^ {CD1>}s。例如:

ifstream filenames ("filename.txt", ifstream::in);

创建一个对象来读取文件名.txt“文件。可以通过执行以下操作从文件中获取每一行:

^{pr2}$

当你看完文件后:

filenames.close ();

您可以使用相同的技术来读取44个文件中的每一行。在

对于以类似于R的方式进行日常数据分析,可以使用PandasPython库。在

要将Python脚本转换为.exe文件,可以使用^{}。在

为了简化可执行文件的创建,可以只使用Python标准库example编写脚本。在

相关问题 更多 >