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