清華開發者書庫·Igor Pro實用教程:圖錶繪製、數據分析與程序設計

清華開發者書庫·Igor Pro實用教程:圖錶繪製、數據分析與程序設計 pdf epub mobi txt 電子書 下載 2025

賈小文 著
圖書標籤:
  • Igor Pro
  • 數據分析
  • 圖錶繪製
  • 科學計算
  • 程序設計
  • 清華大學齣版社
  • 開發者書庫
  • 可視化
  • 實驗數據處理
  • 科研工具
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302493181
版次:1
商品編碼:12360777
包裝:平裝
開本:16開
齣版時間:2018-05-01
用紙:特種紙
頁數:499
字數:721000

具體描述

內容簡介

本書介紹Igor Pro的基本使用技巧和數據分析處理的一般方法,全麵涵蓋Igor Pro基本操作、圖錶繪製、命令行、數據分析擬閤和程序設計等方麵內容。在內容設計上以實用性為目的,突齣圖錶繪製、數據擬閤和程序設計等數據處理中需要的內容模塊。書中配有大量的示例代碼,以便讀者在學習的過程中參考和藉鑒。

全書共分為7章和1個附錄,第1章介紹Igor Pro的基本對象和基本使用,突齣命令行的特色。第2章介紹圖錶的繪製和設置中涉及的概念和方法,包括麯綫、二維數據和三維數據的繪製。第3章介紹數據擬閤的技巧和方法,包括簡單的調用菜單擬閤到復雜的自定義函數擬閤,並詳細討論Igor Pro的一些高級擬閤技巧。第4章介紹一些常見的數據處理方法,如插值、傅裏葉變換、解方程等。第5章介紹程序設計的基本概念、Igor Pro語法環境以及命令行程序的設計。第6章介紹窗口界麵程序的設計方法以及窗口程序設計中可能用到的各種技巧。第7章介紹一些高級的程序設計方法,如多綫程、鈎子函數、計算機硬件操作等復雜用法。附錄介紹本書所用術語、Igor Pro快捷鍵和*新版本的特點。

本書可作為高等院校、科研機構等相關單位從事實驗教學或者實驗科學研究的教師、工程師的參考書籍,也可作為高年級本科生和研究生實驗數據分析和處理的參考書籍。


作者簡介

賈小文 物理學博士,長期從事Igor Pro實驗數據處理的研究和程序設計工作。多年來,利用Igor Pro編寫瞭大量的實驗數據處理程序,具有豐富的實踐經驗和嫻熟的程序設計能力。編寫的角分辨光電子能譜實驗數據處理程序被多個實驗室、單位采用。熱愛編程及數據分析技術,熟練掌握C++、C#等程序設計語言,曾獨立開發大學生基礎實驗在綫考試係統、RTKGPS自動駕駛考試係統。

目錄

第1章Igor Pro基本介紹
1.1Igor概述
1.1.1特色定位
1.1.2安裝和使用
1.1.3基本界麵
1.1.4菜單
1.1.5數據瀏覽器
1.1.6數據錶格
1.1.7命令行窗口
1.2Igor中的基本對象
1.2.1wave
1.2.2圖(Graph)
1.2.3錶格(Table)
1.2.4頁麵布局(Page Layout)
1.2.5變量(Variable)
1.2.6數據文件夾(Data Folder)
1.2.7記事本(Notebook)
1.2.8程序麵闆(Control Panel)
1.2.9三維圖(3D Plot)
1.2.10程序(Procedure)
1.2.11命令和函數
第2章圖錶繪製
2.1麯綫
2.1.1繪製麯綫
2.1.2添加新麯綫
2.2圖錶的設置和美化
2.2.1設置繪圖區域
2.2.2設置外觀
2.2.3設置坐標軸
2.2.4設置圖注
2.2.5嚮麯綫添加自定義形狀
2.2.6樣式腳本
2.3類彆圖
2.3.1類彆圖的繪製和設置
2.3.2類彆圖的設置
2.4二維wave繪製
2.4.1Image的繪製
2.4.2Image的設置
2.4.3Contour的繪製
2.4.4Contour的設置
2.4.5Waterfall的繪製
2.4.6Waterfall的設置
2.4.7Surface的繪製
2.4.8Surface的設置
2.5三維wave的繪製
2.5.1三維圖形繪製的概念
2.5.2三維圖形的繪製
2.6輸齣圖片
第3章數據擬閤
3.1擬閤概述
3.1.1擬閤的基本原理和步驟
3.1.2基本擬閤
3.1.3快速擬閤及結果查看
3.1.4自定義擬閤
3.1.5數據擬閤對話框詳解
3.2擬閤公式模型
3.2.1內置擬閤公式
3.2.2普通自定義擬閤函數
3.2.3保存自定義擬閤函數
3.2.4自定義擬閤函數的格式
3.3擬閤命令詳解
3.3.1擬閤命令參數詳解
3.3.2常用擬閤命令選項
3.3.3限定擬閤參數範圍
3.4高級擬閤技巧
3.4.1隱函數擬閤
3.4.2復雜自定義擬閤函數
3.4.3all at once擬閤
3.4.4使用結構體類型變量參數的擬閤函數
3.4.5擬閤過程中的特殊變量
3.4.6多峰擬閤
3.4.7擬閤的幾個例子
第4章數據處理
4.1插值
4.1.1基本插值方法
4.1.2插值與均勻數據
4.1.3逆插值
4.1.4麯綫平滑
4.2數值計算與統計
4.2.1微分和積分
4.2.2wave統計信息
4.2.3求解數值方程
4.2.4微分方程求解
4.2.5直方圖
4.2.6排序
4.3數學變換
4.3.1傅裏葉變換
4.3.2傅裏葉變換窗
4.3.3希爾伯特變換
4.3.4捲積
4.3.5相關
4.4圖像分析
4.4.1Lookup Table方法
4.4.2直方圖均衡化
4.5隨機數生成
第5章程序設計
5.1程序設計概述
5.1.1程序窗口
5.1.2程序窗口說明
5.1.3編譯程序
5.1.3程序代碼構成
5.1.4程序類型
5.2基本語法
5.2.1錶達式和命名規則
5.2.2變量和常量
5.2.3Structures
5.2.4流程控製語句
5.2.5函數
5.2.6程序子類型
5.2.7參數傳遞
5.2.8默認參數
5.2.9注釋和代碼風格
5.3程序設計技術
5.3.1Include指令
5.3.2Pragma參數
5.3.3IndependentModule
5.3.4Execute命令
5.3.5條件編譯
5.3.6函數引用
5.3.7訪問全局對象
5.3.8wave引用
5.3.9$運算符
5.3.10自動創建變量
5.3.11調試程序
第6章窗口程序設計
6.1窗口程序概述
6.1.1創建一個簡單的窗口程序
6.1.2窗口程序構成
6.1.3窗口生成腳本
6.1.4控件命令
6.2窗口控件
6.2.1Button按鈕
6.2.2CheckBox復選框
6.2.3SetVariable文本框
6.2.4ListBox列錶框
6.2.5PopupMenu下拉列錶框
6.2.6Slider滑動條控件
6.2.7ValDisplay數值顯示控件
6.2.8TabControl控件
6.2.9CustomControl自定義控件
6.2.10TitleBox和GroupBox控件
6.2.11控件操作
6.2.12獲取控件信息
6.2.13控件結構體變量類型應用
6.3窗口設計
6.3.1Pictures詳解
6.3.2創建Pictures
6.3.3窗口設計
6.3.4Graph和Panel的區彆
6.4菜單
6.4.1菜單概述
6.4.2創建動態菜單
6.4.3係統右鍵快捷菜單中添加菜單項
6.4.4特殊菜單項
6.4.5創建彈齣式菜單
6.4.6菜單項中的特殊字符
第7章高級程序設計
7.1程序中的free對象
7.1.1free wave
7.1.2free data folder
7.2多綫程技術
7.2.1簡單多綫程技術
7.2.2free對象與多綫程
7.2.3多綫程編程
7.2.4後颱任務
7.2.5搶占式多任務
7.2.6定時器和多綫程
7.3運行時交互
7.3.1簡單的輸入數據框
7.3.2利用PauseForUser創建輸入對話框
7.3.3程序進度條
7.4鈎子函數
7.4.1用戶自定義鈎子函數
7.4.2窗口鈎子函數
7.4.3依賴
7.5數據采集
7.5.1FIFO與Charts
7.5.2串口讀寫
7.5.3XOP擴展
7.6多媒體
7.6.1播放聲音
7.6.2視頻播放和創建
7.7錯誤處理
7.7.1程序錯誤退齣
7.7.2try�瞔atch�瞖ndtry
7.7.3Igor錯誤代碼和描述
7.8文件讀寫
7.8.1文件讀寫函數和命令
7.8.2文件讀寫示例
7.9初始化技術
7.9.1新建實驗文件時初始化
7.9.2打開窗口程序時初始化
7.10其他編程技術
7.10.1計時
7.10.2Cursor編程
7.10.3字符串及正則錶達式
附錄A本書術語說明
附錄BIgor常用快捷鍵
附錄CIgor Pro 7新特性

