文章标题 : 介绍 GNU Octave scrip
来源:互联网 发布:金字塔交易软件官方 编辑:程序博客网 时间:2024/06/06 17:30
http://forum.ubuntu.org.cn/viewtopic.php?t=254511
Gnu Octave是一款与matlab类似的数值计算工具。本文根据我自己的使用经验简单介绍一下如何使用GNU Octave的脚本。
首先说明GNU Octave脚本的功能。Gnu octave脚本就是能够写出一个脚本文件并告诉shell通过调用ocave代码解释器来解释代码。使用的一个例子:
比如我们有一个存有数据的文本文件,我们需要以此文本文件作为shell下命令的一个输入参数,完成基于此文件内部数据的数值处理。假设数据文件为 inputdata.dat,我们通过执行一个脚本 (比如名为processdata)
代码:
./processdata inputdata.dat
就完成了我们想要做的工作。
让我们一步步的来。
Step0:准备工作
安装了octave就可以了,很简单。
Step1. 让octave作为解释器
我们知道bash脚本的第一句是
代码:
#!/usr/bash
其目的是要让我们在执行该脚本的时候告诉系统让bash座位解释脚本内语句的解释器。
由此类比,GNU Octave的脚本的关键就是在脚本的第一句用
代码:
#! /usr/bin/octave-3.0.1 -qf
来告诉内核脚本内的语句的解释器为octave。
一个例子:
1.首先编辑文件:
$ vim testoctave:
代码:
#! /usr/bin/octave-3.0.1 -qf
printf ("%s\n", program_name ());
arg_list = argv ();
for i = 1:nargin
printf (" %s\n", arg_list{i});
endfor
printf ("\n");
printf ("%s\n", program_name ());
arg_list = argv ();
for i = 1:nargin
printf (" %s\n", arg_list{i});
endfor
printf ("\n");
这个简单的脚本实现了打印程序的名称(printf ("%s\n", program_name ());)以及打印输入的变量( arg_list = argv ();
for i = 1:nargin
printf (" %s\n", arg_list{i});
endfor)
正如上面部分所说:其中的第一行 #! /usr/bin/octave-3.0.1 -qf 是告诉shelll用octave为解释器。
有matlab或者octave基础的同学都可以看出脚本内部除去第一句较为特殊外,其余的都为普通的octave命令。
2.为testoctave加入可执行权限
代码:
chmod u+x testoctave
3. 在bash下执行之
代码:
./testocave inputfile1 inputfile2 inputfile3
那么根据程序设置应该是如下的输出:
2. testoctave
3. inputfile1
4. inputfile2
5. inputfile3
Step2:进阶
我们再看看以下的例子:
代码:
#! /usr/bin/octave-3.0.1 -qf
printf ("%s\n", program_name ());
arg_list=argv ();
for i=1:nargin
data1=load(arg_list{i});
figure;
plot(data1(:,1),data1(:,2));
print -deps data.eps;
endfor
printf ("%s\n", program_name ());
arg_list=argv ();
for i=1:nargin
data1=load(arg_list{i});
figure;
plot(data1(:,1),data1(:,2));
print -deps data.eps;
endfor
上面的脚本中更加的有实用性,它通过读入数据,并绘制了图形。
虽然只是简单的实现了脚本对数据的读入和画图,但是只要data1变量能够接受到输入文件中的数据,那么我们可以以此做任何我们想要实现的数值处理。
我在终端下面这样输入命令:
step1: chmod u+x readdata; #加入可执行权限
step2: ./readdata inputfile
ok,功能实现,很高兴看到目录里出现了该数据的图像
代码:
总结一下 其实关键点就在:
1. #! /usr/bin/octave-3.0.1 -qf
2. arg_list=argv ();
3. data1=load(arg_list{i});
1. #! /usr/bin/octave-3.0.1 -qf
2. arg_list=argv ();
3. data1=load(arg_list{i});
我使用这个功能是因为我需要用数值处理的脚本处理我的rsot软件产生的大量的数据文件(一些很多很大的矩阵),有了这样的脚本我就能够实现对数值的批量处理,希望对大家有所帮助。
===================新修改==============
那个
代码:
#! /usr/bin/octave-3.0.1 -qf
中的 -qf选项不是必须的octave -q时是让其启动时不显示一些介绍性的信息
-f选项最好不要用 使用该选项则不会读取 .octaverc等文件的设置
其实简单一点的话用
代码:
#! /usr/bin/octave
就好了ps: #!据说叫魔法字符串什么的
_________________
代码:
其实我是个Debian GNU/Linux用户
Octave script :http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=254511
Octave中文:http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=318969
最后由 thorne 编辑于 2011-01-13 13:14,总共编辑了 1 次
页首
0 0
- 文章标题 : 介绍 GNU Octave scrip
- gnu octave
- GNU Octave & Scilab
- Octave 介绍
- GNU Octave (Similar to Matlab)
- 几个关于GNU gprof的介绍文章
- Octave 介绍与学习
- 对 GNU Radio 进行 Octave 分析
- GNU Octave 编辑器模式崩溃解决方法
- 文章标题Git及Git Flow介绍
- GNU介绍
- 5-1章 Octave介绍
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- Android学习第七篇——ViewPager引导页
- QPSK Transmitter and Receiver
- greendao创建关联表的数据库
- windows server 2008 w3svc服务无法启动,错误 1068:依赖服务或组件无法启动
- python中的random模块学习
- 文章标题 : 介绍 GNU Octave scrip
- POJ 1002
- SDWebImage 中简单的清除缓存
- 观察者模式
- 聚集索引和非聚集索引
- CSU 1711 Kinfolk【模拟】
- 主元素-----lintcode
- 求a~b内与n互素的数的个数 容斥原理
- dump和coredump