@
目錄
- 基本操作命令
- 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 釋出!