matlab基礎知識

基本介紹

  MATLAB(Matrix Laboratory)是MathWorks公司開發的科學與工程計算的商業化的數學運算工具,能有效的進行復雜 的數學運算和複雜的科學計算。 主要適用於數值計算,特別是在矩陣運算和數據圖形化方面功能強大,但不適合編寫文字處理程序。 在工程領域,MATLAB程序正逐漸取代傳統的計算機語言,成爲工程師和科學家的標準運算工具。

MATLAB功能

1. 數值計算和符號計算功能

{2x+3yz=73x5y+3z=86x+3y8z=9
a=[2,3,-1;3,-5,3;6,3,-8];
b=[7;8;9];
x=inv(a)*b
syms x1 x2 x3
[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x38,6*x1+3*x2-8*x3-9) 

2. 繪圖功能

x=-20:0.1:20; 
plot(x,300*sin(x)./x,':',x,x.^2);

這裏寫圖片描述
3. 程序設計語言功能
 MATLAB是解釋性語言,程序執行速度較慢,而且不能 脫離MATLAB環境而獨立運行。MathWorks公司提供了將 MATLAB源程序編譯爲獨立於MATLAB集成環境運行的 EXE文件以及將MATLAB程序轉化爲C語言程序的編譯器。
4. 擴展功能【工具包】
  MATLAB包含兩部分內容:基本部分和各種可選的工 具箱。基本部分構成了MATLAB的核心內容,也是使用和構造工 具箱的基礎 ; 工具箱擴展了MATLAB的功能,包括:

  • 功能性工具箱:主要用來擴充其符號計算功能、可視建模仿 真功能、文字處理功能等。
  • 學科性工具箱:專業性比較強,如控制系統工具箱、信號處理工具箱、神經網絡工具箱、最優化工具箱、金融工具箱、 統計學工具箱等。

matlab基本知識儲備

   一般來說,一個命令行輸入一條命令,命令行以回車結束。但一個命 令行也可以輸入若干條命令,各命令之間以逗號分隔,若前一命令後帶 有分號,則逗號可以省略。

   如果一個命令行很長,一個物理行之內寫不下,可以在第1個物理行之 後加上3個小黑點並按下回車鍵,然後接着下一個物理行繼續寫命令的其 他部分。3個小黑點稱爲續行符,即把下面的物理行看作該行的邏輯繼續。

   工作空間(Workspace) 是MATLAB用於存儲各種 變量和結果的內存空間。

   當前目錄窗口 當前目錄(Current Directory)是指MATLAB 運行時的工作目錄,只有在當前目錄或搜索路徑下的文件、函數纔可以被運 行或調用。如果沒有特殊指明,數據文件也將存放 在當前目錄下。

   命令歷史窗口 自動保留自安裝起所有用過的命令的歷史記錄, 並且還標明瞭使用時間,從而方便用戶查詢。而且, 通過雙擊命令可進行歷史命令的再運行

   搜索路徑 MATLAB的文件是通過不同的路徑進行組織和管理的。當用戶在命 令窗口輸入一條命令後,MATLAB將按照下列順序搜索所輸入的命令。
● 檢查該命令是不是一個變量。
● 檢查該命令是不是一個內部函數。
● 檢查該命令是否爲當前目錄下的M文件
● 檢查該命令是否爲MATLAB搜索路徑中其他目錄下的M文件。

設置搜索路徑 :
(1)用path命令設置搜索路徑 例如,將用戶目錄c:\mydir加到搜索路徑下: path(path,' c:\mydir ')
(2)用對話框設置搜索路徑 在MATLAB的File菜單中選擇Set Path命令或在命令窗口執行 pathtool命令

   幫助命令
help命令 help命令是查詢函數語法的最基本方法,查詢信息直接 顯示在命令窗口。在命令窗口中直接輸入help命令將會顯示 當前幫助系統中所包含的所有項目,即搜索路徑中所有的目 錄名稱。同樣,可以通過help加函數名來顯示該函數的幫助說明。 例如,爲了顯示magic函數的使用方法與功能 help magic
lookfor命令 lookfor命令可以查詢根據用戶提供的關鍵字搜索相關的 函數。例如,輸入命令lookfor fourier

MATLAB的變量和數據操作

1.預定義變量
預定義變量 解釋
eps 機器零閾值
ans 計算結果的默認賦值變量
pi 圓周率
i,j 虛數單位
inf, Inf 無窮大, 1/0的結果
NaN,nan 非數值 0/0 ; inf/inf
nargin 函數輸入參數的個數
nargout 函數輸出參數的個數
realmax 最大正實數
realmin 最小正實數
lasterr 存放最新錯誤信息
lastwarn 存放最新警告信息
2.變量賦值與命名

MATLAB賦值語句有兩種格式:

var=expression;
expression;  // 該方式將會將值賦於 預定義變量 ans

  在MATLAB 中,變量名是以字母開頭,後接字母、數字或下 畫線的字符序列,最多63個字符。例如x、x_1、xy12 。在MATLAB中,變量名區分字母的大小寫。例如addr、Addr 和ADDR表示3個不同的變量。在語句的最後加分號,僅執行賦值操作,不再顯示運算的結果, 註釋以%開頭。

3. 變量管理

  whowhos顯示在MATLAB工作空間中已經駐留的變量名,清單。whos在給出駐留變量名的同時,還給出它們的維數、所佔字 節數以及變量的類型。clear用來刪除MATLAB工作空間中的變量,MATLAB工作空間窗口專門用於內存變量的管理。

4. 內存變量文件

  利用MAT文件可以把當前MATLAB工作空間中的一些有用 變量長久地保留下來。MAT文件是MATLAB保存數據的一種標準格式二進制文件, 擴展名是.mat。 MAT文件的生成和裝入 save filename [var_list] [-append][-ascii] 以及 load filename [var_list] [-ascii]

5. 變量輸出格式

  用format命令設置數據輸出格式 ,注意:format命令隻影響數據輸出格式,而不影響數據的計算和存儲。 例如輸入爲:x=[4/3 1.2345e-6],在各種不同的格式符下的輸出爲:

  • 短格式(short):1.3333 0.0000
  • 長格式(long):1.33333333333333 0.00000123450000
  • 十六進制格式(hex):3ff5555555555555 3eb4b6231abfd271
  • +格式(+):++

MATLAB矩陣基本操作

矩陣生成方式

  • 直接輸入
A=[1,2,3;4,5,6;7,8,9];
A =                               1      2      3                               4      5      6                               7      8      9 
  • 利用M文件生成

對於比較大且比較複雜的矩陣,可以爲它專門建立一個M 文件,格式爲 .M文件。實例:
(1)啓動有關文本編輯程序或MATLAB的M-file編輯器(見 第2章),並輸入待建矩陣: mydata=[1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9; 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9; 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9];
(2)把輸入的內容存盤(設文件名爲matfund.m)。
(3)在MATLAB命令窗口中輸入matfund,即運行該M文 件,就會自動建立一個名爲mydata的矩陣,可供以後使用

  • 利用數據文件生成
     用戶能夠通過load命令,將外部數據文件中的內容調入到 工作空間中創建矩陣,外部文件的擴展名爲.dat例如,利用文本編輯器創建一個數據文件test.dat,包含下 列數據: 2 4 6 8 6 ;3 5 6 7 3 ;2 5 1 2 5
    在命令窗口輸入:load test.dat 即可以創建一個 test變量。

  • 擴展矩陣
    大矩陣可由已建好的小矩陣拼接而成。例如:

 A=[1,2,3;4,5,6;7,8,9]; 
 B=[11:13;14:16;17:19]; 
 C=[A,B;B,A] 

矩陣操作

  • 下標、序號

  •  下標很好理解,和其他編程語言的數組一樣,例如對於一個4*6矩陣 A ,那麼第二行第三列的元素值就是 A(2, 3)

  •  序號是指matlab矩陣的內存順序號,上面的例子對應元素則應該是 A(10)
    這裏引入幾個相關常用函數
size(A)//返回矩陣的行數和列數
length(A)//返回行數和列數中較大者
// 下標和序號的轉化
sub2ind(shape,raw_num,col_num)
ind2sub(shape,index)
  • 矩陣拆分
      矩陣拆分可採用冒號表達式,和python的語法非常相似(這裏暫不介紹不同之處)舉兩個例子看看吧:
// 刪除 2 4 列
>>A=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18];
>>A(:,[2 4])=[ ] 
// 將A變爲列向量,排列順序按矩陣物理結構順序排列
>>B=A(:)

