【Matlab】基礎教程

UnderTurrets發表於2024-08-22

@

目錄
  • 基本操作命令
    • 1.設定計算顯示結果的格式
    • 2. 常用指令
    • 3. 資料型別
    • 4. 數學運算
      • 4.1 取整函式
      • 4.2 複數函式
      • 4.3 符號常量
    • 5. 函式
      • 5.1 匿名函式(lemba表示式)
      • 5.2 行內函數
      • 5.3 函式指標(函式控制代碼)


基本操作命令

1.設定計算顯示結果的格式

指令 含義 舉例
format、format short 通常保證小數點後四位有效,最多不超過 7 位;對於大於 1000 的實數,用 5 位有效數字的科學記數形式顯示。 314.159 被顯示為 314.1590;3141.59 被顯示為 3.1416e+003
format long 15位數字表示 3.14159265358979
format short e 5 位科學記數表示 3.1416e+00
format long e 15位科學記數表示 3.14159265358979e+00
format short g 從 format short 和 format short e 中自動選擇最佳記數方式 3.1416
format long g 從 format long 和 format long e 中自動選擇最佳記數方式 3.14159265358979
format rat 近似有理數表示 355/113
format hex 十六進位制表示 400921fb54442d18
format + 顯示大矩陣用。正數、負數、零 分別用+ , - , 空格表示。 +
format bank (金融)元、角、分表示 3.14
format compact 顯示變數之間沒有空行
format loose 在顯示變數之間有空行
  • format short 顯示格式是預設的顯示格式 。

2. 常用指令

指令名 含義
who 查詢工作區變數名
whos 查詢工作區某個或所有變數及其具體資訊
clear 從工作區刪除某個或所有變數和函式
pack 整理工作區記憶體碎片
save<FileName> v1 v2 把變數 v1, v2 儲存為 FileName.mat 檔案
save<FileName> v1 v2 -append 把變數v1, v新增到 FileName.mat 檔案中
save<FileName> v1 v2 -ascii -double 把變數 v1, v2 儲存為 FileName 16 位ASCII 檔案
load<FileName> 把 FileName.mat 檔案中的全部變數裝入記憶體
load<FileName> v1 v2 把 FileName.mat 檔案中的 v1,v2 變數裝入記憶體
load<FileName> v1 v2 把 FileName ASCII 檔案中的 v1, v2 變數裝入記憶體

3. 資料型別

在這裡插入圖片描述

  • MATLAB的構造型資料基本上與C++的構造型資料相銜接,但它的陣列卻有更加廣泛的含義和不同於一般語言的運算方法。符號物件是MATLAB所特有的一類為符號運算而設定的資料型別。嚴格地說,它不是某一型別的資料,它可以是陣列、矩陣、字元等多種形式及其組合,但它在MATLAB的工作區中的確又是另類的一種資料型別。

4. 數學運算

4.1 取整函式

函式 說明 舉例
round(a) 向最接近的整數取整,小數部分是0.5時向絕對值大的方向取整 round(4.3)結果為4,round(4.5)結果為5
fix(a) 向0方向取整 fix(4.3)結果為4,fix(4.5)結果為4
floor(a) 向不大於a的最接近的整數取整 floor(4.3)結果為4,floor(4.5)結果為4
ceil(a) 向不小於a的最接近的整數取整 ceil(4.3)結果為5,ceil(4.5)結果為5

4.2 複數函式

函式 說明
real(z) 返回複數z的實部
imag(z) 返回複數z的虛部
abs(z) 返回複數z的幅度
angle(z) 返回複數z的幅角
返回複數z的共軛複數 返回複數z的共軛複數
complex(a,b) 以a為實部,b為虛部建立複數

4.3 符號常量

常量(特殊函式) 含義
ans 用於儲存計算結果的預設變數名
pi 圓周率的雙精度表示
i或j 用於複數單位
Inf或 inf 無窮大,前面可加+或-
NaN 非數值量,產生於0/0、無窮/無窮
eps 容錯量,非常接近於0,計算機上的值為
date 當前日期
Realmin或realmin Matlab所能表示實數的最小絕對值
Realmax或realmax Matlab所能表示實數的最大絕對值
version Matlab版本資訊,如8.3.0.532 (R2014a)

5. 函式

5.1 匿名函式(lemba表示式)

匿名函式通常是簡單的函式,不需要編寫m檔案。匿名函式是面向命令列程式碼的函式形式,通常是由一句簡單的宣告語句組成。建立的標準形式是:

  • fhandle=@(arglist)expr
  • arglist為引數列表,指出了函式的引數列表,用“,”分隔
  • expr為關於引數列表的表示式形式,字首@是固定的,等號右邊表示將該函式控制代碼賦值到變數fhandle。

下面這個例子定義了一個匿名函式來計算x3 +y3的值

fhandle=@(x, y)(x.\^3+y.^3)

此處定義了一個匿名函式來計算x3+y3的值,其中x和y可以是矩陣。執行如下:

fhandle=@(x, y)(x.\^3+y.^3);
a=5; b=8;
fhandle(a,b)
ans =
637

5.2 行內函數

行內函數是MATLAB中的另一種可以實現函式功能的物件,它的建立形式非常簡單。其呼叫格式如下所示:

  • inline(‘string’,arg1,arg2,…)
  • ‘string’必須是不帶賦值號“=”的字串,arg1, arg2等是函式的輸入變數。

下面這個例子建立行內函數實現f(x,y)=cos(x)exy

f =inline('cos(x)*exp(x*y)','x','y')
f=
inline function;
f(x,y)=cos(x)*exp(x*y)

如果輸入變數設定為x=1,y=2,即輸入形式和結果如下所示:

Z=f(1,2)
Z=
3.9923

5.3 函式指標(函式控制代碼)

函式控制代碼實際上提供了一種函式呼叫的間接方法,建立函式控制代碼要用到運算子@。前面所講的匿名函式實際上建立了一種函式控制代碼。MATLAB中的各種函式都可以建立函式控制代碼。建立函式控制代碼的方法如下:

  • fhandle=@filename;
  • filename就是所對應的m函式檔名或者是庫函式名
  • fhandle儲存了該m檔案或者庫函式的控制代碼,透過控制代碼fhandle即可呼叫相應的m檔案或者庫函式。

下面這個例子建立函式cos的控制代碼

a=@cos;
a(pi)
ans =
-1

該例中,將內建函式cos(x)的控制代碼賦值到變數a,然後透過a可以實現對函式cos的間接呼叫。

下面這個例子在SumMax.m檔案中自定義SumMax函式

function [a,b] = SumMax(X)
m=max(size(X));
a=0;
for n=1:m
a=a+X(n);
end
b=max(X);
end

將上述程式儲存為SumMax.m。採用函式控制代碼的方法來實現

b=@SumMax;
y=[3,2,10,12,6];
 [c,d]=b(y)
c =
33
d =
12

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章