MATLAB程序設(shè)計(jì)-合集(已完結(jié))

注意:綠色高亮為易錯(cuò)或認(rèn)識(shí)難點(diǎn),黃色高亮為新知識(shí);
W1S2-變量類(lèi)型(在W2S2講解)
int8存儲(chǔ)最大整數(shù)為127(∵其為-128...-1,0,1...127),
int16同理;
uint8最大數(shù)為2^8-1;
int8最大數(shù)為2^8/2-1;
W1S4-常數(shù)&隨機(jī)數(shù)
1.當(dāng)虛數(shù)單位i或j被占用時(shí),可以在前面加上‘1’使i或j仍為虛數(shù)單位;
2.產(chǎn)生隨機(jī)數(shù)時(shí),使用“rng('shuffle')”可以保證隨機(jī)種子不同,產(chǎn)生的隨機(jī)結(jié)果也就不同;
3.rng函數(shù)使用括號(hào)內(nèi)的非負(fù)取整部分;
4.randn產(chǎn)生正態(tài)分布隨機(jī)數(shù),randi([a,b])產(chǎn)生a到b的整數(shù)隨機(jī)數(shù)。
5.Inf表示無(wú)窮,NaN表示未定義數(shù);
W2S1-字符型變量簡(jiǎn)介
詳見(jiàn)C語(yǔ)言ascii碼相關(guān)概念
W2S2-邏輯運(yùn)算
1.‘==‘表示判斷是否等于;’~=‘表示判斷是否不等于;
2.’&&‘與’||‘的使用同C語(yǔ)言(注意:&&左0則不執(zhí)行右;||左1則不執(zhí)行右——“短路運(yùn)算”),‘~’表示非;
3.xor(A,B)為語(yǔ)句A與B當(dāng)且僅當(dāng)只有一個(gè)正確時(shí)返回1;
4.運(yùn)算符優(yōu)先級(jí)如下:

5.注意:連續(xù)比較時(shí)應(yīng)當(dāng)注意順序:5>4>3?(5>4)>3?1>3?0;
6.浮點(diǎn)數(shù)計(jì)算后比較涉及舍入誤差,故經(jīng)常使用兩者差的絕對(duì)值來(lái)比較;
W2S3-基本函數(shù)
1.sin()輸入弧度,sind()內(nèi)輸入角度;
2.fix()取整去掉小數(shù)部分,floor向負(fù)無(wú)窮取整,ceil向正無(wú)窮取整,round()向最近整數(shù)取整(四舍五入);
3.round(C,x)保留C的x位小數(shù);
4.mod(A,B) == A除以B的余數(shù),mod&rem不同點(diǎn)查看help;
5.sign(x)返回x的符號(hào);
6.sqrt()求平方根,nthroot(x,y)求x的y次方根;
7.deg2rad()角度轉(zhuǎn)換弧度,rad2deg()同理;
8.log()默認(rèn)以e為底,logn()表示以n為底;
9.exp(x)表示e的x次方;
W2S3-行向量
1.[]或用”x:d:y“輸入從x到y(tǒng),公差為d的等差行向量,d省略則默認(rèn)公差1;
2. linspace(x1,x2,d) 建立從x1到x2,有d個(gè)數(shù)的等差數(shù)列;logspace(x1,x2,d)建立從10^x1到10^x2,有d個(gè)數(shù)的等比數(shù)列;
3.[u v]將兩個(gè)向量組合;
4.u(x)訪問(wèn)u的第x個(gè)元素,matlab中數(shù)組編號(hào)以1開(kāi)頭;
5.u([x y])訪問(wèn)u的第x與第y個(gè)元素并以向量形式返回;
6.u(end-n)返回倒數(shù)第n個(gè)數(shù),u(a:end-n)返回第a個(gè)到倒數(shù)第n個(gè)數(shù);
W2S4-列向量&矩陣
1.[x;y;z]分號(hào)表示一行結(jié)束,共軛轉(zhuǎn)置為單引號(hào);單純轉(zhuǎn)置為.'
2.返回值與原向量相同形式,而非指標(biāo)向量;
3.rand(x,y)輸出x行y列隨機(jī)數(shù)方陣,randi([x,y],a,b)輸出從x到y(tǒng)的隨機(jī)整數(shù)a行b列矩陣;
4.zeros()0矩陣,ones()1矩陣,eye()單位矩陣,diag()對(duì)角矩陣;
5.diag(,n)表示第n個(gè)對(duì)角線(xiàn)元素賦前面的值;
6.訪問(wèn)值時(shí)線(xiàn)性下標(biāo):