精彩書摘

  第3章數據擬閤
  數據擬閤利用已知公式或者模型與實驗數據進行對比,以獲取最佳參數值或者可描述數據的公式。數據擬閤是實驗數據處理的一項重要內容,很多的測量值都是通過擬閤參數得到的。通過數據擬閤還可以獲取實驗數據的演化趨勢,驗證理論的正確性。數據擬閤可以排除人為主觀因素,保證測量結果的客觀性,甚至找齣直覺無法發現的客觀規律。
  3.1擬閤概述
  3.1.1擬閤的基本原理和步驟
  擬閤通過數學公式或者數學模型,尋找一條最吻閤數據的理論麯綫,待測量值一般為某個參數,如a1,a2,…,數據是y,x1,x2,…,理論上y是(x1,x2,…)的函數,且函數形式已知(理論或者是經驗公式),則應有y=f(a1,a2,…,x1,x2,…),其中ai就是擬閤參數。最簡單的,如綫性函數y=ax1+b,a和b就是擬閤參數,y和x1是測量值。數據擬閤就是尋找最佳的參數值以使得f(a1,a2,…,x1,x2,…)與測量數據最吻閤,依據一般是最小二乘原理:
  ∑i(yi-y)2σ2i
  yi錶示y的第i個測量值,σ2i錶示測量值yi的標準方差,其倒數可描述每一個數據點在擬閤中的權值。一般的擬閤σ2i取相等值,對應於等精度測量。如果能得到每一個數據點的標準方差,則可以在擬閤中指定,這會使擬閤結果更加準確且符閤實際。
  擬閤更本質的描述是利用已有信息(測量數據)去估計未知信息(擬閤參數的)的最可能分布,擬閤參數值一般是所得分布的期望。
  完成擬閤一般包括4個步驟。
  (1) 構建數學公式或者數學模型。
  (2) 指定擬閤參數,並給齣初始值。
  (3) 調用擬閤操作命令完成擬閤。
  (4) 通過擬閤參數給齣有意義的結果。
  利用Igor可以非常方便地對一維數據、二維數據、多維數據、XY型數據、XYZ型數據等進行擬閤,並給齣詳細的結果,包括擬閤參數值、擬閤誤差、殘差(擬閤模型與真實數據之差)等。對於一維數據,還能根據置信水平給齣擬閤結果的分布區間。
  3.1.2基本擬閤
  命令CurveFit、FuncFit和FuncFitMD用於數據擬閤。CurveFit使用Igor內置的數學模型進行常見的、簡單的數據擬閤。FuncFit使用用戶自定義公式或者數學模型進行任意復雜的數據擬閤。CurveFit能完成的擬閤FuncFit都可以完成。FuncFitMD是FuncFit的多變量版本,用來對多變量數學模型或者公式進行擬閤。
  Igor提供瞭從簡單到復雜的擬閤操作,以適應不同的數據擬閤環境。根據使用的復雜性可分為3個層次。
  (1) 利用菜單【Quick Fit】進行擬閤。
  (2) 利用【Curve Fitting】對話框進行擬閤。
  (3) 調用擬閤命令結閤自定義函數進行擬閤。
  1. 利用【Quick Fit】擬閤
  先顯示要擬閤的麯綫,然後在麯綫上右擊,在彈齣的快捷菜單中選擇【Quick Fit】命令並選擇閤適的數學公式,就可以完成一次擬閤。Igor會自動調用CurveFit命令完成擬閤過程。下麵用一個實例進行介紹。
  首先創建一個要擬閤的wave:
  Make/O/N=100 trialwave;
  Setscale/I x,-1,3,trialwave;
  trialwave=exp(-0.1*x)+gnoise(0.02);
  Display trialwave;
  ModifyGraph mode=3;
  上麵創建瞭一個長度為100的wave,並取名為trialwave,設置該wave的x坐標為-1~3,然後調用數學函數exp給trialwave賦值。為瞭模擬實驗數據的隨機性,利用隨機函數gnoise疊加瞭一個標準偏差為0.02的隨機數值,然後在Graph窗口中顯示這個wave。顯示的wave如圖3��1所示。
  圖3��1待擬閤的模擬實驗數據
  在上述麯綫上右擊,在彈齣的快捷菜單中選擇【Quick Fit】命令並選擇exp公式就可以完成擬閤,效果如圖3��2所示。
  圖3��2利用【Quick Fit】擬閤麯綫示例
  圖3��2中光滑實綫就是擬閤結果麯綫。同時在命令行窗口也會輸齣一係列的信息,這些信息就是擬閤的輸齣結果。
  2. 利用數據擬閤對話框自定義擬閤
  Igor提供瞭一個數據擬閤麵闆以完成更加復雜的數據擬閤,執行菜單命令【Analysis】|【Curve Fitting】打開數據擬閤對話框,通過麵闆可以選擇或設定要擬閤的數據、擬閤函數、擬閤數據的範圍、初始參數、擬閤輸齣結果等。對於本例,在擬閤數據對話框中【Function】(函數類型)選擇exp,【Y data】(數據)選擇trialwave,其他的全部選擇默認設置就可以瞭,如圖3��3所示。
  圖3��3利用數據擬閤對話框對數據進行擬閤
  關於擬閤對話框的詳細介紹和使用請參看本書第3.1.4節和第3.1.5節。
  3. 利用擬閤命令進行擬閤
  在命令行窗口或者程序中調用CurveFit或FuncFit命令,也可以完成數據擬閤,不過這種方法對使用者的要求較高,要求使用者不但熟悉擬閤的過程和機製,還要求掌握編程方法。需要說明的是,前麵【Quick Fit】和數據擬閤對話框最後其實都調用瞭CurveFit或者FuncFit這兩個命令。特彆是自定義擬閤對話框本質上就是FuncFit命令使用的圖形用戶界麵。
  使用擬閤命令(編程)的一般步驟如下:
  (1) 創建一個自定義函數。
  Function fitfun(coef,x):Fitfunc
  wave coef
  variable x
  Exressions
  End
  (2) 創建一個wave,存放初始參數值。
  Make/O coef={a1,a2,a3,…}
  (3) 調用擬閤命令,將自定義函數和初始參數傳遞給Curvefit或者Funcfit。
  Funcfit fitfun,coef,ydata/D
  (4) 擬閤的結果就是coef中參數的值。coef在開始擬閤時提供初始參數,在擬閤過程中存放擬閤結果。
  對於初學者,更常見的方法是利用擬閤對話框擬閤。Igor會自動生成相應的擬閤函數和正確的擬閤命令。這樣在完成擬閤的同時,也可以學習和掌握編寫程序擬閤數據的技巧和方法。
  擬閤分為單次擬閤和批量擬閤。單次擬閤指一次隻對一個wave擬閤,批量擬閤指一次對多個wave進行擬閤。批量擬閤需要多次重復調用擬閤命令,因此快速擬閤和利用數據擬閤對話框進行擬閤一般適用於單次擬閤,利用命令行結閤編程技術擬閤適用於批量擬閤。
  3.1.3快速擬閤及結果查看
  本節以快速擬閤為例,介紹擬閤過程中的一些細節及如何查看擬閤結果。將下麵的命令行復製到命令行窗口並按迴車鍵。
  Make/O LorF
  SetScale/I x,-10,10,LorF
  SetRandomSeed 0.5
  LorF=1/(x*x+1)+gnoise(0.05)
  Display LorF
  ModifyGraph mode=3,marker=8
  上麵利用Make命令創建瞭一個名為LorF的wave,由於沒有指定長度,wave長度取默認值128。隨後調用x函數給LorF賦值,賦值公式為洛倫茲函數。為瞭模擬實驗數據抖動的特點,給每一個數據點加上一個標準偏差為0.05的高斯隨機噪聲。 SetRandomSeed命令用於設置隨機數種子,這樣可以保證每次産生的隨機數是一樣的。命令執行後的結果如圖3��4所示。
  圖3��4模擬洛倫茲綫型的實驗數據
  這裏稍微解釋一下洛倫茲函數的含義。洛倫茲函數是一類非常重要的函數,它的形式如下:
  b(x-a)2+b2
  洛倫茲函數具有很好的性質,如當b趨於無窮小時洛倫茲函數就轉化為δ函數,即
  δ(x-a)=limb→0b(x-a)2+b2
  在光電子能譜數據中,經常用洛倫茲函數對動量分布麯綫(Momentum Distribution Curve,MDC)進行擬閤,以獲取準粒子的動量和壽命等信息。這是因為描述準粒子態密度分布的譜函數很多情況下可以轉化為洛倫茲函數。
  在圖3��4中右擊執行命令【Quick Fit】並選擇lor函數,擬閤結果如圖3��5所示。
  圖3��5利用lor函數對實驗數據擬閤
  一條光滑的麯綫自動顯示在原來的數據之上,可以看到光滑的麯綫描述瞭數據點的演化趨勢。Igor將擬閤的結果保存在當前目錄下,同時在命令行窗口中輸齣相應的擬閤信息,如圖3��6所示。
  圖3��6擬閤的結果
  圖3��6左邊數據瀏覽器窗口中,除瞭最初創建的LorF之外,又齣現瞭4個新的wave,這些新的wave由Igor自動創建,它們存放瞭擬閤的結果。
  (1) W_coef。
  W_coef保存瞭擬閤的參數。在本例中,采用洛倫茲型函數進行擬閤,洛倫茲擬閤函數的完整錶達式為
  y=K0+K1(x-K2)2+K3
  W_coef裏按照順序保存瞭這4個參數的擬閤結果,如W_coef[0]保存瞭K0的數值。雙擊打開W_coef就能查看擬閤的結果,在程序裏也可以直接訪問W_coef來使用擬閤結果。W_coef是Igor默認創建的用來保存擬閤參數的wave。如果在擬閤前手動創建瞭參數wave,並指定給擬閤命令,則擬閤的參數保存在該wave中。
  (2) fit_LorF。
  fit_Lorf是根據擬閤參數和被擬閤數據的x坐標計算齣來的,就是圖3��5中光滑麯綫對應的wave。前麵“fit”是係統自動加上去的,錶示擬閤麯綫。可以在擬閤命令中自定義擬閤麯綫的名字,但一般不需要。fit_LorF的默認長度是200,長度也可以在擬閤過程中自定義。如果被擬閤數據顯示在當前窗口,那麼擬閤麯綫一般都會自動添加到當前窗口,以方便查看擬閤效果。
  (3) M_Covar。
  M_Covar保存瞭擬閤參數的方差。擬閤本質上是一個統計學問題,在算法中涉及方差的計算,方差信息有助於用戶評價擬閤的結果。測量存在誤差,被測數據存在誤差,通過擬閤得到的擬閤參數自然也是有誤差的,協方差矩陣描述瞭擬閤參數方差的大小。協方差的一般定義如下:
  s(x-,y-)=1n(n-1)∑ni=1(xi-x-)(yi-y-)
  上式中的xi和yi就相當於上麵的擬閤參數。由於洛倫茲型擬閤函數有4個參數,所以協方差一共有16個值(4×4),排成一個4×4的矩陣,其中對角元就是對應擬閤參數的標準方差,開平方後就是擬閤參數的實驗標準偏差,如圖3��7所示。這個值可以用來描述參數的誤差或不確定度。
  圖3��7協方差矩陣
  (4) W_sigma。
  W_sgima保存瞭每個擬閤參數的“誤差”,如果沒有指定置信水平(默認68.3%,對應高斯分布),W_sigma保存瞭每個擬閤參數的實驗標準偏差。W_sigma數值上等於M_Covar對角元數值的算術平方根。
  除瞭將擬閤結果保存成wave之外,Igor還在曆史命令行窗口輸齣擬閤的結果,如圖3��8所示。
  圖3��8曆史命令行窗口中的擬閤結果信息
  第1行CurveFit/M=2/W=0 lor,LorF/D錶示執行快速擬閤時,Igor實際執行的命令。標記/M=2錶示生成協方差矩陣。/W=0錶示不顯示擬閤過程窗口,不設置此參數,在擬閤過程中會齣現一個顯示擬閤過程窗口,通過該窗口可以觀察擬閤過程或者終止擬閤。lor參數錶示使用lor函數進行擬閤。lor是係統內定義的擬閤函數模型。LorF參數給齣被擬閤的實驗數據。標記/D錶示自動生成擬閤麯綫,就是上麵的fit_LorF。
  第2行給齣擬閤收斂的情況,Fit converged properly錶示正常收斂。
  第3行是擬閤采用的公式。在這裏可以看到擬閤參數W_coef每一項在擬閤函數中的位置和含義。
  第4行錶示擬閤參數的結果,就是W_coef的大小。
  第5行和第6行是擬閤過程中的一些變量值。
  第7行錶示擬閤參數的“誤差”。
  第8行到第12行按照擬閤數值±標準不確定度的方式給齣結果。
  命令行窗口輸齣的信息不是一成不變的,擬閤參數不同,輸齣的信息也會有相應的調整。
  對於內置擬閤函數,除瞭W_coef之外,還可以通過使用K0、K1這樣的變量來獲取擬閤參數值。前麵描述洛倫茲函數錶達式時使用瞭K0、K1等這樣的變量,就錶示可以用K0和K1等去獲取它的擬閤參數值。KN(N=0,1,…)是Igor內置的係統變量,不需要定義就可以直接訪問。在快速擬閤時,Igor使用KN作為擬閤參數的初始值(Igor自動猜測初始值,不需要手動設置),並將擬閤結果也保存到KN中。可以在命令行窗口中輸入print K0來進行驗證,如圖3��9所示。閤理地使用這一特性,可以在編寫程序時節約代碼量,提高效率。
  圖3��9利用係統內置變量查看擬閤結果
  3.1.4自定義擬閤
  快速擬閤方便迅速,但是由於不能調整輸入參數和定製輸齣信息,能夠擬閤的函數類型也很有限,所以存在較大的局限性。
  Igor提供瞭一個自定義數據擬閤對話框,使用該對話框不僅能實現快速擬閤,還能完成快速擬閤不能完成的操作,如指定擬閤範圍、添加新的擬閤函數、手動指定擬閤初始參數、指定擬閤參數的限製範圍、設定擬閤權重、指定擬閤輸齣結果等。下麵介紹如何使用自定義數據擬閤對話框來擬閤數據。
  執行菜單命令【Analysis】|【Curve Fitting】打開數據擬閤窗口,如圖3��10所示。
  圖3��10自定義擬閤數據對話框
  仍然使用上一節創建的例子(沒有創建該例子的讀者請參看第3.1.3節),在圖3��10的【Function and Data】選項卡中的【Function】下拉列錶中選擇lor函數,【Y Data】下拉列錶中選擇LorF,其他選項不變,單擊【Do It】按鈕,如圖3��11所示。
  圖3��11自定義擬閤數據對話框進行簡單擬閤
  擬閤過程中,會看到圖3��12所示的數據擬閤過程窗口。
  圖3��12擬閤過程窗口
  該窗口顯示瞭擬閤的過程中每一次循環時KN的大小以及chi_square值的大小(chi_square值類似於最小二乘平方差和,參看本節開頭內容),單擊【OK】按鈕查看擬閤結果,結果如圖3��13所示。
  圖3��13自定義數據擬閤結果
  和快速擬閤結果比較,擬閤麯綫窗口中多瞭一個顯示擬閤結果的文本框圖注。曆史命令行窗口中的顯示內容也發生瞭一些變化,如圖3��14所示。
  圖3��14擬閤結果在曆史窗口的顯示
  CurveFit調用的命令裏沒有瞭M=2和W=0標記,而是多瞭NTHR=0和TBOX=0標記,這裏錶示將不輸齣協方差矩陣,但顯示數據擬閤過程窗口,同時在被擬閤麯綫窗口上添加一個文本框圖注以輸齣擬閤信息。讀者可以試著將前麵例子生成的M_Covar刪掉(如果存在),再執行上述擬閤過程,會發現M_Covar確實沒有生成。
  3.1.5數據擬閤對話框詳解
  自定義數據擬閤對話框是使用Igor進行數據擬閤的主要窗口,也是Igor重要且常用的圖形用戶界麵之一。即使是熟練掌握瞭編程技術,在很多場閤利用此對話框完成數據擬閤仍然是最有效率的方式。因此,讀者應該熟練地掌握自定義數據擬閤對話框的使用。
  數據擬閤窗口一共有4個選項卡,每個選項卡可以詳細地設定擬閤過程中一個環節。根據被擬閤數據的不同(如是一維數據還是二維數據),每個選項卡顯示的內容會有所區彆。
  1. 【Function and Data】選項卡
  通過這個選項卡可以設定用來擬閤的數學公式,指定要擬閤的數據及其x坐標,如圖3��15所示。
  圖3��15【Function and Data】選項卡
  【Function】下拉列錶框列齣瞭擬閤函數,包括內置函數和自定義函數。注意,一般隻有使用瞭Fitfunc關鍵字的函數纔會齣現在這裏(參看5.2.6節)。【Function】下拉列錶框打開後可能如圖3��16所示。
  ……

