MATLAB基础速成
變量
MATLAB程序的基本數(shù)據(jù)單元是數(shù)組。標(biāo)量在MATLAB里面也被當(dāng)做數(shù)組處理,被看作只有一行一列的數(shù)組。數(shù)組可以定義為向量或矩陣,向量一般描述一維數(shù)組,矩陣一般描述二維或多維數(shù)組。數(shù)組的定義要用[]來括起來,數(shù)組中同一行元素間以空格或逗號','隔開,行與行間由分號';'隔開。
?
定義及賦值方式:
| 實(shí)數(shù) | >> x = 5 |
| 復(fù)數(shù) | >> x = 5 + 10i 或者>> 5 + 10j |
| 行向量 | >> x = [1 2 3] 或者>> x = [1, 2, 3] |
| 列向量 | >> x = [1; 2; 3] |
| 3 * 3 矩陣 | >> x = [1 2 3; 4 5 6; 7 8 9] |
?
固定變量
| pi??? | ? ? ? ?π |
| i, j?? | ? ? ?? |
| inf ????? | ? ? ? ?∞? |
| NaN | ? ? ?非數(shù) |
| ans ? | ? 默認(rèn)變量 |
向量生成
1.直接生成向量
>> x = [0.00 1.00 2.00]
x =
0.00 1.00 2.00
>> x = [0.00 1.00 2.00]'?????????? %轉(zhuǎn)置
x =
0.00
1.00
2.00
2.利用冒號生成向量
用兩個(gè)冒號安順序
隔開‘第一個(gè)值’,‘步增’ 和‘最后一個(gè)值’ 就可生成指定的向量. 如果步增為1, 則可以省略掉步增
和一個(gè)冒號, 比如
>> x = 1:0.5:3
x =
[1.0 1.5 2.0 2.5 3.0]
>> y = 1:3
x =
[1 2 3]
3.利用線性等分生成向量
linspace(star,end,gap)? 生成一個(gè)線性等分向量
格式y(tǒng)=linspace(x1,x2,n)
表示生成n維向量,其中x1為第一個(gè)數(shù),x2為最后一個(gè)數(shù),當(dāng)n默認(rèn)時(shí),系統(tǒng)默認(rèn)生成100維向量。
例:
>>y=linspace(0,2,5)
y =
?
???????? 0??? 0.5000??? 1.0000??? 1.5000??? 2.0000
矩陣的生成
1.直接輸入矩陣
>> a=[1,2,3;4,5,6;exp(1),7/6,abs(-2.8)]
?
a =
?
??? 1.0000??? 2.0000??? 3.0000
??? 4.0000??? 5.0000??? 6.0000
??? 2.7183??? 1.1667??? 2.8000
2.利用函數(shù)生成矩陣
zeros生成全0陣
>> x=zeros(2,3)
x =
?
???? 0???? 0???? 0
???? 0???? 0???? 0
ones生成全1陣
>> y=ones(2)
?
y =
?
???? 1???? 1
???? 1???? 1
eye(m,n)生成單位陣
>> x=eye(2)
?
x =
?
???? 1???? 0
???? 0???? 1
獲取向量/矩陣中的元素
指定元素所在的行和列,即可獲得指定的一個(gè)或多個(gè)元素。
例:有矩陣A = [1 2 3; 4 5 6; 7 8 9]
>> x = A(1,3)
x =
3
>> y = A(2,:)
x =
[4 5 6]
>> z = A(1:2,1:2)
z =
[1 2; 4 5]
矩陣和數(shù)組運(yùn)算
1.算數(shù)運(yùn)算
1)基本運(yùn)算
| + | ?加法運(yùn)算 |
| - | 減法運(yùn)算 |
| * | 乘法運(yùn)算 |
| / | 右除運(yùn)算 |
| \ | 左除運(yùn)算 |
| ^ | 指數(shù)運(yùn)算 |
| ' | 轉(zhuǎn)置運(yùn)算 |
運(yùn)算法則同線性代數(shù)
附:
x = A\B 是Ax =B 的解,而x=B/A是xA =B 的解。
2)點(diǎn)運(yùn)算 針對同階對應(yīng)分量的運(yùn)算
?
| .* | ?乘法運(yùn)算 |
| ./ | 右除運(yùn)算 |
| .\ | 左除運(yùn)算 |
| .^ | 指數(shù)運(yùn)算 |
例:
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = A*A
B =
7 10
15 22
>> C = A.*A
C =
1 4
9 16
2.關(guān)系運(yùn)算
判斷兩同階數(shù)組(或者一個(gè)是矩陣,另一個(gè)是標(biāo)量)對應(yīng)分量間的的關(guān)系。
| < | 小于 |
| <= | ?小于等于 |
| > | 大于 |
| >= | 大于等于 |
| == | ?等于 |
| ~= | 不等于 |
若連個(gè)矩陣進(jìn)行關(guān)系運(yùn)算,則將兩個(gè)矩陣對應(yīng)元素逐一進(jìn)行關(guān)系運(yùn)算。輸出結(jié)果只包含0和1。
例:
>> A = [1 3 4 2 5]
>> B = [2 1 3 5 4]
>> C = A>B % C = [1> 2, 3 >1, 4 >3, 2 >5, 5 >4]
C =
0 1 1 0 1
>> D = A<=3 % D = [1<=3, 3<=3, 4<=3, 2<=3, 5<=3]
D =
1 1 0 1 0
3.邏輯運(yùn)算
| & | 與 |
| | | 或 |
| ~ | 非 |
例:
>> A = [1 3 4 2 5];
>> B = [2 1 3 5 4];
>> C = (A>B) & (A<=3)
C =
0 1 0 0 0
常用數(shù)學(xué)函數(shù)
| sin | 正弦 | Asin | 反正弦 |
| cos | 余弦 | acos | 反余弦 |
| tan | 正切 | atan | 反正切 |
| cot | 余切 | acot | 反余切 |
| Exp | ?指數(shù)函數(shù) | Sqrt | ?平方根 |
| Log | ?自然對數(shù) | log10 | 以10 為底的對數(shù) |
| abs | 絕對數(shù) | sign | 符號函數(shù) |
以上函數(shù)是針對矩陣對應(yīng)元素逐一進(jìn)行函數(shù)的運(yùn)算。
例:
>> theta = 0:pi/3:pi
theta =
0 1.0472 2.0944 3.1416
>> sin(theta)
ans =
0 0.8660 0.8660 0.0000
數(shù)組操作函數(shù)
| rot90(A) | 將A逆時(shí)針方向旋轉(zhuǎn)90° |
| rot90(A,K) | 將A逆時(shí)針方向旋轉(zhuǎn)(90*K)° |
| fliplr(A) | 將矩陣A左右翻轉(zhuǎn) |
| flipud(A) | 將矩陣A上下翻轉(zhuǎn) |
| flipdim(A,dim) | 將矩陣A的dim維翻轉(zhuǎn),dim=1表示行,dim=2表示列 |
| max | 輸出最大數(shù) |
| min | 輸出最小數(shù) |
| sum | 求和 |
例:
flipud, fliplr, rot90
>> A = [1 2 3; 4 5 6; 7 8 9];
>> B = flipud(A)
A =
7 8 9
4 5 6
1 2 3
>> C = rot90(A)
C =
3 6 9
2 5 8
1 4 7
sum
多維時(shí)默認(rèn)求各列之和,若后加2則求各行之和
>> A = [1 2 3];
>> sum(A)
ans =
6
>> B = [1 2 3; 4 5 6; 7 8 9];
>> sum(B)
ans =
12 15 18
>> sum(B,2)
ans =
6
15
25
?
>> sum(B(:))??????? %求所有項(xiàng)總和
ans =
??? 45
max,min
>> A = [1 2 3];
>> max(A)????????
ans =
3
>> max(A,2)????? 將A中所有元素與2比較
ans =
2 2 3
>> B = [1 3 9; 4 8 6];????? B為2維按照每列取最大值
>> max(B)
ans =
4 8 9
>> max(B, [], 2)??????
ans =
9
8
基本語句
for .. end
if .. else .. end
while .. end
switch .. case .. end
?例:求1-10 以內(nèi)的奇數(shù)和
% sum of the odd numbers between 1 and 10
x = 0;
for i = 1:10
if mod(i,2)
x= x + i;
end
end
?
簡單作圖
plot(x,y,'s')
其中x表示橫坐標(biāo)向量,y表示縱坐標(biāo)向量,s為選項(xiàng)字符串,用于控制線型與顏色。常用表示見繪圖參數(shù)表。
title(圖形名稱)
xlabel(x 軸說明); ylabel(y 軸說明)
text(x,y, 圖形說明)
legend(圖例1, 圖例2, ...)
grid on / grid off / grid minor
axis([xmin xmax ymin ymax]), xlim([xmin, xmax])
?
?
繪圖參數(shù)表
| b | ?藍(lán) | . | 點(diǎn) | ^ | ?向上三角形 | - | ?實(shí)線 |
| g | ?綠 | o | ?圓 | < | ?向左三角形 | : | ?點(diǎn)線 |
| r | ?紅 | x | ?叉號 | ? | ?向右三角形 | -. | ?點(diǎn)劃線 |
| c | ?青 | + | ?加號 | p | ?五角星 | -- | ?虛線 |
| m | ?紫 | ? | ?星號 | h | ?六角星 | ? | ? |
| y | ?黃 | s | ?正方形 | ? | ? | ? | ? |
| k | ?黑 | d | ?菱形 | ? | ? | ? | ? |
| w | ?白 | v | ?向下三角形 | ? | ? | ? | ? |
?
例1:
x=-2*pi:0.1:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,'-b');
hold on???????????? %圖像保持
plot(x,y2,'-r');
xlabel('X')
ylabel('Y')
text(0,0,'(0,0)')
legend('sinx','conx')
例2:
%建模一家
t=0:pi/180:4*pi;
x=16*sin(t).^3;
y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
plot(x-3,y,'-r',x+3,y,'-y',x+9,y,'-b');
axis([-20,25,-20,15]);
title('Cute and charming Family')
legend('Feng','Wei','Shi')
?
?
注:本文是我學(xué)習(xí)MATLAB時(shí)整理的筆記,方便日后查看復(fù)習(xí)。分享給大家,文中可能有一些錯(cuò)誤,或簡陋難以理解的地方,大家可以指正,共同進(jìn)步。(部分內(nèi)容參照網(wǎng)上資料,侵刪)
總結(jié)
以上是生活随笔為你收集整理的MATLAB基础速成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java清除session_退出页面自动
- 下一篇: java 聊天室 私聊_使用socket