1、運算符:
+:加, -:減, *:乘, /: 除, \:左除 ^: 幂,‘:複數的共轭轉置, ():制定運算順序。
2、常用函數表:
sin( ) 正弦(變量為弧度)
cot( ) 餘切(變量為弧度)
sind( ) 正弦(變量為度數)
cotd( ) 餘切(變量為度數)
asin( ) 反正弦(傳回弧度)
acot( ) 反餘切(傳回弧度)
asind( ) 反正弦(傳回度數)
acotd( ) 反餘切(傳回度數)
cos( ) 餘弦(變量為弧度)
exp( ) 指數
cosd( ) 餘弦(變量為度數)
log( ) 對數
acos( ) 餘正弦(傳回弧度)
log10( ) 以10為底對數
acosd( ) 餘正弦(傳回度數)
sqrt( ) 開方
tan( ) 正切(變量為弧度)
realsqrt( ) 傳回非負根
tand( ) 正切(變量為度數)
abs( ) 取絕對值
atan( ) 反正切(傳回弧度)
angle( ) 傳回複數的相位角
atand( ) 反正切(傳回度數)
mod(x,y) 傳回x/y的餘數
sum( ) 向量元素求和
3、其餘函數可以用help elfun和help specfun指令獲得。
4、常用常數的值:
pi 3.1415926…….
realmin 最小浮點數,2^-1022
i 虛數機關
realmax 最大浮點數,(2-eps)2^1022
j 虛數機關
inf 無限值
eps 浮點相對經度=2^-52
nan 空值
二、常用對象操作:除了一般windows視窗的常用功能鍵外。
1、!dir 可以檢視目前工作目錄的檔案。 !dir& 可以在dos狀态下檢視。
2、who 可以檢視目前工作空間變量名, whos 可以檢視變量名細節。
3、功能鍵:
功能鍵 快捷鍵 說明
方向上鍵 ctrl+p 傳回前一行輸入
方向下鍵 ctrl+n 傳回下一行輸入
方向左鍵 ctrl+b 光标向後移一個字元
方向右鍵 ctrl+f 光标向前移一個字元
ctrl+方向右鍵 ctrl+r 光标向右移一個字元
ctrl+方向左鍵 ctrl+l 光标向左移一個字元
home ctrl+a 光标移到行首
end ctrl+e 光标移到行尾
esc ctrl+u 清除一行
del ctrl+d 清除光标所在的字元
backspace ctrl+h 删除光标前一個字元 ctrl+k 删除到行尾
ctrl+c 中斷正在執行的指令
4、clc可以指令視窗顯示的内容,但并不清除工作空間。
三、數組和矩陣:
1、構造數組的方法:增量發和linspace(first,last,num)first和last為起始和終止數,num為需要的數組元素個數。
2、構造矩陣的方法:可以直接用[ ]來輸入數組,也可以用以下提供的函數來生成矩陣。
ones( ) 建立一個所有元素都為1的矩陣,其中可以制定維數,1,2….個變量
zeros() 建立一個所有元素都為0的矩陣
eye() 建立對角元素為1,其他元素為0的矩陣
diag() 根據向量建立對角矩陣,即以向量的元素為對角元素
magic() 建立魔方矩陣
rand() 建立随機矩陣,服從均勻分布
randn() 建立随機矩陣,服從正态分布
randperm() 建立随機行向量
horcat c=[a,b],水準聚合矩陣,還可以用cat(1,a,b)
vercat c=[a;b],垂直聚合矩陣, 還可以用cat(2,a,b)
repmat(m,v,h) 将矩陣m在垂直方向上聚合v次,在水準方向上聚合h次
blkdiag(a,b) 以a,和b為塊建立塊對角矩陣
length 傳回矩陣最長維的的長度
ndims 傳回維數
numel 傳回矩陣元素個數
size 傳回每一維的長度,[rows,cols]=size(a)
reshape 重塑矩陣,reshape(a,2,6),将a變為2×6的矩陣,按列排列。
rot90 旋轉矩陣90度,逆時針方向
fliplr 沿垂軸翻轉矩陣
flipud 沿水準軸翻轉矩陣
transpose 沿主對角線翻轉矩陣
ctranspose 轉置矩陣,也可用a’或a.’,這僅當矩陣為複數矩陣時才有差別
inv 矩陣的逆
det 矩陣的行列式值
trace 矩陣對角元素的和
norm 矩陣或矢量的範數,norm(a,1),norm(a,inf)…….
normest 估計矩陣的最大範數矢量
chol 矩陣的cholesky分解
cholinc 不完全cholesky分解
lu lu分解
luinc 不完全lu分解
qr 正交分解
kron(a,b) a為m×n,b為p×q,則生成mp×nq的矩陣,a的每一個元素都會乘上b,并占據p×q大小的空間
rank 求出矩陣的刺
pinv 求僞逆矩陣
a^p 對a進行操作
a.^p 對a中的每一個元素進行操作
四、數值計算
1、線性方程組求解
(1)ax=b的解可以用x=a\b求。xa=b的解可以用x= a/b求。如果a是m×n的矩陣,當m=n時可以找到唯一解,m<n,不定解,解中至多有m個非零元素。
如果m>n,超定系統,至少找到一組解。如果a是奇異的,且ax=b有解,可以用x=pinv(a)×b傳回最小二乘解
(2)ax=b, a=l×u,[l,u]=lu(a), x=u\(l\b),即用lu分解求解。
(3)qr(正交)分解是将一矩陣表示為一正交矩陣和一上三角矩陣之積,a=q×r[q,r]=chol(a), x=q\(u\b)
(4)cholesky分解類似。
2、特征值
d=eig(a)傳回a的所有特征值組成的矩陣。[v,d]=eig(a),還傳回特征向量矩陣。
3、a=u×s×ut,[u,s]=schur(a).其中s的對角線元素為a的特征值。
4、多項式matlab裡面的多項式是以向量來表示的,其具體操作函數如下:
conv 多項式的乘法
deconv 多項式的除法,【a,b】=deconv(s),傳回商和餘數
poly 求多項式的系數(由已知根求多項式的系數)
polyeig 求多項式的特征值
polyfit(x,y,n) 多項式的曲線拟合,x,y為被拟合的向量,n為拟合多項式階數。
polyder 求多項式的一階導數,polyder(a,b)傳回ab的導數
[a,b]=polyder(a,b)傳回a/b的導數。
polyint 多項式的積分
polyval 求多項式的值
polyvalm 以矩陣為變量求多項式的值
residue 部分分式展開式
roots 求多項式的根(傳回所有根組成的向量)
注:用ploy(a)求出矩陣的特征多項式,然後再求其根,即為矩陣的特征值。
5、插值常用的插值函數如下:
griddata 資料網格化合曲面拟合
griddata3 三維資料網格化合超曲面拟合
interp1 一維插值(yi=interp1(x,y,xi,’method’)method=nearest/linear/spline/pchip/cubic
interp2 二維插值zi=interp1(x,y,z,xi,yi’method’),bilinear
interp3 三維插值
interpft 用快速傅立葉變換進行一維插值,help fft。
mkpp 使用分段多項式
spline 三次樣條插值
pchip 分段hermit插值
6、函數最值的求解
fminbnd(‘f’,x1,x2,optiset(,))求f在 x1和x2之間的最小值。optiset選項可以有‘display’+‘iter’/’off’/’final’,分别表示顯示計算過程/不顯示/隻顯示最後結果。fminsearch求多元函數的最小值。fzero(‘f’,x1)求一進制函數的零點。x1為起始點。同樣可以用上面的選項。
五、圖像繪制:
1、基本繪圖函數
plot 繪制二維線性圖形和兩個坐标軸
plot3 繪制三維線性圖形和兩個坐标軸
fplot 在制定區間繪制某函數的圖像。fplot(‘f’,區域,線型,顔色)
loglog 繪制對數圖形及兩個坐标軸(兩個坐标都為對數坐标)semilogx 繪制半對數坐标圖形
semilogy 繪制半對數坐标圖形
2、線型: 顔色 線型
y 黃色 . 圓點線 v 向下箭頭
g 綠色 -. 組合 > 向右箭頭
b 藍色 + 點為加号形 < 向左箭頭
m 紅紫色 o 空心圓形 p 五角星形
c 藍紫色 * 星号 h 六角星形
w 白色 . 實心小點 hold on 添加圖形
r 紅色 x 叉号形狀 grid on 添加網格
k 黑色 s 方形 - 實線
d 菱形 -- 虛線 ^ 向上箭頭
3、可以用subplot(3,3,1)表示将繪圖區域分為三行三列,目前使用第一區域。此時如要畫不同的圖形在一個視窗裡,需要hold on。
=================================================================
附錄1.1 管理用指令
函數名 功能描述 函數名 功能描述
addpath 增加一條搜尋路徑 rmpath 删除一條搜尋路徑
demo 運作matlab示範程式 type 列出.m檔案
doc 裝入超文本文檔 version 顯示matlab的版本号
help 啟動聯機幫助 what 列出目前目錄下的有關檔案
lasterr 顯示最後一條資訊 whatsnew 顯示matlab的新特性
lookfor 搜尋關鍵詞的幫助 which 造出函數與檔案所在的目錄
path 設定或查詢matlab路徑
附錄1.2管理變量與工作空間用指令
clear 删除記憶體中的變量與函數 pack 整理工作空間記憶體
disp 顯示矩陣與文本 save 将工作空間中的變量存盤
length 查詢向量的維數 size 查詢矩陣的維數
load 從檔案中裝入資料 who,whos 列出工作空間中的變量名
附錄1.3檔案與作業系統處理指令
cd 改變目前工作目錄 edit 編輯.m檔案
delete 删除檔案 matlabroot 獲得matlab的安裝根目錄
diary 将matlab運作指令存盤 tempdir 獲得系統的緩存目錄
dir 列出目前目錄的内容 tempname 獲得一個緩存(temp)檔案
! 執行作業系統指令
附錄1.4視窗控制指令
echo 顯示檔案中的matlab中的指令 more 控制指令視窗的輸出頁面
format 設定輸出格式
附錄1.5啟動與退出指令
matlabrc 啟動主程式 quit 退出matlab環境
startup matlab自啟動程式
附錄2 運算符号與特殊字元附錄
2.1運算符号與特殊字元
+ 加 ... 續行标志
- 減 , 分行符(該行結果不顯示)
* 矩陣乘 ; 分行符(該行結果顯示)
.* 向量乘 % 注釋标志
^ 矩陣乘方 ! 作業系統指令提示符
.^ 向量乘方 矩陣轉置
kron 矩陣kron積 . 向量轉置
\ 矩陣左除 = 指派運算
/ 矩陣右除 == 關系運算之相等
.\ 向量左除 ~= 關系運算之不等
./ 向量右除 < 關系運算之小于
: 向量生成或子陣提取 <= 關系運算之小于等于
() 下标運算或參數定義 > 關系運算之大于
[] 矩陣生成 >= 關系運算之大于等于
{} & 邏輯運算之與
. 結構字段擷取符 | 邏輯運算之或
. 點乘運算,常與其他運算符聯合使用(如.\) ~ 邏輯運算之非
xor 邏輯運算之異成
附錄2.2邏輯函數
all 測試向量中所用元素是否為真 is*(一類函數) 檢測向量狀态.其中*表示一個确定的函數(isinf)
any 測試向量中是否有真元素 *isa 檢測對象是否為某一個類的對象
exist 檢驗變量或檔案是否定義 logical 将數字量轉化為邏輯量
find 查找非零元素的下标
附錄3 語言結構與調試
附錄3.1程式設計語言
builtin 執行matlab内建的函數 global 定義全局變量
eval 執行matlab語句構成的字元串 nargchk 函數輸入輸出參數個數檢驗
feval 執行字元串指定的檔案 script matlab語句及檔案資訊
function matlab函數定義關鍵詞
附錄3.2控制流程
break 中斷循環執行的語句 if 條件轉移語句
case 與switch結合實作多路轉移 otherwise 多路轉移中的預設執行部分
else 與if一起使用的轉移語句 return 傳回調用函數
elseif 與if一起使用的轉移語句 switch 與case結合實作多路轉移
end 結束控制語句塊 warning 顯示警告資訊
error 顯示錯誤資訊 while 循環語句
for 循環語句
附錄3.3互動輸入
input 請求輸入 menu 菜單生成
keyboard 啟動鍵盤管理 pause 暫停執行
附錄3.4面向對象程式設計
class 生成對象 isa 判斷對象是否屬于某一類
double 轉換成雙精度型 superiorto 建立類的層次關系
inferiorto 建立類的層次關系 unit8 轉換成8位元組的無符号整數
inline 建立一個内嵌對象
附錄3.5調試
dbclear 清除調試斷點 dbstatus 列出所有斷點情況
dbcont 調試繼續執行 dbstep 單步執行
dbdown 改變局部工作空間記憶體 dbstop 設定調試斷點
dbmex 啟動對mex檔案的調試 sbtype 列出帶指令行标号的.m檔案
dbquit 退出調試模式 dbup 改變局部工作空間内容
dbstack 列出函數調用關系
附錄4 基本矩陣與矩陣處理
附錄4.1基本矩陣
eye 産生機關陣 rand 産生随機分布矩陣
linspace 構造線性分布的向量 randn 産生正态分布矩陣
logspace 構造等對數分布的向量 zeros 産生零矩陣
ones 産生元素全部為1的矩陣 : 産生向量
附錄4.2特殊向量與常量
ans 預設的計算結果變量 non 非數值常量常由0/0或inf/inf獲得
computer 運作matlab的機器類型 nargin 函數中參數輸入個數
eps 精度容許誤差(無窮小) nargout 函數中輸出變量個數
flops 浮點運算計數 pi 圓周率
i 複數單元 realmax 最大浮點數值
inf 無窮大 realmin 最小浮點數值
inputname 輸入參數名 varargin 函數中輸入的可選參數
j 複數單元 varargout 函數中輸出的可選參數
附錄4.3時間與日期
calender 月曆 eomday 計算月末
clock 時鐘 etime 所用時間函數
cputime 所用的cpu時間 now 目前日期與時間
date 日期 tic 啟動秒表計時器
datenum 日期(數字串格式) toc 讀取秒表計時器
datestr 日期(字元串格式) weekday 星期函數
datevoc 日期(年月日分立格式)
附錄4.4矩陣處理
cat 向量連接配接 reshape 改變矩陣行列個數
diag 建立對角矩陣或擷取對角向量 rot90 将矩陣旋轉90度
fliplr 按左右方向翻轉矩陣元素 tril 取矩陣的下三角部分
flipud 按上下方向翻轉矩陣元素 triu 取矩陣的上三角部分
repmat 複制并排列矩陣函數
附錄5 特殊矩陣
compan 生成伴随矩陣 invhilb 生成逆hilbert矩陣
gallery 生成一些小的測試矩陣 magic 生成magic矩陣
hadamard 生成hadamard矩陣 pascal 生成pascal矩陣
hankel 生成hankel矩陣 toeplitz 生成toeplitz矩陣
hilb 生成hilbert矩陣 wilkinson 生成wilkinson特征值測試矩陣
附錄6 數學函數
附錄6.1三角函數
sin/asin 正弦/反正弦函數 sec/asec 正割/反正割函數
sinh/asinh 雙曲正弦/反雙曲正弦函數 sech/asech 雙曲正割/反雙曲正割函數
cos/acos 餘弦/反餘弦函數 csc/acsc 餘割/反餘割函數
cosh/acosh 雙曲餘弦/反雙曲餘弦函數 csch/acsch 雙曲餘割/反雙曲餘割函數
tan/atan 正切/反正切函數 cot/acot 餘切/反餘切函數
tanh/atanh 雙曲正切/反雙曲正切函數 coth/acoth 雙曲餘切/反雙曲餘切函數
atan2 四個象限内反正切函數
附錄6.2指數函數
exp 指數函數 log10 常用對數函數
log 自然對數函數 sqrt 平方根函數
附錄6.3複數函數
abs 絕對值函數 imag 求虛部函數
angle 角相位函數 real 求實部函數
conj 共轭複數函數
附錄6.4數值處理
fix 沿零方向取整 round 舍入取整
floor 沿-∞方向取整 rem 求除法的餘數
ceil 沿+∞方向取整 sign 符号函數
附錄6.5其他特殊數學函數
airy airy函數 erfcx 比例互補誤差函數
besselh bessel函數(hankel函數) erfinv 逆誤差函數
bessili 改進的第一類bessel函數 expint 指數積分函數
besselk 改進的第二類bessel函數 gamma gamma函數
besselj 第一類bessel函數 gammainc 非完全gamma函數
bessely 第二類bessel函數 gammaln gamma對數函數
beta beta函數 gcd 最大公約數
betainc 非完全的beta函數 lcm 最小公倍數
betaln beta對數函數 log2 分割浮點數
elipj jacobi橢圓函數 legendre legendre伴随函數
ellipke 完全橢圓積分 pow2 基2标量浮點數
erf 誤差函數 rat 有理逼近
erfc 互補誤差函數 rats 有理輸出