前言/序言

  前言
  《Igor Pro實用教程——圖錶繪製、數據分析與程序設計》終於要和讀者見麵瞭。此時,我內心非常激動。
  這裏首先介紹本書創作的緣由。
  在筆者就讀大學期間,還未聽說過Igor Pro。當時,我處理數據用的是Turbo C 3.0。由於沒有意識到數據處理軟件這種工具的存在(比如最基本的Excel),我覺得數據處理就是編程。以至於後來,我甚至構建瞭一個雄偉的計劃: 利用Turbo C設計一個數據處理軟件,基本功能是繪圖和最小二乘法,甚至連軟件架構都寫好瞭。遺憾的是,因為沒有計算機,加之學校的機房上機費太貴,這個計劃最終被擱淺瞭(幸虧如此)。隨著升入高年級,實驗課結束,這個計劃終於被徹底忘記瞭。不過,這種編程處理數據的思路最終還是讓我受益匪淺。本書介紹的Igor Pro就是最適閤通過編程處理數據的工具。
  上研究生時,實驗數據處理這個問題再次齣現。不過我發現不能再繼續用Turbo C 3.0瞭,因為實驗室所有的人都在用Igor Pro,所以我開始瞭Igor Pro的學習和使用。學習Igor Pro的經曆是值得迴顧的。
  記得第一次看到這個軟件,感覺很茫然。
  按照以往的經驗,不懂的內容可以通過Google搜索。可是在Igor Pro的學習過程中,我從來沒有用過一次Google或者百度,甚至連這種意識都沒有(我想本書的讀者和我也是一樣的)。原因很簡單,網上沒有任何關於Igor Pro的學習資料。我能做的,就是嚮同實驗室的人請教,自己在挫摺中慢慢摸索; 閱讀現有的代碼,掌握Igor Pro的基本使用方法。這裏我不得不感謝我的導師周興江研究員,他不僅僅是一位在超導研究領域取得卓越成就的科學傢,也是一位齣色的Igor Pro編程大師。我今天關於Igor Pro的認識,應該說就是從研究他的代碼開始的。
  學習的經曆是艱辛的。任何一個小問題的解決都不容易。現在迴顧起來,我發現走瞭很多彎路,不僅僅是學習的彎路,還有使用的彎路。當時使用的很多方法其實非常笨拙,效率非常低。比如一個最基本的問題,當時程序運行的速度比較慢,繪製一幅費米麵的圖需要半分鍾左右,大傢都認為是Igor Pro的問題。後來我發現不是,是我們沒有理解Igor Pro下的程序設計機製,沒有搞清楚Proc和Function的關係。在搞清楚這個問題後,我對所有的程序進行瞭一次徹底的升級。然後突然發現,以前幾分鍾的計算現在一眨眼就可以完成。很難想象我們一直在這種低效率的工作狀態下使用Igor Pro很多年,僅僅是因為不瞭解Proc和Function所緻!
  諸如此類的問題非常多,如圖錶繪製、數據擬閤、算法設計等,不勝枚舉。很顯然,要做好這些工作,需要很好地瞭解Igor Pro。
  遺憾的是Igor Pro的學習資料太少瞭。Igor Pro其實是一款非常優秀的數據處理軟件,特彆是處於大數據時代的今天,它能將編程與數據可視化完美地融為一體,既具有Python、R等腳本編程語言的可擴展性,又具有Origin等數據可視化工具的方便易用性,十分難得。但由於軟件的語言(英語)、需要編程的特性以及用戶使用群體(主要集中在國外)等原因,Igor Pro一直未被廣大用戶所瞭解。這樣造成的後果就是沒有人去討論和貢獻自己對Igor Pro的心得和使用技巧。Igor Pro本身的軟件文檔寫得非常好,但是作為一個手冊,其實是不適閤初學者的,隻有在一定的基礎上看軟件文檔,纔有效果。初學者直接看文檔,很容易感到迷茫。
  由於學習資料的匱乏,很多人,特彆是剛進入實驗室的人員對Igor Pro望而生畏,轉而去選擇其他的工具。其實,Igor Pro更適閤他們,更適閤他們處理數據。於是,Igor Pro的潛在使用者就這麼流失瞭。反過來,這又影響瞭後來的人去選擇Igor Pro。
  雖然有所謂酒香不怕巷子深的古訓,但是,如果酒是香的,為什麼不能將它放到淺一點的巷子裏呢?好東西應該是被大眾所共享的,而不應隻屬於個彆“資深酒客”。
  在這麼多年使用Igor Pro的過程中,在幫助他人解決Igor Pro的一些問題時,我對Igor Pro的認識也越來越深刻。我發現,Igor Pro能做的其實遠比我們想象的多。但是,很多人,包括在實驗室裏天天使用Igor Pro的人們,卻沒有意識到,其實他們使用Igor Pro的水平並不高(這當然是完全可以理解的,由於更專注於科學研究,他們不可能在這上麵花太多精力)。
  所有的這些,促使我決定編寫一本關於Igor Pro使用的書籍,把我這麼多年來對Igor Pro的使用心得和經驗總結齣來,公布於眾。所謂授人以魚,不如授人以漁。我的目的就是希望讀者在使用Igor Pro遇到睏惑時,能知道去哪兒找到解決問題的方法,少走一些彎路,而不是隻寄希望於求助彆人或者浪費很多的時間。同時,也更希望讀者能利用本書中提到的知識提高數據處理效率,節約時間和精力。當然,我知道本書離這個目標還很遠,但至少這是一個好的開始。
  本書真正的寫作始於兩年前。這個過程和我學習Igor Pro的經曆一樣,也是艱辛的: 沒有資助,缺乏參考資料隻能利用業餘時間創作。所有的一切都是靠興趣、靠對Igor Pro的熱愛在支撐。當然這很正常,任何一個新的領域在剛開始時都是這樣的。既然還沒人做這件事情,那麼就從我開始吧。
  本書的體例結構都是經過精心設計的,目的就是突齣實用性。各章節結構具有相對的獨立性,每一小節一般都對應於Igor Pro某個方麵的使用。建議讀者仔細閱讀第1章和第5章,前者是Igor Pro工作原理的基礎,後者是程序設計的基礎。其他各章節可在需要的時候選擇性閱讀。另外,讀者在閱讀本書時,可結閤Igor Pro自帶的軟件手冊進行學習,這樣會獲得事半功倍的效果。
  在完成本書的過程中,我曾與周興江研究員、謝卓晉博士、物理所超導實驗室SC7組進行過多次討論,書中很多創作的靈感都來源於這些討論,在此錶示謝意。
  清華大學齣版社的盛東亮編輯在本書齣版的過程中給瞭我很大的幫助。盛編輯對新事物的開放和支持態度,對教育科技知識推廣的責任心,值得敬佩。這裏錶示謝意。
  最後,由於本書是此領域的第一本書,也限於我的水平,書中難免存在錯誤之處。在這裏懇請讀者在閱讀過程中發現錯誤能及時指齣,以便我及時修正。
  賈小文
  2018年1月於天津

用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有