原文:http://www.cnblogs.com/JCSU/articles/1121474.html
第一節 基本數值計算
1. 變量:分為數值變量和字符變量
2. 常量:計算機中不變的量。如i、j、pi、NaN(不確定)、Inf(無窮大)
3. 字符變量:將字符串作為變量。有三種方法表示:
????(1) 用單引號' '
????(2) 用函數sym(' ')
????(3) 用命令symbs
4.?舉例?
??? x=2????????????????????% 將2賦給變量x
????y=3;???????????????????% 有;表示在命令窗口不顯示y的值
????z=x^2 -y????????????% 數值計算。輸出結果為1
????f='sin(x)'???????????? % 用單引號定義一個字符變量
????g=sym('cos(y)')??? % 用函數sym(' ')定義一個字符變量
??? syms a b??????????????% 用命令syms定義字符變量。一般用于多符號變量的定義
????u=2*a?????????????????% 字符計算。輸出結果為2*a
????w=b^2-1?????????????% 字符計算。輸出結果為b^2-1
????fg=f+g????????????????% 字符計算。輸出結果為sin(x)+cos(y)
????uw=u*w??????????????% 字符計算。輸出結果為2*a*(b^2-1)
????u/w???????????????????? % 字符計算。輸出結果為2*a/(b^2-1)
第二節 矩陣構造及運算
??? ?Matlab中數據的結構形式就是一個矩陣。如x=2是一個1×1的矩陣
????1. 矩陣的建立
????????(1) 直接輸入法。
????????(2) 冒號法(1×N)。
????????(3) 函數法(特殊矩陣)。
????????(4)?矩陣的編輯(Array Editor)。
????2. 向量
????????向量是1×N的特殊矩陣,即只有一行或者一列,稱為N維向量。
????3. 向量的點積與叉積
????????點積:dot(A,B)
????????叉積:cross(A,B)
????4. 舉例:
????????x=[1 2 3; 4 5 6; 7 8 9]?????% [...],元素之間用空格,行之間用分號。
????????y=0: 0.1 :1?????????????????????% 不用[...],初值、步長、終值間用冒號。
????????w=eye(3)????????????????????????% 3階單位矩陣。
????????u=rand(3)???????????????????????%?3階隨機矩陣。元素在0-1之間。
????????u1=rand(2, 3)???????????????? %?2*3階隨機矩陣。元素在0-1之間。
????????q=randn(3)???????????????????? % 3階隨機矩陣。元素在0-1之間。元素符合正態分布。
????????q1=randn(2, 3)????????????????%?2*3階隨機矩陣。元素在0-1之間。元素符合正態分布。
????????s=magic(3)??????????????????????%?魔方陣。各行各列以及對角元素的和相等。
????????ss=zeros(3)????????????????????% 3階全零陣。
????????uu=ones(3)???????????????????? % 3階全1陣。
??? 5.?矩陣的加、減、乘、除
????????(1) 參與加、減運算的矩陣必須同維
????????(2) A/B時,A、B列數必須相同。A\B時,A、B行數必須相同。
????????(3) 矩陣左乘與右乘不同,左除與右除不同。(A*B不等于B*A,A\B不等于A/B)。
????????(4) 標量或函數與矩陣的運算等于該標量或函數與矩陣的每一個元素的運算。
????6. 對矩陣的操作
????????6.1 對矩陣的元素操作:
????????(1) 提取矩陣A的第n行第m列的元素,表示為A(n, m)
????????(2) 提取矩陣A的第n行的所有元素,表示為A(n, :)
????????(3) 提取矩陣A的第m列的所有元素,表示為A(:, m)
????????(4) 將矩陣A的第n行第m列的元素重新賦值b,表示為A(n, m)=b
????????(5) 將矩陣A的第n行的所有元素重新賦值b,表示為A(n, :)=b
????????(6) 將矩陣A的第m列的所有元素重新賦值b,表示為A(:, m)=b
????????(7) 將矩陣A的第n行第m列的元素刪除,表示為A(n, m)=[ ]
????????(8) 將矩陣A的第n行的所有元素刪除,表示為A(n, :)=[ ]
????????(9)?將矩陣A的第m列的所有元素刪除,表示為A(:, m)=[ ]
????????6.2 矩陣的部分操作:
????????Fliplr(A)?????????????% 矩陣左右翻轉
????????Flipud(A)???????????% 矩陣上下翻轉
????????Flipdim(A, m)?????% 矩陣沿特定維(m)翻轉
????????Rot90(A, k)???????% 矩陣逆時針旋轉k*90度
????????Tiag(A, k)????????? % 取矩陣對角線元素
????????Tril(A, k)????????????% 取矩陣的下三角部分
????????Triu(A, k)?????????? % 取矩陣的上三角部分
????????注:k可以是正、負整數,但絕對值一般不大于矩陣的維數。
????????6.3 矩陣分析操作:
????????(1) 方陣A的行列式值,可表達為 det(A)
????????(2) 矩陣A的秩,可表達為 rank(A)
????????(3) 行列式值不為堆的方陣A,求逆矩陣可表達為 inv(A)
????????(4) 矩陣A的轉置陣,可表達為 A'
????????(5) 矩陣A的特征向量與特征值:[V, D]=eig(A)。其中V和D分別為A的特征向量和特征值
????????6.4 矩陣的數組運算:
????????矩陣乘:A*B。A的列數與B的行數要相等。
????????矩陣的數組乘:A.*B。表示為A、B矩陣的對應元素一一相乘,即Aij * Bij。A與B的維度要相同。
????????矩陣的數組除:A./B或者A.\B
????????舉例:x=-10 : 2 :10
????????????????y=sin(x)????????? % correct
????????????????y=sin(x^2)??????% incorrect - Matrix x must be square
????????????????y=sin(x.^2)???? % correct
????????6.5 矩陣元素的關系運算與邏輯運算(與、或、非)
????????<????????小于
????????>????????大于
????????<=????? 小于或等于
????????>=????? 大于或等于
????????==??????等于
????????~=??????不等于
????????6.6 矩陣的多維數組形式
????????(1) 函數cat的使用
????????(2) B=cat(dim, a1, a2,...)
????????(3) 意義:將多個同維數組a1, a2,...構成一個高維數組B。dim是高維數組B的維數。
??????????????????????它必須等于或大于a1, a2,...的階次
??????? 舉例:a=[1 2 3 ; 2 3 4 ; 3 5 6]
????????????????b=a+10????????????????????????????% 新構成一個矩陣
????????????????a(:, :, 2)=b????????????????????????% 將新矩陣賦給a的第二層
????????????????a(:, :, 1)????????????????????????????% 顯示a的第一層
????????????????c=cat(3, a, b)???????????????????? % 用函數來構成高維數組
????????6.7 多項式及其運算式
????????多項式的創建:
????????(1) 由1×N的N維向量
?????????????P=[a0 ?a1 ?a2 … an] 表示?Pn=a0xn + a1xn-1 + a2xn-2+ .. +an多項式。
??????????
??????????(2) 由函數poly(A)定義
?????????????如果A為二維或以上的矩陣,poly(A)表示由A的特征根確定的多項式。如果A為一維矩陣
?????????????poly(A)表示由A的元素為多項式的根確定的多項式。
????????舉例:
????????%方法一
????????p=[1 -2 3]????%直接給出多項式p
????????poly2sym(p)??%給出p多項式的表達式
????????%方法二
????????a=[1 2; -2 4]????????
????????ps=poly(a)????????????% 計算a的特征根確定的多項式
????????poly2sym(ps)????????% 給出ps多項式的表達式
????????%方法三
????????x=[-1 2]
????????px=poly(x)????????% 以x的元素為多項式的根確定的多項式
????????poly2sym(px)???? % 給出ps多項式的表達式