matlab 機器學習入門


根據吳恩達機器學習教程總結,在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM