我的机器学习之路 第四关

四、初识octave

1.基本操作

(1)% 表示注释
(2)~ 表示反,相当于编程语言中的!
(3)&& 表示与    || 表示或
(4)加减乘除是 + - * / 
(5)PS1("$") 表示将命令提示符换为$
(6)在命令输入完成后,加一个; 表示隐藏输出
(7)hist()可以将数据以图像的形式输出

创建矩阵的命令
(1)A=[1 2;3 4;5 6]将创建一个3*2的矩阵;
(2)B=1:0.2:2 表示创建一个行矩阵,元素为从1开始,每加0.2成为下一个元素,直到2为止;
B=1:6 表示创建一个行矩阵,元素从1开始,每次加1成为下一个元素,直到6为止;
(3)eye(4) 表示创建一个4 *4的单位矩阵;
ones(2,3)表示创建一个元素全为1的2 *3的矩阵(类似用法的还有zeros);
rand(3,4)表示元素全为(0,1)之间的随机数的3 *4的矩阵。

2.移动数据

(1)一些常用的命令
关于size()的命令
      size(A)返回A矩阵的行列数,以行矩阵输出;
      size(A,1)表示A的行数;
      size(A,2)表示A的列数;
      length(A)表示A的行数和列数中大的那个;
关于who的命令
      who 显示octave中所有变量名
      whos 详细显示
关于clear的命令
     clear(A)  删除A变量
     clear 删除所有变量
(2)从文件中读取数据
 ①先用pwd查看当前目录,用cd转到数据文件所在目录;
 ②用load加载数据文件(包含后缀),此时文件名(不含后缀)就成为了变量。
(3)存储数据到文件中
    v=a(1:10) 表示将变量a的前十个元素赋给v
    save b.txt  v  表示将变量v保存到一个b.txt文件中(该文件依然用变量v代表)
(4)操作数据
 ①A(3,2)  表示矩阵中第三行第二个元素
 ②A(3,:)  表示矩阵中第三行所有元素(可以利用这一点来给矩阵中特定元素赋值)
 ③A=[A,B] 表示将矩阵A和矩阵B左右拼接
 ④A=[A;B] 表示将矩阵A和矩阵B上下拼接
 ⑤A(:)    把A中所有元素放入一个单独的列向量中

3.数据运算

(1)关于矩阵整体的运算
     A*B   表示矩阵的乘法(需要满足A的列数=B的行数)
     A.*B  表示将A的每一个元素与对应的B的元素相除(需要满足A和B的行列数相等)
     A.^2  表示将A的每一个元素平方
     A./B  表示将A的每一个元素与对应的B的元素相除(需要满足A和B的行列数相等)
     
     exp(A) 表示以e为底形成新矩阵
     log(A) 表示以A元素的对数形成新矩阵
     abs(A) 表示将A矩阵的每一个元素绝对值
     floor(A) 表示将A的每个元素向下取整
     ceil(A)  表示将A的每个元素向上取整
     pinv(A)  求A的逆矩阵(若A无逆矩阵,可以求得伪逆)
      A+1   表示将A的每一个元素加1
       A'   表示求A的转置
(2)关于矩阵局部的运算
①max()
   * 对于行数>1的矩阵来说: max(A) 表示将矩阵中每一列中最大的元素,以行矩阵输出
    对于行数=1的矩阵来说:max(a) 表示找一行中最大的元素
       由此可得到:找矩阵中最大元素的方法——max(max(A))或者max(A(:))    
   * max(A,B)  表示对于行列数相同的A和B,新的矩阵的元素为相应位置A和B中大的那个
   * max(A,[],1) 求每一列的最大值,以行矩阵输出;
     max(A,[],2) 求每一行的最大值,以列矩阵输出;
② find()
   * [r,c]=find(A<5) 会将A中满足<5的元素的位置分别放入变量r和c中(r和c均为列矩阵)
③sum()
   * 对于行数>1的矩阵来说:sum(A) 表示将矩阵中每一列求和,以行矩阵输出
     对于行数=1的矩阵来说:max(a) 表示将一行元素求和
   由此可得到:找矩阵所有元素的方法——max(max(A))或者max(A(:))

猜你喜欢

转载自blog.csdn.net/qq_42453280/article/details/83217185