華文網

你會用資料處理軟體嗎?如果不會我推薦Igor pro

本文轉發自igor應用程式設計,編輯在原譯文基礎上有所改動。

每一個從事實驗科學研究的人都要選擇一款合適的資料處理工具。據我所知,用的最多的應該是Origin(沒有調查),也有部分人在用Matlab或者其他的工具,

如SigmaPlot,Excel等(在Linux下也有很多人喜歡gnuplot等各種開源工具)。對於剛進實驗室的同學,相信很多人都有這樣的經歷:瘋狂百度,各種求問,以尋找一款合適的實驗資料分析處理軟體(不過好像更多的事實是:導師和同實驗室的師兄師姐已經決定了你用什麼軟體,我就是這樣的經歷)。

今天,我們就對目前主流的資料處理分析軟體做一個簡單對比,目的是告訴讀者,

為什麼要選擇Igor。對比的軟體我主要選擇了Igor,Origin,Matlab,為了使對比顯得更加豐滿,我又把Excel拉了進來,湊成4個(因為我認為從專業的角度來說,Excel並不能算作科學資料處理軟體,其他的限於個人水準,無法涉及)。

除了最基本的繪圖和資料分析處理功能之外,Igor最突出的特色是“完全可程式設計的”,它通過提供大量的函數和命令來完成資料處理。其功能表系統及大量的對話方塊根本上也是對這些函數和命令列的使用。

IGOR Pro提供了極其方便易用的程式設計環境,讓使用者很自然地將程式設計當成資料處理的一部分,與正常的資料處理操作渾然天成。程式設計的方便性得益於其完整而系統的語法環境,一方面這套語法環境高度自洽,不需要引進任何外部支援,原生支援腳本級別、編譯級別的程式設計,並提供了很多普通程式設計語言才有的高級程式設計技術,
如預編譯指令、檔包含、條件編譯、名稱空間等,編譯器支援的功能廣闊,如字串處理功能的完整支援、結構體變數、函數指標、對所在平臺系統資源的自由訪問、執行緒安全函數設計及多執行緒程式設計等,這使得僅僅使用IGOR,不借助任何外部專門的程式設計工具,就能夠實現各種複雜的功能;另一方面,這套語法環境又顯著區別于普通的程式設計語言,它將前者的複雜性做了包裝,
針對資料處理程式的設計做了大大的簡化,如變數僅包括數值型和字串性兩類變數(當然也可以更具的制定變數類型,這會提高效率,但一般這樣就夠了),沒有普通程式設計語言“強類型資料”所帶來的複雜性,所有的內置函數和命令(包括使用者自訂函數)無需聲明即可自由使用,提供極為通用的方式自由訪問Igor的資料物件如wave、變數、視窗等。為了方便程式的開發,
Igor提供了相當方便的線上說明系統,隨時查詢函數及命令的使用並能夠直接插入代碼處;幾乎所有的對話方塊操作都能轉化為對應的命令列並醒目顯示,這些命令列都可以直接作為程式的代碼。儘管如此,Igor還是提供了擴展介面,熟練和有需要的人員可以利用C++等程式設計工具任意擴展其功能。這種可程式設計特性使得Igor非常適合用於處理複雜且體積較為龐大的實驗資料、需要大批量重複的操作、在多變數中任意調整某變數隨時觀察資料變化、編寫某一專門類型的資料處理工具等場合。

圖1:Igor pro是非常方便的可程式設計資料處理軟體

雖然利用程式設計來處理資料是Igor設計的“價值取向”,但這並不是說不寫程式就不能進行資料處理。Igor同樣有簡單易用的功能表和視窗系統,通過功能表及相應的視窗,可以完成諸如繪圖、資料分析及擬合、圖片輸出等日常需要的資料處理操作,這並不需要寫一行代碼。達到這個使用層次通常只需要不到一個小時(假設你有一些資料處理的基本意識和一些軟體的使用經驗)

Origin是和IGOR Pro最為相似的軟體,目標定位也相同:用於實驗資料分析處理。但是我覺得Origin的設計理念和Igor迥異,這首先體現在介面上:Origin有功能表,工具條按鈕,快捷工具按鈕,檔區,資料區等,符合Windows下標準IDE程式的風格,而Igor除了菜單之外,其他的都不是必須的(甚至如果你需要,功能表也可以去掉)。其次,Origin在最初設計時並沒有把通過程式設計來資料處理作為原生功能考慮進去,當然Origin馬上意識到了這一點,現在的版本已經支持程式設計了,但是與Igor原生支持程式設計相比,並不是很方便。由於符合Windows程式的風格,Origin程式的上手較為容易,學習曲線較為平緩。一般認為,當資料個性化要求較小,程式設計要求較小,用Origin是合適的,如果資料量很大,處理過程複雜,需要編寫程式成批次處理大量資料,則Igor是首選。

圖2:Origin介面十分簡潔易操作

Matlab是頂級的數學軟體,介面簡潔,功能強大,幾乎無所不能。但Matlab的長處在數值計算、模擬等領域,而不是實驗資料處理及科學繪圖(有人反映繪圖回應較慢,圖的修改較為麻煩,但Matlab的3D繪圖能力是杠杠的)。此外,個人感覺Matlab的設計初衷也不完全是用來分析實驗資料的,諸如實驗資料的管理、保存、恢復等並不如Igor方便直觀,因此如若不是在資料處理中需要大量的類比、計算,還是用Igor為好。

