爱情 (1) 安装 (2) 北斗 (1) 毕业 (1) 变量 (1) 测绘局 (1) 测量 (2) 插件 (1) 查询 (1) 常用 (1) 成果转化 (1) 词汇 (1) 慈善 (1) 答辩 (2) 代码 (2) 电台 (1) 发泄 (1) 感悟 (4) 高程 (1) 搞笑 (5) 共产党 (1) 古诗词 (1) 管理 (1) 函数 (3) 绘图 (1) 加密 (1) 交际 (1) 教程 (4) 教育 (2) 解决 (4) 解密 (1) 精度 (1) 酒桌 (2) 开源 (2) 科技 (1) 科学 (1) 刻录 (1) 老外 (1) 励志 (5) 连续剧 (1) 恋爱 (1) 列表 (1) 领导 (1) 美食 (2) 名人 (3) 命令 (4) 区别 (1) 日记 (2) 软件 (12) 商业 (3) 时政 (1) 视频 (1) 数据 (1) 算法 (1) 投影 (2) 图论 (1) 网络 (1) 网站 (1) 卫星 (3) 未成年 (1) 慰问 (1) 文本 (1) 文件 (2) 下载 (4) 笑话 (2) 学习 (9) 遥感 (1) 疑问 (5) 营销 (1) 娱乐 (3) 源代码 (2) 政策 (1) 指导 (3) 智慧 (5) 主成分分析 (2) 抓图 (1) 专家 (1) 资料 (5) 字符串 (1) 最短路径 (1) 坐标 (1) baidu (3) Bernese (1) blog (2) c# (9) China (3) Dijkstra (1) DNS (1) doris (1) dos (1) excel (1) firefox (3) GAMIT (8) gcc (1) GIS (3) GMT (1) GPS (5) ITRF (1) linux (5) mapx (1) matlab (6) movie (4) music (3) oracle (2) pic (1) PPT (3) PROJ.4 (2) python (2) QQ (2) rinex (1) shell (2) sql (1) teqc (3) tools (1) tps (1) ubuntu (5) USA (1) website (1)

2010年4月9日星期五

与matlab软件媲美的免费Octave

http://zh.wikipedia.org/zh-cn/GNU_Octave

Octave 是一个旨在提供与Matlab语法相容的开放源码科学计算及数值分析的工具;它同时也是GNU计划成员之一。

GNU Octave


开发 John W. Eaton
最新版本 3.2.4 / 2010年1月28日
最新预览版本 3.3.50 / 2009年9月12日
操作系统 跨平台
类型 数学软件
许可协议 GNU通用公共许可证
网站 http://www.gnu.org/software/octave/


历史
该软件肇始于1988年,其初衷是提供一些化学反应设计课程的辅助工具。

系统性开发则是由John W. Eaton在1992年接手才开始的。 第一个alpha测试版是在1993年1月4日释出,1.0稳定版则是在同年2月17日释出。最新的3.2.4稳定版在2010年1月28日释出。

其名称与音乐上的八度没有直接关系。该软件乃是以一位早期开发群的成员,同时也以敏于处理数值逼近问题著称的前教授命名。

[编辑]技术细节
Octave是以C++的标准模板函式库编程而成。
Octave有自己Octave语言直译器。
Octave可以动态外挂模组扩充。
Octave的直译器可用gnuplot及Grace产生图表及打印。
[编辑]Octave语言
Octave语言是直译式及结构化(类于C语言)的编程语言,支援许多C语言的标准函式库提供的功能,同时可以使用UNIX的系统呼叫以进行扩充增进功能,但不支援以引用的方式传递参数。

Octave程式包含了许多脚本函式呼叫,它本身是以矩阵为基础并提供许多矩阵的操作函式。它并非面向对象编程语言但支援资料建构。

它的语法基本上与Matlab一致,严谨编写的程式码应同时可在Matlab及Octave执行。

由于Octave是以GNU通用公共许可证授权,所以可以自由地复制、流通与使用。Octave可在大部份的类Unix操作系统中执行,亦可在Microsoft Windows中执行。

[编辑]特殊功能
变量及函式名称自动补齐
在命令列按下TAB键,Octave会自动补齐变量,函式或档案的名称。Octave会依据光标之前的文字来补齐。

指令回溯
在互动模式下,Octave会将历次指令存在暂存盘中以俟呼叫与编辑。

资料建构
Octave包含了初步的资料建构功能,例如:

octave:1> x.a = 1; x.b = [1, 2; 3, 4];x.c = "string";
octave:2> x.a
x.a = 1
octave:3> x.b
x.b =

1 2
3 4

octave:4> x.c
x.c = string

短路逻辑算符
Octave的`&&'及`||'的逻辑算符是在短路的方式下运算(如同C语言中的相仿算符),相反于逐算子算符`&' 及`|'。

递增与递减算符
Octave如同C语言一样具有可前置或后置的递增与递减算符。

例外处理
Octave以提供初步的LISP式unwind_protect例外处理模式。通常unwind_protect的表述区段可表示如下:

unwind_protect
body
unwind_protect_cleanup
cleanup
end_unwind_protect

变量长度参数表列
Octave提供用于处理未指明参数个数时的函式呼叫机制:利用特殊的varargin作为参数来呼叫函式。

function s = plus (varargin)
if (nargin==0)
s = 0;
else
s = varargin{1} + plus (varargin{2:nargin});
endif
endfunction

变量长度回传表列
单一函式可以varargout这一特殊回传值来回传任意数目的值,例如:

function varargout = multiassign (data)
for k=1:nargout
varargout{k} = data(:,k);
endfor
endfunction

[编辑]MATLAB相容性
Octave最初便是模彷Matlab而设计,自然与Matlab有许多相同的功能。 这也使得一部分Matlab程序可以直接或经过少量修改在Octave上运行,一些软件开发小组也使用两者兼容的语法,直接开发可以同时在Matlab和Octave使用的程序。

矩阵为基础资料型别之一
内建支援复数
内建功能强大的数学函式及可扩充的函式库
使用者可自定函式

没有评论:

发表评论

浏览统计