共计 1356 个字符,预计需要花费 4 分钟才能阅读完成。
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,都自带各种线性代数库。这些库通过了高度优化,容易浏览和获取。如果咱们在实现机器学习算法时,能好好利用这些库,而不是本人重构函数,不仅能进步工作效率,而且能放慢算法运行速度,用更少的代码实现更多的性能
- 下图是两种写法,显然后者简略,这充沛表明向量化实现简略无效,因而向量化思维是重要的
正文完