MATLAB程式設計:進階篇

Roger Jang (張智星)


您是來自 23.20.225.97 的貴賓,您已點閱本站網頁 1 次。 (從 2015/8/24 至今的點閱次數:14969)
Table of Contents

Chapter 1: 程式計時

當程式越來越複雜,使得程式執行時間過長時,此時即有對程式進行最佳化,以提高程式執行效率的必要。但在對程式進行最佳化之前,必需要能夠找出程式執行的瓶頸所在,才能對症下藥。本章目的即在介紹 MATLAB 程式計時的方法,使您能快速地找到執行時間的瓶頸所在(也就是耗時最久的指令),進而改善整體程式的執行效率。
[Slides][Examples]
1-1:整段程式碼的計時方法:馬錶計時
1-2:個別函數的計時方法:程式計時器
1-3:程式計時器的其他功能
1-4:本章指令彙整
Chapter 1: Exercises

Chapter 2: 程式碼與記憶體之最佳化

前一章介紹如何經由 MATLAB 程式計時功能來找尋程式執行的頸瓶,本章則在進一步說明如何改善您的 MATLAB 程式碼,使其能夠善用向量化運算、 JIT 加速器,以及平行處理,來提高程式碼的執行效率。同時配合有效的記憶體管理,使您的電腦發揮最大的功效。
[Slides][Examples]
2-1:向量化運算與 JIT 加速
2-2:使用多核心來加速運算
2-3:使用GPU來加速運算
2-4:矩陣的預先配置
2-5:記憶體管理
Chapter 2: Exercises

Chapter 3: 應用程式介面

MATLAB 雖然是一個完整的科學計算與目視的環境,但在很多情況下,MATLAB 仍必須與其它外部程式溝通,因此我們可用 MATLAB 所提供的應用程式介面(Application Program Interface,簡稱 API)來達到此功能。本章即對 MATLAB 的應用程式介面進行深入淺出的介紹。
[Slides][Examples]
3-1:MATLAB 應用程式介面
3-2:撰寫能讓 MATLAB 呼叫的 C 函數:前置測試
3-3:MATLAB 的資料結構及對應 API
3-4:一個最簡單的 MEX 檔案
3-5:處理二維矩陣的 MEX 檔案範例
3-6:產生基本工作空間變數的 MEX 檔案範例
3-7:對於結構陣列的處理
3-8:從獨立的 C 程式來呼叫 MATLAB 引擎
Chapter 3: Exercises

Chapter 4: 通用運算式

MATLAB 在第六版引進了通用運算式(Regular Expressions),可以對字串進行高效率的比對與代換,適用於字串的各種處理與運算,特別是對於自然語言處理(Natural Language Processing,簡稱 NLP)的開發和研究,這是一套不可或缺的工具。
[Video][Slides][Examples]
4-1:通用運算式的基本介紹
4-2:通用式的基本用法
4-3:方括弧的使用
4-4:特定字元
4-5:定位符號
4-6:字元與字串的重複
4-7:選項與小括弧的使用
4-8:字串的代換
Chapter 4: Exercises

Chapter 5: 稀疏矩陣

一個矩陣中,如果包含很多數值為零的元素,此矩陣即可稱為稀疏矩陣(Sparse Matrix)。稀疏矩陣在工程上的用途相當廣泛,舉凡電路、圖學、有限元素法及偏微分方程等,都會用到稀疏矩陣。為了節省空間及計算,MATLAB 對稀疏矩陣有不同的內部表示法,並有其它適用於稀疏矩陣的相關指令,將在本章一一介紹。
[Slides][Examples]
5-1:稀疏矩陣的建立
5-2:稀疏矩陣的儲存空間
5-3:稀疏矩陣的觀看與圖示
5-4:稀疏矩陣的運算
5-5:本章指令彙整
Chapter 5: Exercises

Chapter 6: 線性代數

線性代數是根基於矩陣的一門學問,其探討的層面很廣泛,包含矩陣的各項數學運算與性質,例如線性聯立方程組的解法、矩陣的特徵值與特徵向量、矩陣的奇異值等,這些運算常被用在各種科學與工程學門。
[Slides][Examples]
6-1:反矩陣與行列式
6-2:固有值與固有向量
6-3:奇異值與奇異向量
6-4:聯立線性方程式
6-5:本章指令彙整
Chapter 6: Exercises

Chapter 7: 多項式的處理與分析

本章介紹 MATLAB 處理多項式的相關指令,以便用於多項式的計算與分析,包括:多項式的加、減、乘、除、求值、求根、微分、積分、矩陣的特徵多項式、部份分式展開、多項式擬合等。
[Slides][Examples]
7-1:多項式的加減乘除
7-2:多項式的求值、求根、微分與積分
7-3:矩陣的特徵多項式
7-4:部份分式展開
7-5:多項式擬合
Chapter 7: Exercises

