爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6254|回复: 2

[netcdf] GNU Octave:

[复制链接]

新浪微博达人勋

发表于 2013-6-24 17:49:17 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
http://www.gnu.org/software/octave/

GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.

Octave is distributed under the terms of the GNU General Public License.

Octave is freely available at http://www.gnu.org/software/octave/download.html

评分

参与人数 2金钱 +20 贡献 +2 收起 理由
letsdo8 + 10
mofangbao + 10 + 2

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-24 22:32:26 | 显示全部楼层
本帖最后由 bjj948 于 2013-6-25 06:00 编辑

上面的帖子是最应该在matlab版块的。

artmunich(艺术慕尼黑)版主将其移到数据网址版块,也对也不对。

对是因为OCTAVE与matlab名字不一样,不对是因为OCTAVE某种程度上可称为免费版(GNU联盟下的)matlab。

也许matlab版块将来会是matlab/Octave/Scilab版。

评分

参与人数 1金钱 +10 收起 理由
letsdo8 + 10

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-25 06:04:48 | 显示全部楼层
http://blog.sina.com.cn/s/blog_5f234d470101bovh.html
GNU Octave研习——相比MATLAB的个性

        Octave成为一个系统开发项目后,一直试图兼容MATLAB。但是这种兼容不是无原则的模仿。Octave的开发者大多也都是MATLAB的高手,他们实现一个和MATLAB兼容功能的时候,都会充分考虑是否值得实现;以及考虑怎么提高这个功能的性能。
        特别的,Octave的开发者本着实用的奥卡姆剃刀原则,瞄准可能使用到Octave的研究人员群体,大胆的放弃实现一些MATLAB的功能,确保Octave够用就好。
        再有,Octave主要运行在类UNIX系统下,兼顾了类UNIX用户的习惯,在某些功能上给出了多种选择(比如注释)。
        以下是Octave和MATLAB的主要区别。有些是Octave的个性和特性,高于同功能的MATLAB实现的性能。
        由于MATLAB和Octave都处于开发之中,以下所列的各种不同也许很快就不存在了,请注意。


1.递加、递减运算符
    Octave支持递加、递减运算符,如x++,y--
2.程序块的结束
    Octave既支持和MATLAB兼容的end关键字,也支持独有的关键字"endblock",如endfunction、endif等。Octave之所以采用这种形式,是觉得MATLAB的因为使用同一个end而导致函数结构混乱,分不清函数的层次。
3.注释
    Octave既支持和MATLAB兼容的%,也支持linux系统通用的#作为注释的引导符。
4.字符串
    Octave使用""(双引号)和''(单引号)都是可以的。
5.函数嵌套
    Octave的作者认为MATLAB的函数嵌套引起的问题比解决的问题,于是在Octave中基本上可以认为不支持嵌套。
6.核心函数
    MATLAB的大部分常用的核心函数(即那些不包含在toolbox中的函数)都已经在Octave中实现了。没有实现的函数,大多是专用与某项功能的函数且这项功能Octave并没有实现(GUI、ActiveX等)。
7.即时编译器(JIT)
    MATLAB包含一个Just-In-Time编译器,用于加速for循环。Octave没有实现这个功能,所以在处理循环的时候可能会比MATLAB慢。这就要求,我们使用Octave编写的代码必须自己实现向量化。有关向量化的问题,可以参见这里。
8.绘图
    Octave使用gnuplot,所以绘图功能是受限于gnuplot的功能的。最新开发的版本正在试验使用OpenGL实现3-D的绘图。
9.GUI
    目前,Octave没有实现与MATLAB GUI的兼容。因为Octave的用户大多并不需要一个GUI,或者即使有GUI,他们也不用。所以他们并不怎么对开发一个与MATLAB的GUI类似的东西感兴趣。
    不过,正在试验的一个QtHandles项目可能会实现和这种兼容。
10.Simulink
    Octave没有支持Simulink。主要原因是开发人员认为Simulink模型是落后于研究的,并且缺少灵活性,在实际的研究环境中基本不会用到。这也表明了Octave开发者和使用者的群体:主要是面向前沿研究的,需要个性化定制数值计算的工具。
11.工具箱
    Octave是一个社区项目,工具箱都是由爱好者资源提供的。所以在和MATLAB工具箱的兼容性上是不怎么考虑的。
12.短路&和|运算符
    解决了MATLAB的bug?
13.超定、欠定和奇异矩阵的求解器
        比MATLAB更好的求解算法。
14.Octave扩展
    为了保持和MATLAB最大兼容性,特别是需要和MATLAB用户交流代码的时候,避免使用仅被Octave支持的语法,比如注释、语句块的结束关键字等。
15.函数的书写
        Octave允许在命令行中写函数。这是MATLAB不支持的。
16.续行符
        Octave除了MATLAB样式的...之外,同时支持使用进行续行。
17.索引变量
        MATLAB只能索引一个有名字的变量;Octave允许进行这样的索引:[3 1 4 1 5 9](3)
18.计算精度
        Octave默认的数字类型是IEEE754双精度,即硬件浮点,依计算机的硬件不同而不同,所以计算速度是很快的。
        根据需要,你可以考虑使用其他内置类型,改变精度,比如int64,具有63位的精度;如果使用无符号数,uint64,将具有64位精度。
        符号包中的vpa()函数用于给出可变精度的符号数值,使用软件方法实现任意精度。速度远比硬件精度慢。当下,Octave的符号包几乎处于无用状态,因为它几乎不能处理数组类型,而基于数组的运算才是Octave的精华。
当下,Octave的符号包几乎处于无用状态,因为它几乎不能处理数组类型,而基于数组的运算才是Octave的精华。 Jordi Gutiérrez Hermoso已经捐出$5000,希望有人能够实现符号包的数组计算功能。
        数值的精度并不是那么重要,采用高效可靠的数值近似算法才是王道!


主要参考文献:
http://wiki.octave.org/FAQ#Porting_programs_from_Matlab_to_Octave
http://octave.sourceforge.net/

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
letsdo8 + 10 + 2

查看全部评分

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表