Octave 基本操作

使用Octave等高级语言时,能够更高效地学习,更快地学会算法,更快地写出算法原型。Octave是一种很好的原始语言(prototyping language),便于你来构造算法原型,快速实现算法,如果要进行大规模的部署,则再花时间用C++或Java这些语言重新实现算法就行了,因为我们知道,开发项目的时间是你的时间,机器学习的时间也是很宝贵的。如果你的学习算法能在Octave上快速实现,首先在Octave上写出算法,你就能节省大量的时间,在想法可行后,再用C++,Java实现。在机器学习领域,人们最常使用的原始语言是Octave、MATLAB、Python、NumPy 和R。

首先先示范Octave最基本的代码:

 

同样,也可以进行逻辑运算,例如 2 == 3,计算结果为false(假),这里的%后面的命令表示的是注释。注意,Octave中的不等于是“~=”,而不是“!=”,有些编程语言的不等号是“!=”。

每一行的开头“octave : x”是Octave的提示符,如果你不想看到那个提示,有一个隐藏的命令,使用 “PS1(' '); ” 引号的中间可以改为你想设置的提示符。

 

接下来谈一谈Octave的变量

现在写一个变量a,将其赋值为6,并按下回车键,显示变量a等于6。如果你想分配一个变量,但不希望在屏幕上显示结果,你可以在命令后加上一个分号,就可以阻止打印输出。

 

现在举一个字符串的例子:

变量 b = 'hi'

 

C等于3大于等于1,所以,现在C变量的值是1(真)。

 

如果你想打印出或显示一个变量,你可以像下面这样做,设a = π,如果要打印a,那么只需要键入a即可打印a:

对于更复杂的输出,有一个disp命令:

你也可以用该命令来显示字符串,sprintf是一种C语言的旧式语法,可以使用这种语法将结果打印到屏幕,sprintf命令会生成一个字符串,就是字符串 "2 decimals: 3.14","%0.2f"表示代替a的值需要放在这里,显示小数点后的两位。同时dips命令将这个由sprintf命令生成的字符串显示出来。

 

还有一些控制输出长短格式的命令:

 

下面来看一下向量和矩阵

例如,先建立一个矩阵A,分号的作用是让矩阵换行到下一行:

还有其他的输入方法,例如下面这种就和上面这一种是等效的:

也可以用同样的方法为向量赋值,建立向量V并赋值,V是一个行向量,或者说是一个1 x 3的矩阵:

如果想建立一个列向量,可以按下面这种写法:

下面是一些更为有用的符号:

这个该理解为V是一组值,从1开始,步长为0.1,一直增加到2为止(这里有点类似Python,但Python是不包括终点的,而Octave是会包括终点的),按照这样的方法,就可以得到一个行向量V,这是一个 1 x 11的矩阵。

也可以设置 “ V = 1:6 ”,这样V就被赋值为1到6的6个整数了。

 

还有一些其他的方法来生成矩阵。

例如ones(2,3)可以生成一个2行3列的元素全为1的矩阵:

如果设置 a = 2*ones(2,3),就会得到一个2行3列元素全为2的矩阵:

假设 w = ones(1,3),这是一个行向量,或者说一行由3个1组成的向量,也可以设置 w = zeros(1,3),这会生成一个1行3列的零矩阵。

 

还有很多方式来生成矩阵:

比如输入 w = rand(1,3),会得到一个随机的1行3列的矩阵。如果输入 w = rand(3,3),会得到一个3行3列的矩阵,并且所有的元素均为位于0到1之间的随机值,所以每次运行这个,都可以得到不同的随机值集合,并且都介于0和1之间。

 

如果设置 w = randn(1,3),你会得到三个数值,它们服从高斯分布,均值为0,标准差或者方差为1。

还可以设置更复杂的,例如 w = -6 + sqrt(10)*(randn(1,100)),这样就可以得到一个有100个元素的向量。如果现在用 hist(w) 命令,就可以将w绘制成一个直方图:

这是一个对随机变量w绘制出的直方图。

也可以绘制有很多竖条的直方图,比如说50个,使用命令hist(w,50):

这就是一个均值为-6的高斯分布直方图,因为是 -6 + 根号10 乘以randn(1,100),这个高斯随机变量的方差为10,标准差为根号10。

最后,还有一个生成矩阵的特殊命令,eye命令,例如eye(4)会生成一个4x4的单位矩阵:

 

如果对某些命令不清楚,可以使用help命令,例如help eye就会显示单位矩阵的帮助函数,也可以键入help rand,就会显示有关rand函数的帮助文档,甚至可以使用help help命令,来显示出help命令的帮助文档。

以上就是Octave的基本操作。

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值