variable主命令

介绍variable主命令的使用和参数含义

用户变量

Fatigue可以在脚本文件中定义用户变量,用于做一些初步的计算和设置。Variable命令主要用于在Fatigue脚本中定义、删除、更新用户变量。Fatigue的变量类型分为数值型和字符型两种。变量名只能是字母、数字或下划线的组合,每个变量名要以字母开头,变量名的长度没有限制,变量名是大小写敏感的。

数值型变量

  • 数值型变量都是双精度型的,可以是标量、一维、二维数组。一维数组值采用[i]来取值,二维数组通过[i][j]来取值,其中i、j的取值从1到数组的大小。也可以采用通配取值符“:”来进行取值,例如,如果a是一个二维数组,则a[1][1]、a[1:5][2]、a[1][:]、a[2:5]都是正确的取值方式。
  • 数值型变量可以进行数值运算,Fatigue支持的数值运算符有:+(加)、-(减)、*(乘)、/(除)、^(指数)、>(大于)、<(小于)、<=(小于等于)、>=(大于等于)、==(等于)。
  • Fatigue支持的数值运算函数有:sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, log2, log10, log, ln, exp, sqrt, sign, rint, abs, min, max, sum, avg。
  • 如果相互操作的是数组,要求数组的大小是相同的,但标量可以与任何大小的数组相互操作。

字符型变量

  • 字符型变量采用双引号来定义,例如str = “Hello Fatigue”。字符型变量也可以通过其它字符字符型变量或数值型变量进行定义。例如,如果定义str2 = “${str}, good variable”,则str2的值为:“Hello Fatigue, good variable”;如果定义了数值变量b = 12.3,再定义字符变量:str3 = “b = ${b}”,则str3的值为:“b = 12.3”。
  • 数值型变量也可以赋予字符型值,用于对变量的描述,例如:如果已定义c = 3.14,又定义:c = “This is Pi”,则c仍然为数值型的变量,但具有一个描述字符串,描述字符串可以通过“${&c}”获得。

Fatigue系统变量

为了便于计算和输出,Fatigue定义了一些系统变量,可在脚本文件中使用:

变量名 类型 维度 变量含义
Pi 数值 1 x 1 3.1415926
Unit 数值 1024 x 1024 单位对称阵,用于生成不同大小的矩阵
Ones 数值 1024 x 1024 由1组成的矩阵,用于生成不同大小的矩阵
Inf 数值 1 x 1 无限大(实际上是一个很大的浮点数)
Title 字符 动态 项目名称(可更改)
Script 字符 动态 脚本文件名称
Time 数值/字符 1 x 1 数值表示运行时间, 字符表示当前日期时间

variable命令的使用

作用

设置和使用变量。

形式

variable a value
         b @Reduce …
         delete a b c
         print a b c
s1 = “hello ${a}s2 = “hello ${&b}d = [1.1, 1.2; 2.1, 2.2]
h = { X[2][1] + Pi }
h = []

说明

  • variable a value :定义一个变量a,其值为value,也可以通过“=”来定义,与a = value是相同的。
  • variable b @Reduce -mode [max|min|sum|aver] –group groupName –region regionName var1 var2 var3 … :定义一个用户变量b,其值为var1, var2, var3的归约操作值。var1, var2, var3应当是原子信息数组,大小为N x 1。-mode选项决定了归约形式,即求最小值(max)、最大值(min)、求和(sum)或者求平均值(aver)。-group选项表示归约操作只对在groupName组的原子操作。-region选项表示归约操作只对在regionName区域的原子操作。
  • variable delete a b c :删除a、b、c三个变量。
  • s1 = “hello ${a}” : 设置字符串变量s1,并获得数值变量a的值变成字符串作为s1的一部分。
  • s2 = “hello ${&b}” : 设置字符串变量s2,并获得数值变量b的描述字符串值作为s2的一部分。
  • d = [1.1, 1.2; 2.1, 2.2] : 设置d为一2 x 2的矩阵,并赋值。
  • h = { X[2][1] + Pi } : 设置h为表达式型变量,在后续的计算过程中,h的值会随着X[2][1]的变化而自动发生变化。如果去掉“{}”,则变量h一直保持为第一次赋值时的值不变。
  • h = [] : 删除变量h。

示例

var a1 sqrt(2)
a = 1.2 + a1
b = Ones[:3][:4]
b = "This is a test matrix"
c = a + b + sqrt(3)
d = [1.1, 1.2; 2.1, 2.2]
e = "Hello Fatigue"
f = "a = ${a}, c = [${c}]."
g = @Reduce –mode max X[:][1]
h = { X[2][1] + Pi }

反馈留言 💬