Matlab常用語法和基本運算
阿新 • • 發佈:2018-12-04
(一)Matlab基本操作
1> 實數的加減乘除乘方等運算
可直接在Matlab的控制檯下進行對應的操作,如下。
>> 5+6
ans =
11
>> 3-2
ans =
1
>> 5*7
ans =
35
>> 5*8
ans =
40
>> 1/2
ans =
0.5000
>> 2^6
ans =
64
2>邏輯運算,1表示真,0表示假
>> 1 == 2 %false ans = 0 >> 1 ~= 2 % ~=表示不等於 ans = 1 >> 1 && 0 % 與 ans = 0 >> 1 || 0 % 或 ans = 1 >> xor(1,0) %異或 ans = 1
3>變數賦值和矩陣初始化
>> a = 3 %變數賦值 a = 3 >> b = 'hi'; %變數賦值的時候,最後的末尾有一個分號 >> b = 'hi' %其中有:表示不把結果輸出到控制檯,沒有分號表示將結果輸出到控制檯 b = hi >> a = pi; %在向控制檯輸出結果的時候,也可以用disp()函式 >> disp(a) 3.1416 >> a = pi; >> disp(a) 3.1416 >> format long %format long命令是讓數值輸出的位數變的多 >> a a = 3.141592653589793 >> format short %format short命令是讓數值輸出的位數變的少 >> a a = 3.1416 ------------------------------------------------------------------------------------- >> A = [1 2; 3 4; 5 6] %建立3行2列的矩陣 A = 1 2 3 4 5 6 >> v = [1;2;3] %建立3行一列/列向量 v = 1 2 3 >> v = 1:6 %建立6個數 v = 1 2 3 4 5 6 >> v = 1:0.1:2 %從1開始到2,每隔0.1建立一個數 v = 1 至 6 列 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 7 至 11 列 1.6000 1.7000 1.8000 1.9000 2.0000 >> ones(2,3) %建立3行2列的全一矩陣 ans = 1 1 1 1 1 1 >> w = zeros(1,3) %建立3行1列的全0矩陣 w = 0 0 0 >> w = rand(1,3) %建立1行3列的隨機矩陣 w = 0.8147 0.9058 0.1270 >> eye(5) %建立5行5列的單位矩陣 ans = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 >> A = magic(5) %建立幻方矩陣,幻方矩陣,就是行和,列和,對角線元素的和都相等。 A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
(二)Matlab移動資料
>> A = [1 2;3 4; 5 6] %建立一個3行2列的矩陣 A = 1 2 3 4 5 6 >> size(A) %求矩陣的大小,為3行2列 ans = 3 2 >> size(A,1) %求矩陣行的大小 ans = 3 >> size(A,2) %求矩陣列的大小 ans = 2 >> length(A) %求矩陣行的大小和列的大小中較大的 ans = 3 >> load ex1data1.txt %從檔案中載入資料 >> ex1data1 %顯示出檔案中的資料 ex1data1 = 6.1101 17.5920 5.5277 9.1302 8.5186 13.6620 ...... ....... >> who %可以用who來表示當前變數 您的變數為: A ans ex1data1 >> whos %用來顯示出變數的資訊 Name Size Bytes Class Attributes A 3x2 48 double ans 1x18 36 char ex1data1 97x2 1552 double >> clear ans %刪除變數資訊 >> v = ex1data1(1:10) %將ex1data1中的資料1-10賦值給v >> save hello.mat v; %講變數v儲存到hello中,字尾名為.mat >> save hello.txt v -ascii %將變數v儲存到hello中,字尾名為.txt格式 >> A %輸出矩陣A的值 A = 1 2 3 4 5 6 >> A(3,2) %輸出矩陣中A(3,2)的元素 ans = 6 >> A(2,:) %輸出矩陣中的第二行元素 ans = 3 4 >> A(:,2) %輸出矩陣中的第二列元素 ans = 2 4 6 >> A([1 3],:) %輸出矩陣中的第一行,第三行的元素 ans = 1 2 5 6 >> A(:,2)=[10;11;12] %將矩陣中第二列元素替換為[10;11;12] A = 1 10 3 11 5 12 >> A = [A,[100;101;102]] %在矩陣後新新增一列,在這裡用;間隔表示元素是列元素。 A = %用,間隔,表示元素是行元素。如下所示 1 10 100 3 11 101 5 12 102 >> A=[A;[100,101,102]] A = 1 10 100 3 11 101 5 12 102 100 101 102
(三) Matlab計算資料
1>矩陣元素的基本運算:矩陣乘法,矩陣中對應元素乘積等
>> A = [1 2;3 4;5 6] %建立3行2列矩陣A
A =
1 2
3 4
5 6
>> B =[11 12;13 14;15 16] %建立3行2類矩陣B
B =
11 12
13 14
15 16
>> C = [1 1; 2 2] %建立2行2列矩陣C
C =
1 1
2 2
>> A*C %計算矩陣A和矩陣C的乘積
ans =
5 5
11 11
17 17
>> A .* B %計算矩陣A中的每個元素和B中的每個元素對應相乘。
ans =
11 24
39 56
75 96
>> A .^ 2 %表示把A中的每個元素都平方,其中.的意思是操作元素。
ans =
1 4
9 16
25 36
>> A' %矩陣的轉置
ans =
1 3 5
2 4 6
>> A = magic(3) %建立幻方矩陣
A =
8 1 6
3 5 7
4 9 2
>> pinv(A) %對矩陣A求逆
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
>> A(:) %將3行3列的矩陣變成9行1列的矩陣
ans =
8
3
4
1
5
9
6
7
2
-------------------------------------------------------------------------------------
%對矩陣進行函式操作
>> v = [1;2;3] %建立3行1列矩陣
v =
1
2
3
>> 1 ./v %對矩陣中每個元素取倒數
ans =
1.0000
0.5000
0.3333
>> exp(v) %對每個元素進行指數操作
ans =
2.7183
7.3891
20.0855
>> -v %矩陣中每個元素取反
ans =
-1
-2
-3
(四) Matlab資料繪製
1>用matlab進行資料繪製
>> t = [0:0.01:0.98]; %初始化自變數的範圍
>> y1 = sin(2*pi*4*t); %初始化因變數的範圍,y1為正弦函式
>> y2 = cos(2*pi*4*t); %初始化因變數的範文,y2為餘弦函式
>> plot(t,y1) %繪製正弦函式影象
>> hold on %執行此命令是為了讓兩個函式影象繪製在一起
>> plot(t,y2) %繪製餘弦函式影象
>> xlabel('time') %x座標的標籤
>> ylabel('value') %y座標的標籤
>> legend('sin','cos') %影象標記
>> title('my plot') %主題
>> print -dpng 'myPlot.png' %儲存影象
>> close %關閉影象
>> subplot(1,2,1) %將影象分為兩部分,在兩部分上分別繪製
>> plot(t,y1)
>> subplot(1,2,2)
>> plot(t,y2)
>> axis([0.5 1 -1 1])
做出的影象如下所示:
參考資料:網易雲課堂-吳恩達-機器學習公開課