吴恩达机器学习(四)——Octave(Matlab)语言1

Octave(Matlab)语言

本文中的所有Octave语言均适用于Matlab语言,很多语言和Linux命令语言类似,可以结合学习,内容较多但是很详细,适合初学者,建议收藏。很多学习笔记都在代码行注释里面了,都是心血啊~~

  • 1. 基本语法
    • 1.1基本代码
    • 1.2 向量和矩阵
  • 2.移动数据移动和储存数据
  • 3.操作数据

1. 基本语法

1.1 基本代码

>> 5+6
ans =  11
>> 1==2
ans = 0
>> a = pi
a =  3.1416
>> disp(a)
 3.1416
>> disp(sprintf('2 decimals: %0.2f',a))
2 decimals: 3.14
>> disp(sprintf('7 decimals: %0.7f',a))
7 decimals: 3.1415927
>> sprintf('7 decimals:%0.7f',a)
ans = 7 decimals:3.1415927
>> format long
>> a
a =  3.141592653589793
>> format short
>> a
a =  3.1416

1.2 向量和矩阵

一般的生成矩阵语法:

>> A = [1 2; 3 4 ; 5 6]
A =

   1   2
   3   4
   5   6
>> v = [1 2 3]
v =

   1   2   3

>> v=[1;2;3]
v =

   1
   2
   3

>> v = 1:0.1:2
v =

 Columns 1 through 9:

    1.0000    1.1000    1.2000    1.3000    1.4000    1.5000    1.6000    1.7000    1.8000

 Columns 10 and 11:

    1.9000    2.0000

>> v = 1:6
v =

   1   2   3   4   5   6

>> ones(2,3)
ans =

   1   1   1
   1   1   1

>> C = 2*ones(3,3)
C =

   2   2   2
   2   2   2
   2   2   2

>> w=zeros(1,4)
w =

   0   0   0   0

>> w=fives(1,4)
error: 'fives' undefined near line 1 column 3
>> w = rand(4,3)
w =

   0.96209384   0.63165179   0.78372775
   0.44644079   0.25433639   0.63032570
   0.40708763   0.99912857   0.93938618
   0.82736632   0.00034341   0.57440915

高斯分布(正态分布的随机变量)

用randn语句生成均值为0的,方差为1的标准正态分布:

>> w = randn(1,4)
w =

  -0.095146  -0.609136   1.395565  -0.914658

>> w = randn(1,4)
w =

  -0.55670   0.95491   1.02120   0.43640

生成分布图:

>> w = sqrt(10)*(randn(1,1000))
>> hist(w)  %下面图一
>> hist(w,40)  %下面图二

吴恩达机器学习(四)——Octave(Matlab)语言1_第1张图片
吴恩达机器学习(四)——Octave(Matlab)语言1_第2张图片
对角阵:

>> eye(5,5)
ans =

Diagonal Matrix

   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

>> eye(5,6)
ans =

Diagonal Matrix

   1   0   0   0   0   0
   0   1   0   0   0   0
   0   0   1   0   0   0
   0   0   0   1   0   0
   0   0   0   0   1   0

>> eye(7)
ans =

Diagonal Matrix

   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

2. 移动和储存数据

>> A
A =

   1   2
   3   4
   3   4
   5   6

>> size(A)      %矩阵大小,显示的是42列
ans =

   4   2

>> sz = size(A)
sz =

   4   2

>> size(sz)
ans =

   1   2

>> size(A,1)    %矩阵行数,显示的是4行
ans =  4
>> size(A,2)    %矩阵列数,显示的是2列
ans =  2
>> length(A)    %矩阵最大维度为4
ans =  4

在octave中加载数据和寻找数据:

>> pwd                             %当前所在路径
ans = C:\Users\haiya\Downloads\octave-4.4.1-w64
>> ls                              %显示当前路径的文件
>>  cd 'C:\Users\haiya\Desktop'    %跳转到某个路径
>> ls
>> load XXXX.dat                   %加载当前路径中某个数据文件
>> load('XXXX.dat')                %加载当前路径中某个数据文件
>> who                             %当前Octave中储存的变量
Variables in the current scope:

A           C           a           ans         inverseOFA  sz
>> whos                            %当前Octave中储存的变量,更详细的查看(包括size、Bytes、Class等)
>> clear XXXX.dat                  %删除某个文件
>> v = priceY(1:10)                %表示把priceY中的前10行数据存入v中
>> save hello.mat v;               %把v储存在hello.mat中
>> clear                           %删除空间中所有变量
>> who
>> load hello.mat                  %重新读取变量v,并储存在hello.mat中
>> who
Variables in the current scope:

v

>> whos
Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
        v           1x6                         24  double

Total is 6 elements using 24 bytes
>> save hello.txt v -ascii         %把v中数据储存为TXT格式,可视化

3. 操作数据

>> A = [1 2;3 4 ;5 6]
A =

   1   2
   3   4
   5   6

>> A(2,2)        %矩阵A中第2行第2列的元素
ans =  4
>> A (2,:)       %矩阵A中第2行所有元素,其中 : 表示该行或者该列所有元素
ans =

   3   4
>> A([1 3],:)    %取矩阵A中 第1行 和 第3行 的元素
ans =

   1   2
   5   6
>> A(:,2) = [33;55;66]   %对矩阵A的第2列进行赋值操作
A =

    1   33
    3   55
    5   66

>> A = [A,[11;22;33]]    %对矩阵A增加新的一列
A =

    1   33   11
    3   55   22
    5   66   33
>> A(:)                  %把A中所有元素单独放入一列(列向量)
ans =

   11
   22
   33
    1
    3
    5
   33
   55
   66
   11
   22
   33
>> A = [[11 22 33 44];A] %对矩阵A增加新的一行
A =

   11   22   33   44
   11    1   33   11
   22    3   55   22
   33    5   66   33

你可能感兴趣的:(机器学习,Matlab(Octave))