在LabTalk中,其运算符有以下几类:
1、 算术运算符(+ - * / ^ )
2、 自增、自减运算符(++ --)
3、 关系运算符(> >= < <= == !=)
4、 逻辑运算符( && || )
5、 赋值运算符(= += -= *= /= ^=)
6、 条件运算符(? :)
7、 下标运算符( ( ) )
8、位运算符(& | )
一、算术运算符
+:加法运算符,或正值运算符(X+Y),或连接运算符(主要用于字符串的连接)
例如:
>>1+2=
1+2=3
>>
>>str_1$=”Hello”
>>str_2$=”World”
>>str_3$=str_1$+” ”+str_2$
>>str_3$=
Hello World
>>
-:减法运算符,或负值运算符(X-Y)
例如:
>>1-2=
1-2=-1
>>
*:乘法运算符(X*Y)
例如:
>>2*3=
2*3=6
>>
/:除法运算符(X/Y)
例如:
>>1/2=
0.5
>>1/3=
0.33333333333333
>>
^:幂运算符(X^Y)
例如:
>>3^40=
5.6177910464447E306 //这是Origin里最大的正整数
>>0^5=
0^5=0 //0^n:n>0 返回0,n<0返回--,--:表示缺省值
>>0^(-5)=
0^(-5)=--
>>
这里需要说明的是,在数据计算时,可不必转换数据类型,因为在LabTalk中,数据类型默认是double型。此外,如果声明了数据的类型,如int a=1,b=3, 那么计算要是整型(int)还是双精度浮点型(double)?答案是:double型。这一点与其它高级语言有所不同。这样当我们进行数据计算时,不用担心数据类型的影响。
例如:
>>int a=1,b=3
>>a/b=
0.333333333333333
>>int c=1
>>double d=3.0
>>c/d=
0.333333333333333
>>
现在我们可以对Sheet中的列进行数据计算,如下:
>>col(1)=data(-10,10,0.001) //对第一列赋值
>>col(2)=sin(col(1)) //第二列数等于第一列数的正弦
>>col(3)=cos(col(1)) //第三列数等于第一列数的余弦
>>col(4)=col(2)+col(3) //第四列数等于第二列加上第三列
注意,在默认情况下,worksheet中只有两列,当程序中出现列数要大2时,这时,后面的列将自动添加到worksheet,如上例,列3我列4就是自动加入的。
二、自增、自减运算符
++: 变量加1;
--: 变量减1;
例如:
>>for(ii=1;ii<=5; ii++) // Ctrl+Enter 试下for(ii=5; ii>=1;ii--)
{type “$(ii)”;}
1
2
3
4
5
>>
注意, ++ 和 -- 只能用在变量名之后,即variable++ 或variable--。
三、关系运算符
>:大于
例如:
>>aa=5
>>if $(aa)>3 type “aa>3”
aa>3
>>
>=:大于或等于
例如:
>>aa=5
>>if $(aa)>=5 type “aa>=5”
aa>=5
>>
注意,< 和 <= 与> 和 >= 类似。
==:等于 // = :赋值
例如:
>> col(1) =normal(10)*3+5 //产生10个数
>>bb=max(col(1)) //第一列的最大值
>>if $(bb)==5 type “bb is equal to 5”
>>
!=:不等与
例如:
>>cc=min(col(1)) //第一列的最小值
>>if $(bb)!=2.5 type “ bb != 2.5”
>>
四、逻辑运算符
&&:逻辑与(&:位与运算符)
例如:
>>aa=5;
>>bb=-6;
>>if ($(aa)>=0 &&$(bb)<=0) type “True!”
True!
>>
||:逻辑或( |:位或运算符)
例如:
>>aa=5;
>>bb=6;
>>if ($(aa)==5 || $(bb)==6) type “True!”
True!
>>
五、赋值运算符
前面已经介绍了“=”赋值运算符,在LabTalk中,还有其它几种赋值运算符。
X+=Y:相当于 X=X+Y
X-=Y:相当于 X=X-Y
X*=Y:相当于 X=X*Y
X/=Y:相当于 X=X/Y
X^=/Y:相当于 X=X^Y
例如:
>>m=5;
>>m +=10;
>>m=
15
>>
六、条件运算符
条件运算符其基本格式如下:
表达式?值1: 值2
当表达式为真时,返回值1,否则返回值2,其相当与最为简的if else结构。
例如:
>>n=2
>>m=3
>>a=($(m) >$(n) ? m : n)
>>a=
A=3
>>
七、下标运算符
()/[]:下标运算符
在LabTalk数组中,常用()作为下标运算符,而在Origin数据引用中,则以()[ ]作为下标运算符。
例如:
>>dataset aa=data(1,10)
>>aa(1)=
1
>>aa(10)=
10
>>col(1)=data(2,10,2)
>>nn=col(1)[2] //把sheet中的第一列,第二行的值赋给nn变量
>>nn=
4
>>
在LabTalk中,访问Sheet中的单元格数据时,还有另一个函数:Cell(row,col), 它有两个参数,第一是行数,第二个是列数。
如:
>> col(2)=data(1,10,2)
>>nn=cell(2,2)
>>nn=
3
>>
八、位运算符
&:位与运算符
例如:
>> if (27&41==9)
{type “Yes”}
Yes //输出结果
>>
说明:27=0000000000011011
41=0000000000101001
9=0000000000001001
|:位或运算符
例如:
>>if(27|41==59)
{type “Yes”}
Yes
>>
说明:59=000000000111011