我們有一個熒光光譜儀,以不舒服/笨的方式輸出其熒光數據,以便進一步處理。也就是說,在實際數據開始之前,有55條評論和信息。然後行55開始於列1中的發射波長和列2中的熒光值,其由標籤限制器分開。在這些意見,也有在22行的激發波長中的文件看起來像這樣(行號並不是文件的一部分,我只是說他們清晰。):使用C++或Python從多個輸入文件創建矩陣
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
有一個文件對於每個激發波長,其總共對於一個樣品(在5nm步驟中從240到455nm激發)共44個文件。 44個譜圖的一般文件名存儲在一個名爲「filename.txt」的文件中。 44個文件以數字命名,例如FILENAME#01.sp,FILENAME#02.sp,...,FILENAME#44.sp
目標: 我想從這44個文件中創建一個矩陣看起來像這樣(理想情況下,激發波長從管線22取出,但列名也可以手動創建,因爲它們總是相同):
240 245 250 ... 455
300.0 62.23 34.4 ... ... 23.5
300.5 59.90 23.7 ... ... 19.5
301.0 58.90 23.7 ... ... 34.8
... ... ... ... ...
600.5 23.90 ... ... ...
最後,矩陣應被存儲在文件稱爲filename.csv
這是如何使用C++或Python可行?
問題是我已經在R中爲此編寫了一個解決方案。但是我們希望爲此提供一個.exe文件,以便實驗室技術人員可以在不熟悉R的情況下完成此任務。幫助我們的實驗室完成重要的事情。
不幸的是,我沒有任何好的python或C++代碼開始。
請讓我知道,如果問題不知何故不清楚。在這種情況下,我會添加一些信息或重新提出問題。
任何直接幫助或鏈接到其他網站/職位是非常感謝。
非常感謝您的幫助,代碼和有用的鏈接。特別感謝爲此任務編寫了python代碼的J.F. Sebastian。不幸的是,代碼在第40行出現以下錯誤消息:** ValueError:無法將字符串轉換爲float:**。在這裏,您可以下載一些示例文件:[file#1](http://almost-published.com/files/WS_40%2301.sp)和[file#2](http://almost-published.com/files /WS_40%2302.sp)和[filename.txt](http://almost-published.com/files/filename.txt)。再次感謝您的時間和幫助。對此,我真的非常感激。 Stefan – Strohmi 2012-03-03 07:47:19
@Strohmi:最後有空行。在填充熒光字典時,應該跳過它們[示例](https://gist.github.com/45188c014c1b262983ce)。如果你自己無法做出這樣的改變,那麼從[tutorial](http://docs.python.org/tut)開始。 – jfs 2012-03-03 14:59:26