Matlab 2018a 官方教程[二]

weixin_33785972發表於2018-03-17

前言

MatLab 2018a 官方教程這是第一篇教程。接下來是第二篇,介紹一些大家不太注意的東西。


一.Matlab系統環境

  1. >> :命令提示符
  2. ...   : 續行符
  3. 修改資料夾;①資料夾工具欄修改②cd命令
  4. 工作區:變數的顯示與操作
  5. 如果給內部函式賦值,恢復需要在工作區刪掉這個變數就行
  6. 搜尋路徑:變數->內部函式->程式檔案
  7. 設定搜尋路徑:①path命令②主頁,環境:設定路徑

二.Matlab數值資料

數值資料分類

  • 整型
    • 無符號:8位,16,32,64;int8,uint8:強制轉換類函式
    • 帶符號:8位,16,32,64
  • 浮點型
    • 單精度:4位元組;single,轉化函式
    • 雙精度:8位元組;double,轉化函式;數字資料預設為雙精度。
  • 複數型
    • 實部和虛部,預設雙精度。虛數單位j或者i;real(),imag(),求實部和虛部。

數值資料的輸出格式:format 格式符

Trial>> format long
Trial>> 3/2

ans =

   1.500000000000000

Trial>> format
Trial>> 3/2

ans =

    1.5000

注意:format隻影響資料的輸出格式,不影響資料的計算和儲存;

常用數學函式:
(1) 函式的自變數規定為矩陣變數,當然也可以是標量,標量本身是矩陣的一種特例;
運算時是將函式逐項作用於矩陣的每一個元素上,最後運算的結果就是一個與自變數同型的矩陣。
(2)常用函式的應用
①以角度為單位的就在函式名後面加“d”,用來區別;

Trial>> sin(pi/2)

ans =

     1

Trial>> sind(90)

ans =

     1

②abs:絕對值,複數的模,字串ascII

Trial>> abs(-4)

ans =

     4

Trial>> abs(3+4i)

ans =

     5

Trial>> abs('a')

ans =

    97

③取整的函式:

  • round 四捨五入
  • ceil 向上取整
  • floor 向下取整
  • fix 捨去小數
Trial>> round(4.7)

ans =

     5

Trial>> ceil(-3.8)

ans =

    -3

Trial>> floor(3.6)

ans =

     3

Trial>> fix(-3.2)

ans =

    -3

④舉例:求345每一位數字

Trial>> m = 345;
Trial>> m1 = rem(m,10); % 求餘數
Trial>> m2 = rem(fix(m/10),10);
Trial>> m3 = fix(m/100);
Trial>> [m1 m2 m3]

ans =

     5     4     3

100以內的素數

Trial>> x=1:100;
Trial>> k=isprime(x);  % 判斷素數
Trial>> k1=find(k); % 找到序號
Trial>> p=x(k1)

p =

  1 至 9 列

     2     3     5     7    11    13    17    19    23

  10 至 18 列

    29    31    37    41    43    47    53    59    61

  19 至 25 列

    67    71    73    79    83    89    97

三.變數及其操作

變數:記憶體單元的抽象
變數名:字母開頭。
變數的管理:

Trial>> who

您的變數為:

ans  k    k1   m    m1   m2   m3   p    x    

Trial>> whos
  Name      Size             Bytes  Class      Attributes

  ans       1x3                 24  double               
  k         1x100              100  logical              
  k1        1x25               200  double               
  m         1x1                  8  double               
  m1        1x1                  8  double               
  m2        1x1                  8  double               
  m3        1x1                  8  double               
  p         1x25               200  double               
  x         1x100              800  double         

四.Matlab矩陣

建立:①[]②利用建立好的建立更大的
③複數矩陣

Trial>> B=[1 2;3 4];
Trial>> C=[5 6;7 8];
Trial>> A = B + i*C

A =

   1.0000 + 5.0000i   2.0000 + 6.0000i
   3.0000 + 7.0000i   4.0000 + 8.0000i

④冒號表示式
⑤linspace(a,b,n) n省略自動100個
結構矩陣(有名字)
單元矩陣(無名字),大括號括起來

五,讀取元素

按照列儲存,訪問的數字就是記憶體的位置

Trial>>  A=[1 2 3;4 5 6]

A =

     1     2     3
     4     5     6

Trial>> A(3)

ans =

     2

利用空矩陣刪除矩陣的元素:賦值=[]
改變矩陣形狀,reshape(A,m,n):只改變原矩陣的函式和列數,並不改變元素個數和儲存順序;
A(:) : 將A的每一列元素堆疊起來,成為一個列向量;

六.基本運算

/ 右除 \ 左除 ^ 乘方

  • 加減運算
    • 同型矩陣,對應元素加減
    • 不同型,給出錯誤資訊
    • 一個標量也可以和矩陣進行加減運算,把標量和矩陣的每一個元素進行加減
  • 乘法
    • A的列數和B的行數相等;
  • 除法
    • A:非奇異方陣,B/A,等效Binv(A);A\B,等效inv(A)B;簡單方法:把符號的斜度邪到平的;
  • 乘方運算
    • A^x: A方陣,x標量
6.2 點運算 .* ./ .\ .^
  • 對應元素進行相關計算,要求兩矩陣同型
6.3 關係運算

~= 不等於

  • 標量之間,比較大小
  • 同型矩陣,相同位置元素按照標量關係運算規則,結果是一個與原矩陣同型的矩陣,它的元素由0和1組成。
  • 標量和矩陣比較
6.4 邏輯運算 & | ~
  • 同型矩陣,對應比較
  • 標量和矩陣

七.字元型資料

把一個字串作為一個行向量

’i''m a teacher'   # 2個‘
Trial>> ch = ['dd';'dddd']
# 要串聯的陣列的維度不一致。
Trial>> ch='AC34cdvSDC4ferf';
Trial>> subch = ch(1:5);          # 提取
Trial>> revch=ch(end:-1:1);       # 反轉
Trial>> k=find(ch>='a'&ch<='z');  # 找到小寫字母
Trial>> ch(k) = ch(k) - ('a'-'A');# 變大寫
Trial>> length(k);                # 統計小寫字母

操作
(1) 字串的執行 eval(s)
(2) 字串與數值的轉換

  • abs和double可以獲取字串矩陣的acsII
  • char 可以把ASCII矩陣轉換為字串矩陣

(3)比較 返回值1和0

  • 邏輯運算,維度相同,ascii比較
  • strcmp(s1,s2)
  • strncmp(s1,s2,n) 前n個
  • strcmpi(s1,s2) 忽略字母大小寫
  • strncmpi(s1,s2,n)

(4) 查詢和替換

  • findstr(s1,s2) 返回短字串在長字串的開始位置
  • strrep(s1,s2,s3) 將是s1中的所有子字串s2替換s3

相關文章