根據吳恩達機器學習教程總結,在matlab、octave均可使用
Matlab進行標量運算
>> 5 + 5
ans =
10
>> 6 * 2
ans =
12
>> 3^2
ans =
9
>> 3/2
ans =
1.5000
變量賦值
>> a = 3
a =
3
賦值語句后面加; 可以不輸出結果
>> q = 3;
>> q
q =
3
字符輸入時必須是單引號
>> b ='hi';
>> b
b =
hi
並 或 運算
>> 1 && 0
ans =
0
>> 1||1
ans =
1
比較語句
>> 2 > 3
ans =
0
輸出字符串
>> a =pi
a =
3.1416
>> disp(a)
3.1416
>> disp(sprintf('2 decimals: %0.2f',a))
2 decimals: 3.14
>> sprintf('hi')
ans =
hi
矩陣表示:
>> A = [1 2;3 4]
A =
1 2
3 4
向量表示
>> V = [1;2;3]
V =
1
2
3
從 1 開始 到2 終止步長為0.1的行向量
>> V = 1:0.1:2
V =
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000
1X2 全為1 矩陣
>> ones(1,2)
ans =
1 1
2X2全為0矩陣
>> zeros(2,2)
ans =
0 0
0 0
隨機1X3 的矩陣
>> rand(1,3)
ans =
0.8147 0.9058 0.1270
對角線為全為1 的單位矩陣
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
help 查看內置函數的用法
>> help eye
eye Identity matrix.
eye(N) is the N-by-N identity matrix.
eye(M,N) or eye([M,N]) is an M-by-N matrix with 1's on
the diagonal and zeros elsewhere.
eye(SIZE(A)) is the same size as A.
eye with no arguments is the scalar 1.
eye(..., CLASSNAME) is a matrix with ones of class specified by
CLASSNAME on the diagonal and zeros elsewhere.
eye(..., 'like', Y) is an identity matrix with the same data type, sparsity,
and complexity (real or complex) as the numeric variable Y.
Note: The size inputs M and N should be nonnegative integers.
Negative integers are treated as 0.
Example:
x = eye(2,3,'int8');
See also speye, ones, zeros, rand, randn.
eye 的參考頁
名為 eye 的其他函數
判斷矩陣的形狀
>> size(a)
ans =
1 1
>> size(A,1)
ans =
2
>> v = [1 2 3 4]
v =
1 2 3 4
>> size(v)
ans =
1 4
>> length(v)
ans =
4
顯示當前工作目錄(與Linux較為相似)
>> pwd
ans =
C:\Program Files\MATLAB\R2016a
進入某一目錄
>> cd 'C:\Users\scz\Desktop'
>> pwd
ans =
C:\Users\scz\Desktop
顯示當前目錄下所有文件
>> ls
.
..
1.docx
123
讀入文件,並保存到變量中
>> load('loldata.csv')
>> loldata
loldata =
7.0000 5.0000 2.0000 0.9329 28.7941 5.9861 4.5984
2.0000 1.0000 3.0000 0.4512 2.5701 0.9661 1.2014
7.0000 5.0000 3.0000 0.8364 21.6821 6.0617 3.8332
19.0000 2.0000 1.0000 1.0947 36.3245 12.7096 3.7969
4.0000 2.0000 4.0000 0.8193 19.6814 2.3778 1.3344
2.0000 9.0000 2.0000 0.7157 14.4339 3.3351 6.3405
0 10.0000 6.0000 0.7573 12.3280 2.1769 5.3543
8.0000 5.0000 1.0000 0.9012 20.2787 5.1798 3.9495
3.0000 7.0000 1.0000 0.7876 10.5917 2.2607 6.4620
1.0000 8.0000 4.0000 0.6336 5.9939 1.8080 5.9950
>> size(loldata)
ans =
10 7
顯示當前所有變量
>> who
您的變量為:
A V a ans b c loldata q v
所有變量具體信息
>> whos
Name Size Bytes Class Attributes
A 2x2 32 double
V 1x11 88 double
a 1x1 8 double
ans 1x2 16 double
b 1x2 4 char
c 1x1 8 double
loldata 10x7 560 double
q 1x1 8 double
v 1x4 32 double
保存變量到文件中
>> save hello.mat v;
矩陣運算
>> A = [1 2; 3 4 ; 5 6]
A =
1 2
3 4
5 6
>> C = [1 1 ; 2 2]
C =
1 1
2 2
>> A * C
ans =
5 5
11 11
17 17
注意A 后面有空格,.是對矩陣中所有元素進行位運算
>> A .^ 2
ans =
1 4
9 16
25 36
>> A + 1
ans =
2 3
4 5
6 7
>> A
A =
1 2
3 4
5 6
矩陣的轉置
>> A'
ans =
1 3 5
2 4 6
沒一列中所有最大元素
>> max(A)
ans =
5 6
>> [VAL,IND] = max(A)
VAL =
5 6
IND =
3 3
矩陣的比較運算
>> A < 3
ans =
1 1
0 0
0 0
所有元素中符合條件位置
>> find(A < 3)
ans =
1
4
>> a = magic(4)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> [r,c] = find(A < 3)
r =
1
1
c =
1
2
>> a = [1 2 3 4]
a =
1 2 3 4
>> sum(a)
ans =
10
>> prod(a)
ans =
24
>> a = [1 2 3 4;1 3 4 5]
a =
1 2 3 4
1 3 4 5
求和默認是列
>> sum(a)
ans =
2 5 7 9
>> sum(a,1)
ans =
2 5 7 9
求積
>> prod(a)
ans =
1 6 12 20
>> floor(a) %向下四舍五入
ans =
1 2 3 4
1 3 4 5
>> ceil(a) %向上四舍五入
ans =
1 2 3 4
1 3 4 5
>> max(rand(3),rand(3))
ans =
0.9572 0.2785 0.9649
0.6324 0.5469 0.9595
0.8003 0.9575 0.9706
>> A(:)
ans =
1
3
5
2
4
6
調換方向
>> flipud(eye(9))
ans =
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0
求矩陣的擬
>> pinv(a)
ans =
1.3333 -1.0000
-1.6667 1.3333
-0.3333 0.3333
1.0000 -0.6667
>> D = [0:0.01:0.98]
>> y1 = sin(2*pi*4*D)
>> plot(D,y2,'r')
>> xlabel('time')
>> ylabel('value')
>> legend('sin','cos')
>> title('my plot')
>> print -dpng 'myplot.png'
>> subplot(1,2,1)
>> plot(D,y1)
>> subplot(1,2,2)
>> plot(D,y2)
>> clf
>> 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
>> imagesc(A)
>> imagesc(A)
>> imagesc(A),colorbar,colormap gray
循環語句 判斷語句
>> for i=1:10,
v(i)=2^(i);
end;
>> v
v =
2
4
8
16
32
64
128
256
512
1024
>> while true,
i =1;
v(i) = 100;
if i <=6,
break;
end;
end;
>> v
v =
100
4
8
16
32
64
128
256
512
1024