文章标题 : 介绍 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)
正如上面部分所说:其中的第一行 #! /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

上面的脚本中更加的有实用性,它通过读入数据,并绘制了图形。
虽然只是简单的实现了脚本对数据的读入和画图,但是只要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});

我使用这个功能是因为我需要用数值处理的脚本处理我的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