基础语法

注释

TianYuan 推荐使用 # 作为注释符。同时也兼容 Matlab 的 % 注释风格。注释从注释符开始一直到行尾:

# 这是一行注释(推荐写法)
x = 5    # 这是行尾注释

% 这也是合法注释(兼容 Matlab 风格)
y = 10   % 同样有效

注意:推荐使用 #;如果你有 Matlab 背景,也可以继续使用 %,两者效果完全相同。

变量和赋值

变量命名规则

  • 必须以字母开头
  • 可以包含字母、数字和下划线
  • 区分大小写(varVar 是不同的变量)

赋值语句

使用 = 进行赋值:

x = 42              # 整数
y = 3.14159         # 浮点数
name = "TianYuan"   # 字符串
result = x + y      # 表达式

多重赋值

函数可以返回多个值,使用方括号接收:

[a, b] = swap(10, 20)    # 接收多个返回值

语句和表达式

语句分隔

每行一条语句,换行符是语句分隔符。如果一行有多条语句,可用分号或换行分隔。

抑制输出

默认情况下,表达式的结果会显示出来。使用分号 ; 可以抑制输出:

x = 5        # 显示结果: x = 5
y = 10;      # 不显示结果

续行

TianYuan 目前不支持显式的续行符,长语句需要在一行内完成。

运算符

算术运算符

运算符 说明 示例
+ 加法/矩阵加法 a + b
- 减法/矩阵减法 a - b
* 乘法/矩阵乘法 a * b
/ 除法/矩阵右除 a / b
^ 幂运算/矩阵幂 a ^ b
.* 元素级乘法 A .* B
./ 元素级除法 A ./ B
.\ 元素级左除:A.\B 等价于 B./A [2 4] .\ [6 8][3 2]
.^ 元素级幂运算 A .^ 2
' 矩阵转置 A'
\ 矩阵左除(解线性方程) A \ b

比较运算符

运算符 说明 示例
== 等于 a == b
!=~= 不等于 a != b
< 小于 a < b
<= 小于等于 a <= b
> 大于 a > b
>= 大于等于 a >= b

逻辑运算符

运算符 说明 示例
&& 逻辑与(短路) a && b
|| 逻辑或(短路) a || b
! 逻辑非 !a

运算符优先级

从高到低:

  1. 转置 '
  2. 幂运算 ^, .^
  3. 一元负号 -, 逻辑非 !
  4. 乘除 *, /, \, .*, ./
  5. 加减 +, -
  6. 冒号运算符 :
  7. 比较运算符 <, <=, >, >=, ==, !=
  8. 逻辑与 &&
  9. 逻辑或 ||

使用括号可以改变运算顺序:

result = (a + b) * c    # 先加后乘

冒号运算符

冒号运算符 : 用于生成等差数列:

基本形式

# start:end 生成步长为1的序列
x = 1:10        # 生成 [1 2 3 4 5 6 7 8 9 10]

# start:step:end 指定步长
y = 0:0.5:2     # 生成 [0 0.5 1.0 1.5 2.0]
z = 10:-2:2     # 生成 [10 8 6 4 2]

用作索引

A = [1 2 3 4 5]
B = A(2:4)      # 提取第2到第4个元素: [2 3 4]

示例:基本运算

# 标量运算
a = 10
b = 3
sum = a + b           # 13
diff = a - b          # 7
prod = a * b          # 30
quot = a / b          # 3.333...
pow = a ^ 2           # 100

# 矩阵运算
A = [1 2; 3 4]
B = [5 6; 7 8]
C = A + B             # 矩阵加法
D = A * B             # 矩阵乘法
E = A .* B            # 元素级乘法
F = A'                # 转置

# 比较和逻辑运算
x = 5
y = 10
result1 = x < y       # true (1)
result2 = x == y      # false (0)
result3 = (x > 0) && (y > 0)  # true (1)