MxeOctave 图形化 Windows 界面 以及其他 Octave 工具包的安装
一直在寻找 Matlab 的替代开源软件,Octave 是最值得推荐的。除了提供最基本的计算工具包外,Octave Forge 项目还额外提供了很多算法工具,包括自动控制工具包和信号处理工具等,相对于 FreeMat,Octave 的工具更加全面,相对于 Scilab,Octave 的语法更接近 Matlab,这意味着很多为 Matlab 编写的算法都可以被 Octave 使用。用于 Matlab 的帮助,也可以用于 Octave。
早期的 Octave 没有图形化界面,都是命令行式的,但官方预计从 4.0 开始以图形界面为默认界面。Octave 是 GNU 项目,可用于 Linux 系统,也可用于 Windows 系统。在 Windows 下安装使用 Octave 有两种方法,一种是通过 Cywin 环境来安装使用,另一种是使用 MxeOctave 软件。
MxeOctave
是官方推荐的用于 Windows 系统的图形界面程序。Cywin 是不错的 windows 下使用 linux 程序的环境,但配置稍微复杂,尤其是作者本人在配置使用图形界面时就卡住了,而没有图形界面,Octave 的绘图输出是很“丑陋”的。本着简单易用的原则,这里推荐大家使用
MxeOctave
软件。先给出
MxeOctave
的美照一张:
图1.
接下来讲解
MxeOctave
的下载安装,以及 Octave 工具包的安装过程。
一、MxeOctave 的下载
如果你觉得下面的叙述过于复杂,可以直接到
http://mxeoctave.osuv.de 进行下载,并跳过本小结内容。
Octave 的官网非常简洁,我们直接点击“Download”进入下载界面;
图2.
下载页面叙述了 Octave 支持的操作系统,没错,有 Mac 版本哦~
图3.
我们看到,Windows 系统下有两种安装使用 Octave 的方法,这里选择 MinGW 方式,我们进入了 Octave 的 Wiki 页面;
图4.
我们选择第一项”MXE Builds“。
二、MxeOctave 的安装和使用
下载完
MxeOctave
后即可以双击安装,安装完成后双击桌面上的”Octave-3.8.2 (Experimental GUI)“图标运行带界面的 Octave,或通过”Octave-3.8.2 (Command Line)“开启命令行模式。
三、工具包的安装和使用
对于一般应用,到这里已经足够了,但是很多使用计算工具的小伙伴们,会发现
Octave 没有提供给我们更高级的工具,而这才是我们所急需的。此时
Octave Forge 可以隆重登场了。通过点击 图3 中的”GNU Octave 3.6.4 and Octave Forge Packages“的连接 或 在 SourceForge 上访问 Octave Forge 的主页来下载”Octave Forge Packages“。Octave Forge 提供了“Individual Package Releases”使得我们可以单独下载每一个算法工具包。
以 Control-2.8.0 工具包为例,我们下载”control-2.8.0.tar.gz“到本地目录(假设为”D:\OctavePkg\“),运行”
Octave-3.8.2 (Experimental GUI)“,输入以下命令来安装工具包:
>>pkg install D:\OctavePkg\control-2.8.0.tar.gz
注意”>>“是 Octave 的提示符。
安装成功后会提示使用”news control“命令查看 control 工具包的更新内容。Octave 不是一开始运行就加载所有的工具包,因为加载过多的在本次计算中不一定会使用上的工具包会影响启动速度和性能。所以我们需要使用以下命令来手工加载工具包:
>>pkg load control
关于 pkg 命令的更多使用方法可以通过”help pkg“来获得。
四、使用 Octave 和工具包的例子
我们以《Feedback Control of Dynamic Systems 6th》书中2.1节,Fig2.3 所示的例子为作为初涉 Octave 的起点。该例子是为 Matlab 编写,通过该例子,我们可以看到 Octave 是与 Matlab 完全兼容的。在使用该例子之前,需要先加载”control“工具包(下载、安装和加载该工具包的过程如上文所述)。
接下来在 中输入:
num=1/1000;
den=[1 50/1000];
sys=tf(num*500, den);
step(sys);
输出结果如下图所示:
图5.
书中用 Matlab 输出的原图如下:
图6.
可见,结果是完全一致的。