运算符 | 运算 | 运算对象 | 结果 | 举例 |
+ | 加 | 复数、复数Array、 复数FMArray 支持与实数混合运算 | 复数、复数Array、 复数FMArray | 1+2j+(2+3j)结果为3.0+5.0j |
- | 减,负号 | 同上 | 同上 | 2+3j-(3+1j)结果为-1.0+2.0j |
* | 乘 | 同上 | 同上 | (2+3j)*(3+1j)结果为3.0+11.0j |
/ | 除 | 同上 | 同上 | (2+3j)/(3+1j)结果为0.9+0.7j |
\ | 左除 | 同上 | 同上 | (3+1j)\(2+3j)结果为0.9+0.7j |
~ | 求对数 | 同上 | 同上 | (8.0+6.0j)~(3+1j)结果为2.0+0.0j |
^ | 求幂 | 同上 | 同上 | (3+1j)^2结果为8.0+6.0j |
! | 求倒数 | 一元运算符 单个值时求倒数,对矩阵时则是求矩阵逆 | 同上 | !(3+1j)结果为0.3-0.1j |
++ | 加1 | 一元运算符 | 同上 | (a:=(3+1j),a++,a)结果为4.0+1.0j |
-- | 减1 | 一元运算符 | 同上 | (a:=(3+1j),a--,a)结果为2.0+1.0j |
= | 等于 | 复数、复数Array、 复数FMArray 支持与实数混合运算 | 布尔类型 | (0+2j)=2j 结果为真 |
<> | 不等 | 同上 | 布尔类型 | (0+2j)<>2j结果为假 |
$ | 字符串转换与拼接 | 复数、其它任意类型 | 字符串 | (3+2j)$"A"结果为"3+2jA" |
Like | 相似判定 | 复数、复数Array、 复数FMArray 支持与实数混合运算 | 布尔类型、布尔矩阵 | 3.55+4.16j like 3.55 结果为假 |
赋值等于运算符 | ||||
+= | 加等于 | 复数、 复数Array、 复数FMArray 支持与实数混合运算 | 复数、 复数Array、 复数FMArray | (a:=(3+1j),a+=(2+3j),a)结果为5.0+4.0j |
-= | 减等于 | 同上 | 同上 | (a:=(3+1j),a-=(2+3j),a)结果为1.0-2.0j |
*= | 乘等于 | 同上 | 同上 | (a:=(3+1j),a*=(2+3j),a)结果为3.0+11.0j |
/= | 除等于 | 同上 | 同上 | (a:=(2+3j),a/=(3+1j),a)结果为0.9+0.7j |
\= | 左除等于 | 同上 | 同上 | (a:=(3+1j),a\=(2+3j),a)结果为0.9+0.7j |
^= | 幂等于 | 同上 | 同上 | (a:=(3+1j),a^=2,a)结果为8.0+6.0j |
~= | 对数等于 | 同上 | 同上 | (a:=(8+6j),a~=(3+1j),a)结果为2.0+0.0j |
矩阵运算符 | ||||
:* | 矩阵乘法 | 复数矩阵、 复数FMArray矩阵、支持与实数矩阵混合运算 | 复数Array、 复数FMArray 矩阵行列: n×m :* m×g =n×g | a:=array((-1+1j),(-3+1j)); b:=array((2+2j,1+3j)); return a:*b; 结果为:array( (-4.0+0.0j,-4.0-2.0j), (-8.0-4.0j,-6.0-8.0j)) |
:/ | 矩阵除法 | 同上 | 复数矩阵(Array、 FMArray) 矩阵行列: n×m :/ g×m=n×g | a:=complex(rand(3,4),rand(3,4)); b:=complex(rand(5,4),rand(5,4)); return a:/b; |
:\ | 矩阵左除 | 同上 | 复数矩阵(Array、 FMArray) 矩阵行列: n×m :/ n×g=m×g | a:=complex(rand(4,3),rand(4,3)); b:=complex(rand(4,5),rand(4,5)); return a:\b; |
:^ | 矩阵乘方 | 同上 | 复数Array、 复数FMArray | 例如A:^3等于A:*A:*A,乘方应该是个方阵 |
:: | 矩阵遍历 | 复数Array、复数FMArray、支持与实数数组混合运算 | 不改变原矩阵 | a:=array((1+2j,2),(0,4+2j)); r:=0; a::r+=ifcomplex(mcell); return r; |
::= | 矩阵遍历并赋值 | 同上 | 对原矩阵进行重新赋值 | a:=array((1+2j,2),(0,4+2j)); a::=ifcomplex(mcell); return a; |
.= | 矩阵等于 | 同上 | 与操作的矩阵结构相同,元素值为布尔值 | a:=array((1+2j,2),(0,4+2j)); return a.=4+2j; |
.<> | 矩阵不等于 | 同上 | 同上 | a:=array((1+2j,2),(0,4+2j)); return a.<>4+2j; |
矩阵赋值运算 | ||||
:*= | 矩阵乘等于 | 复数矩阵、 复数FMArray矩阵、支持与实数矩阵混合运算 | 复数矩阵(Array、FMArray) 矩阵行列: n×m :* m×g =n×g | a:=array((-1+1j),(-3+1j)); b:=array((2+2j,1+3j)); a:*=b; return a; 结果为:array( (-4.0+0.0j,-4.0-2.0j), (-8.0-4.0j,-6.0-8.0j)) |
:/= | 矩阵除等于 | 同上 | 复数矩阵(Array、FMArray) 矩阵行列: n×m :/ g×m=n×g | a:=complex(rand(3,4),rand(3,4)); b:=complex(rand(5,4),rand(5,4)); a:/=b; return a; |
:\= | 矩阵左除等于 | 同上 | 复数矩阵(Array、FMArray) 矩阵行列: n×m :/ n×g=m×g | a:=complex(rand(4,3),rand(4,3)); b:=complex(rand(4,5),rand(4,5)); a:\=b; return a; |
:^= | 矩阵乘方等于 | 同上 | 复数Array、 复数FMArray | a:=complex(rand(3,3),rand(3,3)); a:^=2 return a; |
集合运算 | ||||
| | 矩阵右并 | 复数Array、复数FMArray、支持与实数数组混合运算 | 复数Array、 复数FMArray | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a|b; |
:| | 非完全矩阵右并 | 同上 | 复数Array、 复数FMArray | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a:|b; |
Union | 集合并集 | 同上 | 复数Array、 复数FMArray | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a union b; |
Union2 | 集合并集,有去重效果 | 同上 | 同上 | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a union2 b; |
Intersect | 集合交集 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a intersect b; |
Outersect | 集合对称差集 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a Outersect b; |
Minus | 集合差集 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a Minus b; |
In | 存在于判定,以最小的元素进行判断 | 复数Array、复数FMArray、支持与实数数组混合运算 | 布尔类型 | a:=4+2j; b:=array((1+2j,2),(0,4+2j)); return a in b; |
sqlin | 存在于判定,以行进行判断 | 同上 | 同上 | a:=array(0,4+2j); b:=array((1+2j,2),(0,4+2j)); return a sqlin b; |
集合赋值运算 | ||||
|= | 右并等于 | 复数Array、复数FMArray、支持与实数数组混合运算 | 复数Array、 复数FMArray | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a|=b; return a; |
:|= | 非完全矩阵右并等于 | 同上 | 同上 | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a:|=b; return a; |
&= | 集合合并等于 | 同上 | 同上 | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a&=b; return a; |
Union2= | 集合合并等于,并去重 | 同上 | 同上 | a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a union2=b; return a; |
Intersect= | 集合交集等于 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Intersect=b; return a; |
Outersect= | 集合对称差集等于 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Outersect=b; return a; |
Minus= | 集合差集等于 | 同上 | 同上 | a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Minus=b; return a; |