提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
前言
本文總結(jié)MATLAB編程時(shí)的一些基本操作,適用于新手小白,主要包括矩陣相乘、生成矩陣、矩陣基本操作、數(shù)組索引、最大最小操作符。
一、矩陣相乘
線性代數(shù)的兩個(gè)矩陣相乘:用符號(hào) “ * ” 例如A*B得到A與B的矩陣相乘,A的列數(shù)與B的行數(shù)要一致。
矩陣對(duì)應(yīng)元素相乘:用符號(hào)點(diǎn)乘 " . * " A 點(diǎn)乘B得到A矩陣與B矩陣對(duì)應(yīng)元素相乘的結(jié)果。
代碼示例:
二、矩陣生成
1.直接輸入
語(yǔ)法:
(1)在[]內(nèi)輸入矩陣元素;
(2)矩陣同行元素以逗號(hào)‘,’或空格分隔;
(3)矩陣不同行用分號(hào)‘;’或回車分隔;
(4)若[]中無(wú)元素表示空矩陣(會(huì)有警告出現(xiàn),提示你預(yù)先分配內(nèi)存);
代碼如下(示例):
2.單位矩陣
語(yǔ)法:
A = eye(m,n)
m-行數(shù)目
n-列數(shù)目
代碼如下(示例):
代碼如下(示例):
3.全零矩陣
語(yǔ)法:
A = zeros(m,n)
m-行數(shù)目
n-列數(shù)目
代碼如下(示例):
2.全一矩陣
語(yǔ)法:
A = ones(m,n)
m-行數(shù)目
n-列數(shù)目
代碼如下(示例):
2.隨機(jī)矩陣
語(yǔ)法:
A = rand(m,n)
m-行數(shù)目
n-列數(shù)目
rand 生成0-1之間的數(shù),需要其他值的可以在后面加減乘除一個(gè)數(shù)
A = rand(m,n) * 10 生成取值為0-10的矩陣
A = rand(m,n) + 5 生成取值為5-15的矩陣
A = -rand(m,n) 生成取值為-1-0的矩陣
代碼如下(示例):
三、矩陣操作
1.轉(zhuǎn)置:符號(hào)-單引號(hào) ’
A轉(zhuǎn)置=A’
2.兩個(gè)矩陣拼接:符號(hào)-中括號(hào)[]
[A,B:A與B水平拼接
[A;B]:A與B垂直拼接
代碼如下(示例):
四、矩陣/數(shù)組索引
直接看圖
代碼如下(示例):
五、最大最小運(yùn)算符
最大運(yùn)算符max
最小運(yùn)算符min
*語(yǔ)法:
max([a,b,c,d,,,])——取出矩陣中的最大元素
max(A)——取出矩陣A中的最大元素
max([a,b,c,d,,,])——取出矩陣中的最小元素
max(A)——取出矩陣A中的最小元素
代碼如下(示例):
六、矩陣求和-sum函數(shù)
1.向量求和
*語(yǔ)法:
A = [1 2 3]
sum(A)——得到A矩陣所有元素的和
sum([4 5 6])——得到行向量4 5 6的和
代碼如下(示例):
2.矩陣按列求和
*語(yǔ)法:
sum(需要按列求和的矩陣)
A = [1 2 3;4 5 6;1 1 1]
sum(A)
代碼如下(示例):
3.矩陣按行求和
*語(yǔ)法:
sum(需要按列求和的矩陣,2)
A = [1 2 3;4 5 6;3 2 1]
sum(A,2)
代碼如下(示例):
4.矩陣所有元素求和
*語(yǔ)法:加上標(biāo)識(shí)符“all”
sum(要求和的矩陣,‘a(chǎn)ll’)
A = [1 2 3;1 2 3;4 5 6]
sum(A,'all')
代碼如下(示例):
七、語(yǔ)句過(guò)長(zhǎng)換行書(shū)寫(xiě)
編寫(xiě)matlab代碼程序時(shí)候,可能會(huì)出現(xiàn)代碼太長(zhǎng),一行寫(xiě)的過(guò)長(zhǎng)會(huì)不適合閱讀,也難以識(shí)別錯(cuò)誤
解決辦法:
使用連接符號(hào)(“…”)
語(yǔ)法:三個(gè)點(diǎn)就是連接符
A = a+b+…
c-d-…
e
A = [1 2 3;1 2 3;4 5 6]
B= A(1,1)+A(1,2)+...
A(1,3)+A(2,1)-...
A(3,1)
結(jié)果:B= 1+2+3+1-4=3
代碼如下(示例):
八、邏輯運(yùn)算符(與或非、異或、“&&“與”&”、“||“與”|”)
符號(hào) | 含義 |
---|---|
& | 與 |
豎線 | 或 |
~ | 非 |
xor | 異或 |
any(x) | x中任意有一元素非零時(shí),返回“1”,否則返回“0” |
all(x) | x的所有元素非零時(shí),返回“1”,否則返回“0” |
“&”和“|”操作符可比較兩個(gè)標(biāo)量或兩個(gè)同階矩陣.對(duì)于矩陣來(lái)說(shuō)必須符合規(guī)則,如果A和B都是0-1矩陣,則A&B或A|B也都是0-1矩陣,這個(gè)0-1矩陣的元素是A和B對(duì)應(yīng)元素之間邏輯運(yùn)算的結(jié)果,邏輯操作符認(rèn)定任何非零元素都為真,給出“1”,任何零元素都為假,給出“0”。
除上述邏輯運(yùn)算符之外,MATLAB還可以使用"&&“和”||"運(yùn)算符(&& 和 || 被稱為 & 和 | 的short circuit形式)
Matlab中的邏輯運(yùn)算"&&“與”&“,”||“與”|"的區(qū)別如下:
A&B
(1)首先判斷A的邏輯值,然后判斷B的值,然后進(jìn)行邏輯與的計(jì)算。
(2)A和B可以為矩陣(e.g. A=[1 0],B=[0 0])。
A&&B
(1)首先判斷A的邏輯值,如果A的值為假,就可以判斷整個(gè)表達(dá)式的值為假,就不需要再判斷B的值。
(2)A和B不能是矩陣,只能是標(biāo)量。
"|"與“||”同理。
A&&B 首先判斷A的邏輯值,如果A的值為假,就可以判斷整個(gè)表達(dá)式的值為假,就不需要再判斷B的值。這種用法非常有用,如果A是一個(gè)計(jì)算量較小的函數(shù),B是一個(gè)計(jì)算量較大的函數(shù),那么首先判斷A對(duì)減少計(jì)算量是有好處的。
九、log函數(shù)在MATLAB中的表達(dá)
Matlab中的對(duì)數(shù)使用,matlab中提供了log10、log2和以e為底的對(duì)數(shù)。
表達(dá)式 | 含義 |
---|---|
log() | 以e為底的對(duì)數(shù) |
log10() | 以10為底的對(duì)數(shù) |
log2() | 以2為底的對(duì)數(shù) |
十、Matlab中的Inf和NaN的含義
Matlab中的Inf和-Inf分別代表正無(wú)窮和負(fù)無(wú)窮。
NaN表示非數(shù)值的值,產(chǎn)生一般是由于0 做了分母或者運(yùn)算溢出,產(chǎn)生了超出雙精度浮點(diǎn)數(shù)數(shù)值范圍的結(jié)果,非數(shù)值量則是因?yàn)?/0,或者Inf/Inf型的非正常運(yùn)算。
語(yǔ)句 | 含義 |
---|---|
Inf | 正無(wú)窮 |
-Inf | 負(fù)無(wú)窮 |
NaN | 非數(shù)值結(jié)果 |
注意:兩個(gè)NaN是不相等的
十一、同時(shí)給多個(gè)變量或矩陣賦值
很多時(shí)候需要給多個(gè)變量賦值,一行一行的寫(xiě)不僅過(guò)于冗長(zhǎng)而且寫(xiě)起來(lái)很麻煩,下面就介紹一個(gè)可以一次性給多個(gè)變量或矩陣賦值的操作,即用函數(shù)deal().
具體代碼如下:
// 同時(shí)給多個(gè)變量或矩陣賦值
[Y1, Y2, Y3, …] = deal(X); % 即Y1=Y2=Y3=X
[Y1, Y2, Y3, …] = deal(zeros(K,M)); % 即Y1=Y2=Y3,全部賦值為K*M維的零矩陣
[Y1, Y2, Y3, …] = deal(X1, X2, X3, …); % 即Y1=X1,Y2=X2,Y3=X3,常數(shù)和矩陣都可以這樣操作
[x,y,z]=deal(100); %x,y,z同時(shí)初始化為100
[a,b,c]=deal(‘mat’,'lab’,'sky’); %對(duì)a,b,c分別初始化為mat,lab,sky
十二、MATLAB取整與取余函數(shù)
1.取整函數(shù)
函數(shù)名 | 作用 |
---|---|
fix | 朝零方向取整 |
floor | (地板)向下取整,即朝負(fù)無(wú)窮方向取整 |
ceil | (天花板)向上取整,即朝正無(wú)窮方向取整 |
round | 四舍五入到最近的整數(shù) |
代碼示例:
%%fix函數(shù)
fix(-1.3)=-1;
fix(1.9)=1
%%floor函數(shù)
floor(-1.3)=-2;
floor(1.3)=1;
%%ceil函數(shù)
ceil(-1.3)=-1;
ceil(1.3)=2;
%%round函數(shù)
round(-1.52)=-2;
round(1.3)=1
2.取余函數(shù)
(1)MATLAB中有兩個(gè)類似函數(shù):一個(gè)是取模(mod),另一個(gè)是取余(rem),兩者的不同之處在于:
當(dāng)x和y的正負(fù)號(hào)一樣的時(shí)候,兩個(gè)函數(shù)結(jié)果是相同的。
當(dāng)x和y的符號(hào)不同時(shí),rem函數(shù)結(jié)果的符號(hào)和x的一樣,而mod和y一樣。
(2)兩個(gè)異號(hào)整數(shù)取模原理文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-764091.html
先將兩個(gè)整數(shù)看作是正數(shù),再作除法運(yùn)算
能整除時(shí),其值為0
不能整除時(shí),其值=除數(shù)×(整商+1)-被除數(shù)
總結(jié)
本文總結(jié)歸納了一些MATLAB的基礎(chǔ)操作,包括矩陣乘法、數(shù)組矩陣索引、最大最小運(yùn)算符、零矩陣/隨機(jī)矩陣/單位矩陣的生成、log函數(shù)的表達(dá)、Inf和NaN的含義,語(yǔ)句過(guò)長(zhǎng)用連接符換行語(yǔ)句、邏輯運(yùn)算符以及區(qū)別文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-764091.html
到了這里,關(guān)于MATLAB基礎(chǔ)操作,矩陣乘法、數(shù)組矩陣索引、最大最小運(yùn)算符、零矩陣/隨機(jī)矩陣/單位矩陣的生成、log函數(shù)、Inf和NaN的含義,語(yǔ)句過(guò)長(zhǎng)用連接符換行、邏輯運(yùn)算符以及區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!