MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法
1.3 MATLAB基本語法
?
1.3.1 數據類型
?
MATLAB中的基本數據類型有15種,主要是整型、浮點、邏輯、字符、日期和時間、結構數組、單元格數組以及函數句柄等。不論數據是怎樣的類型,在計算機程序中總是以常量與變量的形式出現。
?
1.常量
?
在程序執行過程中,其值不能被改變的量為常量。MATLAB中的常量也稱為數值量,簡單地可理解為具體的數值。例如:
?
1)整型常量:如12、78、109。
?
2)實數(浮點)型常量:如5、+5、-5.55、0.0056、6.5e-5、100e60、-0.060e-0123。
?
3)字符型常量:‘a’、‘b’、‘MATLAB’、‘My name is Libin.’等。
?
可以對常量進行運算,如算術運算、關系運算和邏輯運算等。
?
MATLAB默認的數值計算是雙精度型的,且所有數值量在內存中也都是以雙精度保存的,但其顯示格式可有不同形式,通常用戶可在命令行窗口中用格式(format)命令臨時改變顯示方式。比如用戶希望以有理數(rational)形式顯示,則可在命令行窗口中輸入命令“format rational”。例如:
?
format rational %改變當前顯示格式為有理數格式
?
x=0.75%輸入實數0.75
輸出:
?
?
x=
?
3/4
數“0.75”的有理顯示形式為“3/4”。其他顯示格式還有短格式(short,缺省格式)和長格式(long),更多格式參見表1-1所示。
?
?
?
表1-1 數據的輸出格式控制
?
?
?
?
格式
中文解釋
說明
?
format
短格式(缺省格式)
缺省時為默認短格式方式與format short相同
format short
短格式
顯示5位定點十進制數
format long
長格式
顯示15位定點十進制數
format short e
短格式e方式
顯示5位浮點十進制數
format long e
長格式e方式
顯示15位浮點十進制數
format short g
短格式g方式
顯示5位定點或5位浮點十進制數
format long g
長格式g方式
顯示15位定點或15位浮點十進制數
format hex
十六進制格式
以十六進制格式顯示
format+
+格式
以+、-和空格分別表示矩陣中的正數、負數和零元素
format bank
銀行格式
按元、角、分(小數點后具有兩位)的固定格式顯示
format rat
有理數格式
用有理數逼近顯示數據
format compact
壓縮格式
數據之間無空行
format loose
自由格式
數據之間有空行
?
?
讀者可在命令行窗口中輸入:x=pi然后在不同的輸出格式下輸出x的結果,觀察結果顯示的不同。
?
2.變量
?
在程序執行過程中,其值可以被改變的量為變量。每一個變量需有一個變量名,它在內存中占有一個內存單元。MATLAB中的變量可用來存放數據,也可用來存放向量或矩陣,并進行各種運算。
?
變量的命名規則是:①變量名區分字母大小寫;②變量名以字母開頭,可以由字母、數字、下劃線組成,但不能使用標點;③變量名長度不超過63位,最多只能含有63個字符,后面的字符無效。
?
為了便于閱讀程序,對變量或程序可作注釋,“%”是注釋符,“%”后面的內容為注釋,對MATLAB的計算不產生任何影響。
?
同常量一樣,變量可分為整型、實型(浮點)、字符型等。在命令行窗口的狀態下,所有的變量均存在于工作區中,且不同類型的變量在工作區中一般用不同圖標區別,如字符型變量用圖標“abc”表示等。
?
3.永久變量
?
永久變量是變量的一種特殊情況,它在工作區中看不到,但是使用者可直接調用。表1-2列出了永久變量及其含義。
?
?
?
表1-2 永久變量表
?
?
?
?
名稱
取值
名稱
取值
?
?
ans 計算結果的默認變量名
pi 圓周率π的近似值(3.1416)
eps 數學中無窮小(epsilon)的近似值(2.2204e-016)
inf 無窮大,如1/0=inf(infinity)
NaN 非數,如0/0=NaN(Not a Number),inf/inf=NaN
?
?
i,j 虛數單位:i=j=-1
realmax 系統所能表示的最大數值
realmin 系統所能表示的最小數值
nargin 函數的輸入參數個數
nargout 函數的輸出參數個數
?
?
在MATLAB中定義變量時應避免與永久變量名重復,以免改變這些常量的值,如果已改變了某個常量的值,可以通過“clear+常量名”命令恢復該常量的初始設定值(當然,也可通過重新啟動MATLAB系統來恢復這些常量值)。
?
4.符號變量
?
MATLAB提供了符號計算功能。符號計算又稱計算機代數,通俗地說就是用計算機推導數學公式,如對表達式進行因式分解、化簡、微分、積分、解代數方程、求解常微分方程等。符號計算是絕對精確的計算。在MATLAB中進行符號運算時需要先用syms命令創建符號變量和表達式,如:
?
>> syms x %聲明一個符號變量x
syms不僅可以聲明一個變量,還可以指定多個變量及其數學特性,比如:
?
>> syms x y real%聲明符號變量x、y為實數類型
?
>> syms x y positive%聲明符號變量x、y為整數類型
創建符號表達式:
?
syms x y%聲明符號變量x、y
?
z=x^2+y^2%創建符號表達式
5.變量的查詢與清除
?
在命令行窗口中,只要輸入“who”,就可以看到工作區中所有曾經設定并至今有效的變量。如果輸入“whos”,不但會顯示所有的變量,而且會將該變量的名稱、性質等都顯示出來,即顯示變量的詳細資料。在命令行窗口中輸入“clear”,就清除了工作區中的所有變量。如果輸入“clear+變量名”,只清除工作區中指定變量名的變量。
?
1.3.2 操作符與運算符
?
數據變量間的運算是按一定的運算規則進行的,有些規則是由運算符決定的,有些是由MATLAB命令函數決定的,以下是操作符與運算符的使用規則。
?
1.操作符
?
在編輯程序或命令中,當標點或其他符號表示特定的操作功能時就稱其為操作符。表1-3列出了操作符。
?
?
?
表1-3 操作符
?
?
?
?
操作符
使用說明
?
:
冒號。①m:n產生一個數組\[m,m+1,…,n\];②m:k:n產生一個數組\[m,m+k,…,n\];③A(:,j)取矩陣A的第j列;④A(k,:)取矩陣A的第k行
;
分號。①在矩陣定義中表示一行的結束;②在命令語句的結尾表示不顯示這行語句的執行結果
…
連續點。一個命令語句非常長,一行寫不完可以分幾行寫,此時在行的末尾加上連續點,表示是一個命令語句
%
百分號。在編程時引導注釋行,而系統解釋執行程序時,%后面的內容不作處理
?
?
2.運算符
?
運算符可分為三類:算術運算符、關系運算符與邏輯運算符。算術運算符是構成運算的最基本的操作命令,可以在MATLAB的命令行窗口中直接運行。不同的運算符及功能說明見表1-4、表1-5、表1-6。
?
?
表1-4 算術運算符
?
?
?
?
運算符
功能說明
?
+
加法運算。兩個數相加或兩個同階矩陣相加。如果是一個矩陣和一個數字相加,則這個數字自動擴展為與矩陣同維的一個矩陣
-
減法運算。兩個數相減或兩個同階矩陣相減
*
乘法運算。兩個數相乘或兩個可乘矩陣相乘
/
除法運算。兩個數或兩個可除矩陣相除(A/B表示A乘以B的逆)
?
?
乘冪運算。數的方冪或一個方陣的多少次方
?
左除運算。兩個數ab表示b÷a,兩個可除矩陣相除(AB表示B乘以A的逆)
.*
點乘運算。兩個同階矩陣對應元素相乘
./
點除運算。兩個同階矩陣對應元素相除
.
點乘冪運算。一個矩陣中各個元素的多少次方
.
點左除運算。兩個同階矩陣對應元素左除
?
?
?
?
表1-5 關系運算符
?
?
?
?
運算符
功能說明
運算符
功能說明
?
?
>判斷大于關系
<判斷小于關系
==判斷等于關系
?
>=判斷大于等于關系
<=判斷小于等于關系
~=判斷不等于關系
?
?
關系運算符主要用于比較數、字符串、矩陣之間的大小或不等關系,其返回值是0或1。
?
?
?
表1-6 邏輯運算符
?
?
?
?
運算符
功能說明
運算符
功能說明
?
?
&與運算
或運算
?
~非運算
Xor(a,b)異或運算
?
?
邏輯運算符主要用于邏輯表達式和進行邏輯運算,參與運算的邏輯量以0代表“假”,以任意非0數代表“真”。邏輯表達式和邏輯函數的值以0表示“假”,以1表示“真”。
?
1.3.3 MATLAB命令函數
?
MATLAB系統提供了近20類基本命令函數,它們中一部分是MATLAB的內部命令,一部分是以M文件形式出現的函數。這些M文件形式的函數擴展了MATLAB的功能,對于這些命令函數可以通過在命令行里面輸入“Help fun”來獲得有關這個命令函數使用的詳細說明,這里fun是要查詢的命令函數的名字。表1-7列出了基本的數學函數。
?
?
?
表1-7 基本的數學函數表
?
?
?
?
函數名
中文解釋
函數名
中文解釋
?
?
sin(x)正弦函數
cos(x)余弦函數
tan(x)正切函數
exp(x)以e為底的指數
log(x)自然對數
abs(x)絕對值或向量的長度
min(x)最小值
sign(x)符號函數
ceil(x)朝正無窮方向取整
fix(x)朝零方向取整
?
asin(x)反正弦函數
acos(x)反余弦函數
atan(x)反正切函數
log10(x)以10為底數的對數
sqrt(x)開平方
max(x)最大值
sum(x)元素求和
round(x)四舍五入到最近的整數
floor(x)朝負無窮方向取整
gcd(x,y)求兩整數最大公約數
?
?
數學函數都有一個共同的特點:若自變量x為矩陣,則函數值也為x的同階矩陣,即對x的每一元素分別求函數值;若自變量x為通常情況下的一個數值,則函數值是對應于x的一個數值。如計算“sin(x)”的一個函數值與一組函數值時,在命令行窗口中寫程序如下:
?
>> x=pi/3; %輸入一個數x
?
>> y=sin(x)%計算函數值y=sin(x)
?
y =
?
0.8660%顯示函數值
?
>> t=0:pi/3:2*pi;%輸入一組數t
?
>> z=sin(t)%輸出一組函數值z=sin(t)
?
z =
?
0 0.8660 0.8660 0.0000 -0.8660 -0.8660 -0.0000
?
總結
以上是生活随笔為你收集整理的MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Ruby程序员修炼之道》(第2版)—第
- 下一篇: 吐血整理所有常用端口,遇到端口问题一查就