7.
length()返回max{行數(shù),列數(shù)};size()返回行數(shù),列數(shù);[n_row,n_col]=size()行數(shù)&列數(shù)分別賦值;numel()返回元素?cái)?shù);
8. matlab中0,Inf,NaN理解成數(shù)列極限;
W3S1-向量&矩陣常用函數(shù)
1.reshape()改變矩陣的形式且原矩陣不變;元素?cái)?shù)必須一致;

2.flipud()縱向翻轉(zhuǎn),fliplr()橫向翻轉(zhuǎn);flip()以列向量翻轉(zhuǎn)(flipud);
3.rot90()逆時(shí)針旋轉(zhuǎn)90°;
4.repmat(A,x,y)-repeat matrix將A縱向復(fù)制x次,橫向復(fù)制y次;
repelem(A,x,y)-repeat element

5.空矩陣-用以存儲(chǔ)數(shù)組,NaN(x,y)產(chǎn)生x行y列空矩陣;

擲骰子
W3S2-向量運(yùn)算&矩陣運(yùn)算
1.三維數(shù)組用T(:,:,k),k=1,2,3...;(把紙疊在一起)
2.min()返回一維向量最小值,矩陣每一列最小值,max()同理;
3.sum()返回所有元素和,prod返回所有元素之積(向量情況),矩陣看help;
4.cumsum()&cumprod()&cummin()&cummax()

5.diff()?x(2)-x(1),x(3)-x(2)……;
6.矩陣運(yùn)算 .*為兩個(gè)數(shù)組對(duì)應(yīng)元素相乘,./同理,.^;

W3S3-邏輯向量&邏輯矩陣
0.產(chǎn)生邏輯數(shù)組;
1.v(v>x)返回v中所有大于x的元素;
2.logical()強(qiáng)制轉(zhuǎn)換成邏輯數(shù)組;或者在后面跟修飾'logical';
3.any()邏輯數(shù)組中是否至少有一個(gè)是真值,all()同理;
4.find()返回邏輯數(shù)組中為真值的數(shù)字位置,find(x,k)x中的前k個(gè)真值位置;
5.all(x1==x2)比較x1與x2對(duì)應(yīng)位置元素是否相同;isequal(x1,x2)類(lèi)似;
6.例題1

剔除vec中所有負(fù)數(shù)
P.S.>>第二行語(yǔ)句將負(fù)數(shù)賦予空值,即剔除;
7.例題2
numel(find(differ(V) == 1))
sum(differ(V == 1))更簡(jiǎn)潔;
找出數(shù)組中所有1?2的次數(shù)
法(1)將0改成NaN;
法(2)

8.對(duì)于向量用&連接,標(biāo)量&&連接;
W3S4-矩陣乘法
1.".^2"元素自身平方;點(diǎn)積".*"后求和或轉(zhuǎn)置乘;叉積cross();
2.希爾伯特矩陣hilb(),帕斯卡矩陣pascal(),幻方陣magic();
3.[I,J]=ind2sub(size,ind)將線(xiàn)性下標(biāo)轉(zhuǎn)換成行、列序號(hào);
W3S4-變量輸出顯示
1.disp();
2.num2str(,x)將整型,實(shí)型轉(zhuǎn)換成字符串型并保留x位
3.fprintf()(C語(yǔ)言printf())
4.ctrl r注釋ctrl t取消注釋?zhuān)?/p>
5."%+"正號(hào)有則輸出符號(hào);
W5S3
function被存儲(chǔ)在同名文件中成為公共函數(shù),跟在腳本后成為局部函數(shù)
W6S2
事先賦予變量空間提高計(jì)算效率

W7S4
1.同名靜態(tài)變量在不同函數(shù)中的值不相互影響;
2.函數(shù)中才可以定義靜態(tài)變量