基础语法
注释
TianYuan 推荐使用 # 作为注释符。同时也兼容 Matlab 的 % 注释风格。注释从注释符开始一直到行尾:
# 这是一行注释(推荐写法)
x = 5 # 这是行尾注释
% 这也是合法注释(兼容 Matlab 风格)
y = 10 % 同样有效
注意:推荐使用 #;如果你有 Matlab 背景,也可以继续使用 %,两者效果完全相同。
变量和赋值
变量命名规则
- 必须以字母开头
- 可以包含字母、数字和下划线
- 区分大小写(
var和Var是不同的变量)
赋值语句
使用 = 进行赋值:
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 |
运算符优先级
从高到低:
- 转置
' - 幂运算
^,.^ - 一元负号
-, 逻辑非! - 乘除
*,/,\,.*,./ - 加减
+,- - 冒号运算符
: - 比较运算符
<,<=,>,>=,==,!= - 逻辑与
&& - 逻辑或
||
使用括号可以改变运算顺序:
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)