算術運算

  • +(加)
  • −(減)
  • /(右除)
  • \(左除)
  • ^(乘方)//這個運算要求矩陣是方陣
    這裏,當然是重點介紹一下左除右除:
3/4  //右除是咱們其他語言通用除法符號
4\3
//結果,這就是規律
ans =
    0.7500
ans =
    0.7500
// 對於矩陣 Ax=B, 則
x = inv(A)*B
or x = A\B

 特別注意一點,對於標量 a/b==b\a, 而一般對於矩陣 A/B ~= B\A

關係運算

  • <(小於)
  • <=(小於或等於)
  • >(大於)
  • >=(大於或等於)
  • = =(等於)
  • ~=(不等於)
      當參與比較的量是兩個維數相同的矩陣時,比 較是對兩矩陣相同位置的元素按標量關係運算規則 逐個進行,並給出元素的比較結果。最終的關係運 算的結果是一個維數與原矩陣相同的矩陣,它的元 素由0或1組成。
      當參與比較的一個是標量,而另一個是矩陣時, 則把標量與矩陣的每一個元素按標量關係運算規則 逐個比較,並給出元素比較結果。最終的運算結果 是一個維數與矩陣相同的矩陣,它的元素由0或1組 成。

邏輯運算

邏輯運算符:
- &(與)
- |(或)
- ~ (非)

