matlab disp函数_Matlab开源替代工具Octave基础入门ML Note27

本文为吴恩达《机器学习》课程的Octave编程基础教程。介绍了选择Octave的原因、基础操作及变量定义等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是吴恩达《机器学习》视频笔记第27篇,对应第2周第9个视频。

“Octave Tutorial——Basic operations”

01

笔记

前面学了很多的机器学习的理论知识了,但是纸上得来终觉浅,绝知此事要躬行,接下来几个视频一起来学习一些机器学习编程工具Octave的一些基础编码知识。

为什么要选择Octave?

吴老师在以往的机器学习教学中,尝试过很多种编码语言来进行实验,包括C++、Java、Python的Numpy,以及Octave。结果,吴老师发现使用Octave一类的高级语言的时候,学生能高效的学习机器学习的算法、更快速的写出算法原型。

在硅谷的好多需要实际使用机器学习的公司中,他们在算法原型构建阶段都是使用Octave一类的高级语言。等到算法固化,需要生产部署的时候才使用C++、Java来进行重写以提高执行效率。

时间分两种,一种是我们开发人员开发合适的机器学习算法的时间;一种是机器学习算法在解决实际问题时耗费的计算机计算时间。第一种时间,我们通过Octave一类的语言快速构建算法来节约;后一种时间,我们通过C++、Java一类的高效语言重写固化好的机器学习算法来节约。

机器学习领域,常见的编程语言有:Matlab、Octave、Python、Numpy、R。Matlab很好,但是很贵,对我们中国的研究人员还存在被禁用的危险;而Python、R一类的对非计算机专业的同学来说不是特别友好。所以呢,最后Octave成为非常不错的一种选择。

接下来介绍一些基础的Octave操作,更详细的可以去Octave的官网看文档。

启动

在桌面上找到快捷方式“GNU Octave (CLI)”,以命令行的方式启动Octave。

9d69423af4e33703371fd9f14407268a.png

基础运算

做一些加、减、乘、除、幂指数的运算,你会发现和latex里面写数学公式差不多。也不怎么需要考虑数据类型转换啊、地板除啊之类恼人的计算机语法,看上去非常友善。

280f9338d76bf2c865e4bfae1dc15485.png

还可以做一些逻辑运算,比如:

49b33da6dcf96075fae1e2931843a3a0.png

从上面的图,你看出来了吧。判断两个数是否不等于,用的是"~=", 而不是其它语言常用的"!="。另外,注释符号是"%"。用过matlab的同学可能也发现了,它的语法几乎就是照搬Matlab,非常友好。

可以使用”PS1('>>')"命令将Octave前面提示去掉,如下图:

245dc321618ca17fdca5b1c87c60fcc8.png

变量

还可以定义变量,像下面这样:

2f8d823c3fff1f534076006d430f6094.png

上图中注意,“a=3;",这行命令后面加入了一个分号";",然后Octave下面就不再打印结果出来了。

还可以定义字符串变量,还可以定义一个bool型变量,分别如下图的b、c。

a0d368a0f3af453f3ad18f5651c2c9a7.png

还有类似于Python语言中print函数的存在,disp()函数,disp的使用也是相当的灵活。

4f4c6cbb8d9ff8f1456c401e037c8885.png

上图最后一行的disp中sprintf函数的语法和c语言的语法是不是很像?所以从c语言过渡过来也是很丝滑。

向量和矩阵

定义一个3*2的矩阵:

6241b602bcc3f86b0cc291da45bfb5a4.png

定义中的分号就是矩阵的换行。

定义向量和定义矩阵本质上是一样的,下面这样是定义一个行向量:

c46863816a275e48fb307aa8d14bd6b0.png

如果定义列向量呢?

8747d31cf545360287fb365a5654bf63.png

还有一种比较有意思的向量的定义方法,下图中的办法可以定义一个从1开始到2结束间隔(步长)为0.1的向量。

86f8322cf6d316350de7b27d2ac07375.png

b595826e553e6c14d122217e5bd12229.png

或者省略步长:

128766be41c14595f05f52d1ac2589b8.png

还可以定义全为1的矩阵:

456de03d6e20b1fc4975e6f408f3b56b.png

可以灵活使用ones(m, n)

828c5155ed6b9923c8b95768a12bf26a.png

当然,类似的办法可以用函数定义全0的矩阵,或者随机数矩阵。

3127aa6d71975ead1b52ff8cf200f56f.png

灵活使用上面的这些基础操作,可以得到一些比较复杂的数。比如按照公式得到一组随机数,这个随机数如果用randn函数,它们服从高斯分布。

41af3ae3db4e1757484b1b8066e42b2f.png

上图得到一个1行10000列的随机数向量,使用hist(w)函数画一下直方图看看:

405010700310e260ca51935d6de5ca56.png

还可以让直方图的竖条来的更多一点。

64693807194e64afe01581362c3b1bef.png

定义单位阵的函数是eye().

db023edfdfa0c6a854f48fb2d841542b.png

帮助

Octave的帮助也是很方便的,直接使用help函数即可。

dfda73732c150bb82c43d859868673e0.png

以上就是Octave基础的快速介绍,从下次视频开始将会讲解如何使用Octave来处理数据。

02—视频
关注公众号:e5524357e0eb38cd8287b7daf7fe4f67.png加作者好友,进入学习群:821c1406c14f13d35ca548e9226e1ab5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值