ScilabScilab 在启用数值计算和可视化方面都与 GNU Octave 非常类似。 Scilab 是世界上广泛存在的工程和科学应用程序所使用的一种解释器和高级语言。
Scilab 诞生于 1994 年,它是由法国的 INRIA(Institut national de recherche en informatique et en automatique)和 ENPC(École Nationale des Ponts et Chaussées)设计的。从 2003 年开始 Scilab 开始由 Scilab Consortium 进行维护。
Scilab 包括一个很大的数学函数库,可以利用使用 C 和 Fortran 之类的高级语言编写的程序进行扩充。它还有重载数据类型和操作的能力。它包括一个集成的高级语言,不过这种语言与 C 语言稍微有些区别。
Scilab 中有很多工具包提供了 2-D 和 3-D 的图形动画、优化、统计、图标和网络、信号处理、混合动态系统模拟和仿真以及其他许多由社区所贡献的功能。
在大部分 UNIX 系统上都可以使用 Scilab,在较新的 Windows 操作系统上也可以使用。与 GNU Octave 一样, Scilab 也有很好的文档。由于它是一个欧洲的项目,因此还可以找到很多使用除英语之外的其他语言所编写的文档和文章。
在启动 Scilab 之后,就会显示一个窗口让我们可以与之进行交互(如图 5 所示)。
图 5. 与 Scilab 进行交互在这个例子中,先是创建了一个向量(t),其值的范围从 0 到 2PI(步进大小为 0.2)。然后生成了一个 3-D 图形(使用 z=f(x,y), 或者说是 xi,yi 点处的一个表面)。图 6 给出了所生成的图形。
图 6. 图 5 中的命令所生成的 Scilab 图Scilab 中包括很多库和函数,它们可以使用最少的复杂性来绘制图形。下面是一个生成简单三维柱状图的例子:
-->hist3d(5*(rand(5,5));
首先,rand(5,5) 会构建一个 5,5 大小的矩阵,其中包含了一些随机值(其最大值为 5)。这个矩阵被传递给函数 hist3d。所生成的柱状图如图 7 所示。
图 7. 生成随机的三维柱状图Scilab 和 Octave 非常类似。它们都具有很大的社区参与基础。Scilab 是使用 Fortran 77 编写的,而 Octave 则是使用 C++ 编写的。Octave 使用 gnuplot 来实现可视化;Scilab 则提供了自己的库。如果非常熟悉 Matlab,那么 Octave 就是一个很好的选择,因为它努力实现了与 Matlab 的兼容性。Scilab 包括了很多数学函数,因此非常适合进行信号处理。如果仍然不确定要使用哪个工具,可以全部尝试一下。它们都是很好的工具,可以使用它们来完成不同的任务。
MayaViMayaVi 在梵语中的意思是魔术师,它是一种数据可视化工具,绑定了具有强大可视化工具包(VTK)的 Python 来进行图形化显示。MayaVi 还提供了一个使用 Tkinter 模块开发的图形用户界面(GUI)。Tkinter 是一个 Tk 界面,通常都与 Tcl 一起使用。
MayaVi 最初是为 Computational Fluid Dynamics(CFD)作为一个可视化工具而开发的。当人们认识到它在其他领域中的效用之后,它就作为一种通用科学数据可视化工具重新进行了设计。
MayaVi 背后的魔力来自于 VTK。VTK 是一个用来进行数据可视化和图像处理的开放源码系统,它在科学社区中被广泛地使用。VTK 通过为 Tcl/Tk、Java 编程语言以及 Python 加上 C++ 库所提供的脚本化接口而封装了很多功能。VTK 在很多操作系统上都是可移植的,包括 UNIX、Windows 和 MAC OS X。
围绕 VTK 的 MayaVi 外壳可以作为一个 Python 模块从其他 Python 程序中导入,并通过 Python 解释器来编写脚本。MayaVi 所提供的 tkinter GUI 允许进行过滤器的配置和应用,以及在可视化基础上渲染一些灯光效果。
图 8 是在 Windows 平台上使用 MayaVi 进行可视化的一个例子。
图 8. 使用 MayaVi/VTK 显示的 3-D 可视化(心脏 CT 扫描图)MayaVi 是在 Python 脚本语言中扩展 VTK 的一个有趣例子。 |