邏輯運算函數:

  • and(a,b)
  • or(a,b)
  • not(a)
  • xor(a,b)
     設參與邏輯運算的是兩個標量a和b,那麼,邏輯運算符和邏輯運算函數的用法和其他編程語言一樣,不做說明。
     若參與邏輯運算的是兩個同維矩陣,那麼運算將對矩 陣相同位置上的元素按標量規則逐個進行。最終運算結果是 一個與原矩陣同維的矩陣,其元素由1或0組成。
     若參與邏輯運算的一個是標量,一個是矩陣, 那麼運算將在標量與矩陣中的每個元素之間按標量 規則逐個進行。最終運算結果是一個與矩陣同維的 矩陣,其元素由1或0組成
預定義變量 解釋
all 所有元素非0則返回1
any 任意一個元素非0返回1
exist 檢查變量是否在工作空間,存在則返回1
find 找出非零元素的位置(按物理結構尋找)

常用數學函數

預定義變量 解釋
sin/cos/tan 三角函數
asin/acos/atan 反三角函數
sqrt 平方根函數
log 自然對數函數
log10 常用對數函數
log2 常用對數函數
exp 自然指數函數
abs 絕對值函數
rem 求餘數或模運算
mod 模除求餘數
fix/floor/ceil/round 截斷函數
sign 符號函數
gcd 最大公因子
lcm 最小公倍數

字符串

 MATLAB將一個字符串當作一個行向量,每個元素對 應一個字符,其標識方法和數值向量相同。 多行字符串要求各行字符數要相等 。字符串是以ASCII形式存儲的,abs和double函數都可以用來獲取字符串矩陣所對應的ASCII數值矩陣;相 反,char函數可以把ASCII矩陣轉換爲字符串矩陣。
 若字符串中的字符含有單撇號,則該單撇號字符應用 兩個單撇號來表示,如disp('It''s a book.)'
 可以用字符串向量的形式連接多個字符串,即用中括號括起來,如

>>x=8;
>>y=10;
>>disp([num2str(x),' + ',num2str(y),' = ',num2str(x+y)]) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章