圖3:Matlab具有強大的繪圖能力

Excel是微軟OFFICE辦公軟體套件的一個元件,俗稱試算表,用來處理試算表型資料。Excel更適合於財會、統計或者資料處理分析不是太複雜的應用領域。用於實驗資料處理,簡單的實驗資料,如大學物理實驗中測得的資料還可以,如用來處理專門的科學研究實驗資料則顯得靈活性不夠,功能也稍顯欠缺,不夠專業。

圖4:用Excel作圖?還是呵呵吧

比較到這裡,想發言的人肯定很多,別著急,先聽我說。這裡所做的對比,其實正如Windows與Linux之爭,Gnome與Kde之爭,Vim與Emacs之爭(瞭解Linux的人肯定知道這是怎麼回事),既然存在爭論,說明每一種工具都有其非常優秀的特色,同時也聚集了大批不同的忠實的粉絲和使用者,其中不乏骨灰級的高手。因此爭論不是為了證明對錯,比較也不是為了說明某個工具就是沒用的。工具是要人來使用,所謂運用之妙,在乎一心,對於高手,落葉枯枝皆可作為殺人利器,固假劍乎。。。(扯遠了,打住)。這裡我只是想說,如果你還在尋找合適的資料處理工具,那麼我向你推薦Igor,絕對沒錯,它能滿足你的全部需求。如果你已經是使用Origin、Matlab或者其他資料處理軟體的高手,那麼你可以嘗試使用Igor,它會讓你耳目一新。

圖1:Igor pro是非常方便的可程式設計資料處理軟體

雖然利用程式設計來處理資料是Igor設計的“價值取向”,但這並不是說不寫程式就不能進行資料處理。Igor同樣有簡單易用的功能表和視窗系統,通過功能表及相應的視窗,可以完成諸如繪圖、資料分析及擬合、圖片輸出等日常需要的資料處理操作,這並不需要寫一行代碼。達到這個使用層次通常只需要不到一個小時(假設你有一些資料處理的基本意識和一些軟體的使用經驗)

Origin是和IGOR Pro最為相似的軟體,目標定位也相同:用於實驗資料分析處理。但是我覺得Origin的設計理念和Igor迥異,這首先體現在介面上:Origin有功能表,工具條按鈕,快捷工具按鈕,檔區,資料區等,符合Windows下標準IDE程式的風格,而Igor除了菜單之外,其他的都不是必須的(甚至如果你需要,功能表也可以去掉)。其次,Origin在最初設計時並沒有把通過程式設計來資料處理作為原生功能考慮進去,當然Origin馬上意識到了這一點,現在的版本已經支持程式設計了,但是與Igor原生支持程式設計相比,並不是很方便。由於符合Windows程式的風格,Origin程式的上手較為容易,學習曲線較為平緩。一般認為,當資料個性化要求較小,程式設計要求較小,用Origin是合適的,如果資料量很大,處理過程複雜,需要編寫程式成批次處理大量資料,則Igor是首選。

圖2:Origin介面十分簡潔易操作

Matlab是頂級的數學軟體,介面簡潔,功能強大,幾乎無所不能。但Matlab的長處在數值計算、模擬等領域,而不是實驗資料處理及科學繪圖(有人反映繪圖回應較慢,圖的修改較為麻煩,但Matlab的3D繪圖能力是杠杠的)。此外,個人感覺Matlab的設計初衷也不完全是用來分析實驗資料的,諸如實驗資料的管理、保存、恢復等並不如Igor方便直觀,因此如若不是在資料處理中需要大量的類比、計算,還是用Igor為好。

圖3:Matlab具有強大的繪圖能力

Excel是微軟OFFICE辦公軟體套件的一個元件,俗稱試算表,用來處理試算表型資料。Excel更適合於財會、統計或者資料處理分析不是太複雜的應用領域。用於實驗資料處理,簡單的實驗資料,如大學物理實驗中測得的資料還可以,如用來處理專門的科學研究實驗資料則顯得靈活性不夠,功能也稍顯欠缺,不夠專業。

圖4:用Excel作圖?還是呵呵吧

比較到這裡,想發言的人肯定很多,別著急,先聽我說。這裡所做的對比,其實正如Windows與Linux之爭,Gnome與Kde之爭,Vim與Emacs之爭(瞭解Linux的人肯定知道這是怎麼回事),既然存在爭論,說明每一種工具都有其非常優秀的特色,同時也聚集了大批不同的忠實的粉絲和使用者,其中不乏骨灰級的高手。因此爭論不是為了證明對錯,比較也不是為了說明某個工具就是沒用的。工具是要人來使用,所謂運用之妙,在乎一心,對於高手,落葉枯枝皆可作為殺人利器,固假劍乎。。。(扯遠了,打住)。這裡我只是想說,如果你還在尋找合適的資料處理工具,那麼我向你推薦Igor,絕對沒錯,它能滿足你的全部需求。如果你已經是使用Origin、Matlab或者其他資料處理軟體的高手,那麼你可以嘗試使用Igor,它會讓你耳目一新。