Octave语言前言

  • 在硅谷的大规模机器学习中,人们个别先用Octave实现算法的根本想法,而后用其余语言(java、C++)改写。这是因为python、numpy、r语言等机器学习语言绝对于Octave、matlab更繁琐,先应用octave可能提高效率

Octave命令

https://blog.csdn.net/u011415481/article/details/49969447
https://blog.csdn.net/u011415481/article/details/49969447

数学运算命令

逻辑运算命令

  • 不等于符号为~=,不是!=
  • xor示意异或运算
变量申明命令

  • 如果咱们心愿调配变量,然而不心愿在屏幕上显示后果,能够在申明后加分号,克制打印输出
  • disp函数:能够间接将要显示的字符放入括号中
  • sprintf函数:其表白格局为:sprint(‘%d’,a);其中%d为数字,%s为字符串
  • 然而咱们发现,sprintf表白会将字符加上单引号,而用disp表白不会有单引号。disp(sprintf('%s',name))联结disp和sprintf函数,能够防止显示字符串时呈现单引号
向量矩阵命令



  • 申明矩阵时,分号示意矩阵换行
  • 申明向量,用空格 隔开是行向量,用分号隔开是列向量
  • ones是生成各元素不为0且相等矩阵的快捷方式, zeros是各元素为0的矩阵,eyes构建单位矩阵
  • rand生成数值介于0~1之间的随机数;randn高斯随机变量,产生规范正态分布的随机数
  • hist绘制直方图命令。将元素平均分到几个等距离的容器中(默认为10个),并且返回每个容器的元素个数
如何挪动、加载、操作数据

  • size返回矩阵的行数和列数,能够都返回,也能够抉择返回某一个
  • length返回向量的维度,若为矩阵,则返回矩阵的最大维度。咱们个别不将其用于矩阵


  • Octave初始时有一个默认门路,pwd查看;cd ‘’转到其余目录;ls是linux中的命令,查看当下目录的文件
  • who查看当前工作空间的所有变量,whos则是具体查看,能够看到数据维度、占用的内存空间、数据类型等
  • clear用来革除当前工作空间存储的所有变量,然而若咱们先把变量v保留在文件中,在load hello.mat后能够间接读取v变量(v变量曾经存在了hello.mat文件中)
  • save命令把数据依照二进制模式压缩存储,而且文件越大,压缩的幅度越大。咱们也能够通过把数据用acsii存成文本文档,把数据存成一个人能看懂的模式
数据计算命令
  • .*将两个矩阵中雷同地位元素相乘 ;./将矩阵中雷同地位元素相除
  • log是求e的对数,exp是求e的指数,abs求绝对值
  • -V是每个元素去相反数,V+1是每个元素都+1
  • max(A) 示意求出A中的最大值,然而须要留神,如果A是矩阵的话,是对每一列求出最大值,如果A是向量,则是间接求出最大值

向量化思维的重要意义

  • 无论octave、matlab还是python,都自带各种线性代数库。这些库通过了高度优化,容易浏览和获取。如果咱们在实现机器学习算法时,能好好利用这些库,而不是本人重构函数,不仅能进步工作效率,而且能放慢算法运行速度,用更少的代码实现更多的性能
  • 下图是两种写法,显然后者简略,这充沛表明向量化实现简略无效,因而向量化思维是重要的