Chapter 8: 一般數學函數的處理與分析

上一章介紹了如何使用 MATLAB 來進行多項式的處理與分析,本章將向前推進一步,介紹 MATLAB 對於一般數學函數(多項式僅為一特例)的處理與分析。
[Video][Slides][Examples]
8-1:MATLAB 的函數表示法
8-2:數學函數的作圖
8-3:函數的求根
8-4:函數的極小值
8-5:數值積分
8-6:本章指令彙整
Chapter 8: Exercises

Chapter 9: 內插法

內插法(Interpolation)可利用已知的資料點,來建立平滑連續的函數,以便預測其它點所對應的函數值。其應用範圍相當廣泛,不只用在工程,也用在金融、經濟、生化等各領域。MATLAB 提供了一系列的內插法函數,可讓您做最佳的選擇,以應付不同的應用需求。
[Slides][Examples]
9-1:一維內插法
9-2:二維格子點內插法
9-3:二維散佈點內插法
9-4:三維格子點內插法
9-5:高維格子點內插法
9-6:三角內插法與計算幾何
9-7:本章指令彙整
Chapter 9: Exercises

Chapter 10: 曲線擬合與迴歸分析

曲線擬合(Curve Fitting)與迴歸分析(Regression Analysis)是資料分析的重要步驟,其目的是要經由有限的取樣點(Sample Points)來建立數學模型,並藉由此模型來進行進一步的預測與分析。本章將介紹曲線擬合及迴歸分析的基本方法,並介紹如何以 MATLAB 來進行實作。
[Video][Slides][Examples]
10-1:線性迴歸:曲線擬合
10-2:線性迴歸:曲面擬合
10-3:非線性迴歸:使用 fminsearch
10-4:非線性迴歸:使用混成法
10-5:非線性迴歸:使用變形法
10-6:「曲線擬合工具箱」的使用
10-7:模型複雜度的決定
10-8:最小平方法的推導
Chapter 10: Exercises

Chapter 11: 常微分方程式

本章介紹 MATLAB 用於求解常微分方程式(Ordinary Differential Equations,簡稱 ODE)的指令,這些指令可對一般的 ODE 或 Stiff ODE 進行數值積分,以便求取其數值解,並且可以立刻畫出各個狀態變數的二維或三維軌跡圖,非常好用。
[Slides][Examples]
11-1:ODE 指令列表
11-2:ODE 指令基本用法
11-3:ODE 指令的選項
11-4:ODE 檔案的進階用法
Chapter 11: Exercises

Chapter 12: 與Excel試算表的整合

MATLAB 本身便具有和微軟 Excel 試算表整合的功能,並不需要特殊的工具箱。與試算表整合的最大好處,是 MATLAB 可以和 Excel 的資料互通,因此我們可以輕易地使用 MATLAB 的分析和畫圖來處理 Excel 的資料,同時 Excel 也可以對 MATLAB 的資料來進行作圖。
[Slides][Examples]
12-1:Excel 檔案的讀取
12-2:Excel 檔案的寫入
12-3:與 Excel 相關的其它功能
Chapter 12: Exercises

Chapter 13: 與資料庫的整合

當今是IT(Information Technology)的時代,若要駕馭大量的資料,就必須靠資料庫(Database)才能事半功倍。MATLAB可以靠資料庫工具箱「Database Toolbox」來對資料進行有效的儲存和管理。本章目的即在介紹資料庫工具箱,以便讓讀者能夠將計算結果存入資料庫,並利用資料庫來延伸MATLAB的功能。
[Slides][Examples]
13-1:資料庫簡介
13-2:使用GUI對資料庫查詢
13-3:如何設定DSN
13-4:使用MATLAB對資料庫進行查詢
13-5:使用MATLAB對資料庫進行修改
13-6:使用 MATLAB對資料庫進行修改:另一種方法
Chapter 13: Exercises

Chapter 14: MATLAB 編譯器

MATLAB編譯器(MATLAB Compiler)的主要功能是將使用者所寫的MATLAB程式碼轉成C語言,以便整合到其他的外部應用程式。換句話說,這些外部應用程式就擁有MATLAB的各種功能(例如計算反矩陣、行列式,或是各種繪圖功能),而且可以在沒有安裝MATLAB的電腦上執行。
[Slides][Examples]
14-1:MATLAB編譯器簡介
14-2:產生獨立應用程式
14-3:產生共享程式庫
Chapter 14: Exercises

Chapter 15: 物件導向程式設計

本章介紹如何使用 MATLAB 來進行物件導向程式設計(Objected Oriented Programming),以便簡化程式碼的撰寫,並提高程式碼的可讀性。
[Slides][Examples]
15-1:物件導向程式設計
15-2:運算元的重載
15-3:物件的方法
15-4:類別的繼承
15-5:物件的聚合
Chapter 15: Exercises