OriginPro LabTalk学习笔记3——变量

本文介绍了OriginPro LabTalk的九种数据类型,包括Constant、Double、Integer、Dataset等,并详细阐述了变量声明、数据类型转换、作用范围以及如何使用Range变量进行数据访问。LabTalk中的数据类型默认为double,字符串变量需要加$,对象操作采用xx.xx语法。变量可分为全局、会话和局部,使用@global系统变量可控制变量作用范围。

1. LabTalk包含九种数据类型:

double, integer, constant, dataset, string, stringarray, range, tree and graphic objects。

Constant:常量

Double:双精度浮点数

Integer:整型

Dataset:数组

String :字符串

StringArray:字符串数组

Range :区域/命名范围

Tree :树结构

Graphic Object:图形化对象

1. 声明数字常量的方法

const EM=0.5772157

习惯上,数字常量名用大写,变量名用小写,以示区别。使用数字常量的好处有:

                1、  含义清楚。

                2、  一改全改,使用方便。

2. 默认情况下为双浮点型double。如果结尾有 $符号,默认为字符串型。

2. 标识符:用来标识变量名,函数名,数组,文件名等等称为标识符。

LabTalk规定只能由字母,数字和下划线三种字符组成,且第一个字符必须为字母或下划线,例如:

                                              _test,test4,test,TEST,test_,_1,_2,…

值得注意的是:

        1、在LabTalk中,大写字母与小写字母是被认为是两个不同的字符。因此,test与TEST是不同的变量名。

        2、在变量的使用过程中,不必“先定义,后使用”。这也就是说,即用即取!

3. range 命名范围。range变量是LT独有的数据类型。

range[1] 代表range中的第一个元素。

range[1:5] 代表range的第一个到第五个值。

range     变量名=[窗口名]层名!数据区

          注意,range变量可用于工作表,矩阵和图型中。其对应的使用方法如下:

          range rangeName = [BookName]SheetNameOrIndex!ColumnNameOrIndex[RowBegin:RowEnd]
通过这种变量我们可以在不激活窗口的情况,随时随地的访问数据。也这是说,在Origin中,有Book1,Book2,Book3,每个Book中只有一个Sheet且有三列,当前窗口为Book1,那么我们就可以使用range来访问Book2和Book3里面的数据。

4. string 字符串变量的读取需要增加$;将已定义字符串赋值给另一个字符串,也需要增加$. 所以,假设aa和cc是两个已定义字符串。如果要将cc赋值给aa,语法如下 aa$=cc$.

所以,建议涉及到字符串变量时,字符串变量的后面都加上$防止出错。

5. object 对象。对象通常xx.xx的语法。

对象名.属性

对象名.方法(参数列表)


page.= // 查看对象的属性

// 层级包含关系
// page -> worksheet -> column

6. 数据类型

在数据计算时,可不必转换数据类型,因为在LabTalk中,数据类型默认是double型。此外,如果声明了数据的类型,如int a=1,b=3, 那么计算要是整型(int)还是双精度浮点型(double)?答案是:double型。这一点与其它高级语言有所不同。这样当我们进行数据计算时,不用担心数据类型的影响。

7. 作用范围

根据变量的作用范围,可以变量分为全部变量(Global)、会话变量(Session)和局部变量(Local)。一般情况,没有声明变量时(即用即取),这样得到的变量为全部变量;而用变量声明语句定义变量,则为会话变量;在{}符号内的变量则为局部变量。如下程序:

[Main]

       double a=5;                                                     //定义Session 变量

       type -b "Session Variables$(a)\n";

       b=7;                                                                  //定义Global变量

       type -b "Global Variables$(b)\n";

       loop(i,1,$(a)){

              double a=10;                                            //定义Local变量

              type -b "LocalVariables $(a)";

       }

        有时,我们也可能为程序的可读性,希望在变量使用之前先定义,但又希望是全局变量。为此,就不得不使用系统变量:@global 来强制将Session变量变为Global变量。它有两个值0和1,表示是否将声明的变量作为全部变量,0表示否,1表示是。如下程序:

[Main]

       @global=1;

       double alpha=1.2;

       double beta=2.3;

       Function double myPeak(doublex,double x0){

              doubley=10*exp(-(x-x0)^2/4);

              return y;

       }

       @global=0;

       double gamma=3.45;

        在上例中,除了gamma 是Session变量,其它全是Global变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值