MATLAB學習筆記一:MATLAB基礎知識,數組矩陣基礎知識

1. Schedule


Week Topic/Event Notes
1 簡介
2 MATLAB作爲計算器與數組矩陣操作
3 結構化程序設計與用戶自定義函數
4 變量與數據存取
5 初階繪圖
6 進階繪圖

2. MATLAB基礎知識


2.1 MATLAB編程模式

  • 命令行(in command window)
  • Scripts腳本(.m文件)

2.2 MATLAB作爲計算器

  • 運算符:+ - * /^
  • 計算結果,並顯示爲ans
  • 優先規則
    • 在優先組中從左到右
    • Precedence groups are (highest first):
    1. 方括號
    2. 冪函數^
    3. 乘除* /
    4. 加減+ -

2.2.1 計算練習

  • cos((1+2+3+4)35)cos(\sqrt{\frac{(1+2+3+4)^3}{5}})
  • sin(π)+ln(tan(1))sin(\sqrt{\pi})+\ln(tan(1))
  • 23.5×1.72^{3.5\times1.7}
  • esin(10)e^{sin(10)}

2.3 初等數學函數

2.4 嵌入函數

  • 函數可以嵌入到其他函數中:sin(cos(pi))=cos(pi),sin(ans)sin(cos(pi))=cos(pi),sin(ans)
  • 許多代碼行可以壓縮成一個命令

2.5 變量

  • 變量不需要在賦值之前聲明
  • 單個“equal”符號(=)是賦值運算符
>>> LHS = RHS
>>> A = 10
  1. 變量大小寫有區別 EX: A=10 a=10
  2. 變數不可以以數字開頭 EX: 2A=10

2.6 特殊變量和常量

  • ans
  • i, j: complex number 複數
  • Inf:\infty           >> x = 1/0
  • eps: 2.2204e-016      >> x = log(0)
  • NaN: not a number      >> x = inf/inf
  • pi: π\pi
>> iskeyword       # 返回matlab中所有的關鍵字,共20個
>> iskeyword('while')
ans =
1
>> iskeyword('except')
ans =
0

2.7 MATLAB 調用優先級

從高到低依次是:

  • 變量
  • 內部函數
  • 子函數
  • 私有函數
    • MEX 文件
    • P 文件
    • M 文件
>> cos='This string.'; % 本身cos是一個函數,但是在這裏cos爲變量,並將字符串This string.賦值給cos,cos(8)問的是字符串中第8個字符r
>> cos(8)
ans = 
r
% 故儘量不要用 關鍵詞 或者 內部函數 當做 變量命

2.8 數值顯示“格式”

  • short  3.1416
  • long   3.141592653589793
  • shortE  3.1416e+00
  • longE  3.141592653589793e+00
  • bank
  • hex
  • rat   355/113
>> format long

2.9 命令行終端

  • matlab中分號“;”表示不顯示運算結果
  • 方向鍵上“\uparrow”可以調出之前的指令
  • clc: clear command window display
  • clear: remove all variables in the workspace
  • who: variables in the workspace
  • whos: variable information of the workspace

3. 數組矩陣基礎知識


3.1 數組(Array)(向量和矩陣Vector and Matrix)

  • Row vector:
    >> a = [1 2 3 4]

  • Column vector:
    >> b = [1;2;3;4]

  • Try:
    >> a*b
    >> b*a

  • matrix:

>> A = [1 2 3;4 5 6;7 8 9;]

A=[123456789]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]

3.2 數組索引

  • 選擇矩陣內的某個元素子集

A=[123456789]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]

>> A(8)       # 矩陣A中第8個元素
ans =
6
>> A([1 3 5])    # 矩陣A中第1 3 5個元素組成新的矩陣
ans =
1    7    5
>> A([1 3; 1 3])  # 矩陣A中第1 3個元素組成新的矩陣,其中;是換行符
ans =
1    7
1    7
>> A(3,2)      # 矩陣A中第3行第2列的元素
ans =
8
>> A([1 3],[1 3])  # 前一個方括號表示第1 3行,後一個表示第1 3列,然後組成新的矩陣
ans =
1    3
7    9

3.3 替換元素

  • 更改矩陣中的某個元素
>> A
A =
     1     2     3
     4     5     6
     7     8     9

>> A(1,2)=3     % 替換元素命令
A =
     1     3     3
     4     5     6
     7     8     9
>> A(3,:)      % 此處 : 表示全部的意思,此命令代表矩陣 A 第三行的全部
ans =
     7     8     9
>> A(3,:)=[]    % 將 A 的第三行用 空 替代
A =
     1     2     3
     4     5     6

3.4 冒號操作符

  • 想要創建一個長的數組:A = [1 2 3 … 100]
  • 語法:j:k \Longrightarrow [j, j+1, j+2,…, j+m]
       j:i:k \Longrightarrow [j, j+i, j+2i, …, j+m*i]

3.5 數組級聯

>> A=[1 2; 3 4];
>> B=[9 9; 9 9'];
>> F=[A B]
F =
     1     2     9     9
     3     4     9     9
>> F=[A;B]
F =
     1     2
     3     4
     9     9
     9     9

3.6 數組運算

  • 數組運算符:+ - * / ^ . ’
  • 此處注意點乘.* 點除./ 點次方.^ ,點乘是數組運算,要求參與運算的兩個量必須是維數相同,是對應元素的相乘。

3.7 一些特殊的矩陣

  • eye(n): 矩陣>> eye(3) I3=[100010001]\Longrightarrow I_3=\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

  • zeros(n1,n2): n1*n2的零矩陣

  • ones(n1,n2): n1*n2的 1 矩陣

  • diag( ): 對角線矩陣>> diag([2 3 4])[200030004]\Longrightarrow \left[ \begin{matrix} 2 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & 4 \end{matrix} \right]

3.8 一些矩陣相關函數

A=[123056709]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 0 & 5 & 6 \\ 7 & 0 & 9 \end{matrix} \right]

>> max(A)    # 每一列中最大的數
ans =
    7    5    9

>> max(max(A)) # 數組中最大的數
ans =
    9
>> min(A)    # 每一列中最小的數
ans =
    0    0    3

>> sum(A)    # 每一列求和
ans =
    8    7   18

>> mean(A)    # 每一列的平均數
ans =
 2.6667   2.3333   6.0000

>> sort(A)   # 每一列元素按照從小到大的順序排列
ans =
    0    0    3
    1    2    6
    7    5    9

>> sortrows(A) # 以行爲單位,將第一列元素按照從小到大的順序排列

>> size(A)   # A 是幾行幾列數組
ans =
    3    3

>> length(A)  # 行的長度
ans =
    3

>> find(A==5) # 找到某元素在數組中的位置
ans =
    5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章