说好昨天更新的这篇文章被更高优先级的论文修改工作和练车硬是推到了今天!Octave我还真是第一次接触,不过如果有一定Python编程或者Matlab编程基础的童鞋学习起来还是炒鸡快的,反正我是觉得一些基本的使用还是挺简单的,我学习Octave也主要是为了跟着Andrew老师学习ML,老师那么大牛,跟着他的课程内容设置走和使用他推荐的工具没错哈哈。
今天的分享内容为以下三部分构成:首先我会简单介绍一下Octave,毕竟认识它时间还不久,我也是刚上道的萌新,所以就只会浅浅介绍一下它是一个什么东东以及可以用来干嘛这些;接着就是Octave如何在Mac操作系统上的下载安装,不得不再次感叹,Mac是真的好用呀?;最后是分享我跟着Andrew老师课上学习到的Octave的基本使用。废话不多说,开始吧!
GUN Octave官网(https://www.gnu.org/software/octave/)是这么描述的:Octave是一门专门用于科学计算编程的语言(Scientific Programming Language),并有以下三个特点:
1、强大的内建画图和可视化工具的面向数学的语法(Powerful mathematics-oriented syntax with built-in plotting and visualization tools)
2、这点很重要,免费!并且在各种操作系统平台上都可以运行(Free software, runs on GNU/Linux, macOS, BSD, and Windows)
3、向下兼容很多Matlab脚本(Drop-in compatible with many Matlab scripts)
Octave的语法和Matlab几乎一样,比如我学的是Octave但是做作业是用的Matlab,不过由于语法都是一样的所以直接用就好了,这炒鸡方便我这种电脑上没有足够存储空间安装Matlab客户端但是又想动手实践敲代码巩固所学知识的童靴!终端运行Octave让我既学到了Octave(Matlab)又不占用我电脑太大的空间,可是说是很?了。
接着再来翻译一下官网上对Octave的介绍吧。
GUN Octave 是一门最初被发明用于数值计算的高级语言,它使用一种与Matlab几乎完全兼容的语言,为解决数字上线性和非线性问题、执行其他数值实验提供了方便的命令行界面(Command Line Interface, 简称CLI)。Octave有大量的可以用于解决常见数值线性代数问题,求解非线性方程,求得普通函数的积分,处理多项式,求得普通微分和微分代数方程积分的工具。它也非常易于通过用户用Octave自带语言编写的自定义函数,或使用由C,C++和其他语言编写的动态加载模块来进行扩展和定制。
总之,Octave最核心的功能就是数值运算啦,高数线性代数概率论的什么相关问题和解决和处理它都不在话下!
Mac下安装超简单,首先打开终端,敲入命令
brew -v
如果显示出了homebrew的版本信息那就说明电脑上已经不知道什么时候安装好了这款为MacOS量身定制的缺失包管理器
那就输入命令将homebrew的版本更新一下:
brew update
如果提示command error,那就必须要先把homebrew给安装了,复制粘贴?的命令到终端回车就好,不过还是推荐去官网上(https://brew.sh/)看看
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装好了之后,就再输入一下 brew -v,确定安装成功。
接下来就很简单了,
直接终端敲入
brew install octave
然后等等等.....我下载的时候还花了蛮长时间的,毕竟Octave功能强大,体积不可能小。
下载安装成功之后应该是有提示的,如果不确定的话就直接终端敲
octave
看能不能把octave运行起来,如果进入了octave CLI(见下图),就代表Octave已经安装好了并等着你尽情地去探索它啦!撒花?
创建一个大小为3x2的矩阵A(create a metrix A whose size is 3 by 2)
同一行不同的列用逗号相隔,不同行用分号;相隔
size(A)获取矩阵A的大小,它是一个1x2大小的矩阵,第一个元素代表矩阵A的行数,第二个元素代表矩阵A的列数
length(A)返回的是矩阵A的行数,其实这个这个方法一般用在矢量vector上,用于获取其维度。
A(:,3)有点像Python当中的切片处理操作,获取元素所在的行数和列数用逗号相隔,:代表选中所有的行或者列。A(:,3)表示的是得到位于矩阵A第三列的所有元素,是一个3x1的vector。A(:,2:3)则是得到位于矩阵A第二、三列的所有元素,返回的是一个3x2的矩阵。
Demo看?
rand(3, 2)会创建一个由0-1范围内的随机数构成的3x2的矩阵
矩阵与矩阵、实数的相乘都是用 * 来表示
A’表示矩阵A的转置
命令结尾处加;和不加;之间的区别是会不会将创建的变量内容或者调用函数返回的结果显示出来。带;是不会显示的,不带是会自动显示的,按需添加吧~
还有一个很常用的命令,magic()
magic(N)(N为>=3的自然数,如果小于3的话返回的就不是magic matrix)命令将返回一个由1到N^2这N^2数排列形成的任意一行、一列元素以及两条对角线元素和均相等的NxN大小的矩阵。
如果想了解某个方法的具体描述的使用,可以
help 命令后➕方法名 便可查看
还有很多常用的命令,如画图、解复杂方程等,有需自取Octave英文版教程(里面很多例子,看起来不会很吃力滴)!不用感谢爱分享的小可爱啊哈哈哈哈。下次见吼~
链接: https://pan.baidu.com/s/1vPrS3XtXvD9IZuL8YMhvNg 提取码: j1mw