Commit 8b2b2e79 by Lian-runzhe Committed by GitHub

Update RustScript手册.md

parent 8eaf827e
# RustScript 语言规范 # RustScript 语言规范
...@@ -138,14 +138,12 @@ branch = [...]; // 支路数据矩阵 ...@@ -138,14 +138,12 @@ branch = [...]; // 支路数据矩阵
// 变量赋值(类型推导) // 变量赋值(类型推导)
baseMVA = 100; baseMVA = 100;
voltage = 1.06; voltage = 1.06;
name = "RustScript";
is_valid = true;
// 张量赋值 // 张量赋值
vector = [1, 2, 3, 4]; vector = [1, 2, 3, 4];
matrix = [[1, 2], [3, 4]]; matrix = [[1, 2], [3, 4]];
``` ```
**注意**:变量赋值只支持数值或者张量两种类型。
### 4.2 常量声明 ### 4.2 常量声明
```rustscript ```rustscript
// 常量定义(约定使用大写) // 常量定义(约定使用大写)
...@@ -249,6 +247,9 @@ tensor3d = [ ...@@ -249,6 +247,9 @@ tensor3d = [
示例: 示例:
输入 range(1, 10, 2) 输入 range(1, 10, 2)
结果 [1, 3, 5, 7, 9] 结果 [1, 3, 5, 7, 9]
输入 range(21, 10, -2.3)
结果 [21, 18.7, 16.4, 14.1, 11.8]
``` ```
## 6. 张量操作 ## 6. 张量操作
...@@ -316,8 +317,8 @@ tensor3d = [ ...@@ -316,8 +317,8 @@ tensor3d = [
结果 [4, 5, 6] 结果 [4, 5, 6]
电力系统应用示例: 电力系统应用示例:
voltage = slice(bus, [0], [VM-1, VM]); // 所有行,VM列(二维张量) bus_voltage = slice(bus, [0], [VM-1, VM]); // 所有行,VM列(二维张量)
angle = slice(bus, [0], VA-1); // 所有行,VA列(一维张量) bus_angle = slice(bus, [0], VA-1); // 所有行,VA列(一维张量)
``` ```
### 6.3 获取张量指定行列 ### 6.3 获取张量指定行列
...@@ -373,6 +374,7 @@ tensor3d = [ ...@@ -373,6 +374,7 @@ tensor3d = [
错误示例(形状不匹配) 错误示例(形状不匹配)
// assign(a, b_1d, [0], [1, 2]); // 错误:一维张量不能赋值给二维位置 // assign(a, b_1d, [0], [1, 2]); // 错误:一维张量不能赋值给二维位置
// assign(a, b_2d, [0], 1); // 错误:二维张量不能赋值给一维位置 // assign(a, b_2d, [0], 1); // 错误:二维张量不能赋值给一维位置
// assign(a, b_2d, [0], [0,1]); // 错误:1×3行向量(二维张量)不能赋值给3×1列向量(二维张量)
示例: 示例:
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
输入 assign(a, [[-2],[-5],[-8]], [0], [1,2]) 输入 assign(a, [[-2],[-5],[-8]], [0], [1,2])
...@@ -2148,8 +2150,8 @@ numel(tensor) // 元素个数 ...@@ -2148,8 +2150,8 @@ numel(tensor) // 元素个数
输入 slice(a, 1, [0]) 输入 slice(a, 1, [0])
结果 [4, 5, 6] 结果 [4, 5, 6]
电力系统应用示例: 电力系统应用示例:
voltage = slice(bus, [0], [VM-1, VM]); // 所有行,VM列(二维张量) bus_voltage = slice(bus, [0], [VM-1, VM]); // 所有行,VM列(二维张量)
angle = slice(bus, [0], VA-1); // 所有行,VA列(一维张量) bus_angle = slice(bus, [0], VA-1); // 所有行,VA列(一维张量)
``` ```
#### 10.3.2.2 设置张量元素值 #### 10.3.2.2 设置张量元素值
```rustscript ```rustscript
...@@ -2162,7 +2164,7 @@ numel(tensor) // 元素个数 ...@@ -2162,7 +2164,7 @@ numel(tensor) // 元素个数
indices - 张量,其中元素表示t按行顺序排列的位置索引 indices - 张量,其中元素表示t按行顺序排列的位置索引
values - 张量,形状应与indices相同,indices中索引位置元素设置为values中的对应值 values - 张量,形状应与indices相同,indices中索引位置元素设置为values中的对应值
示例: 示例:
输入 set([[1, 2], [3, 4]], [2, 0], -3) 输入 set([[1, 2], [3, 4]], [2, 0], -3) //第3个和第1个元素赋值为-3
结果 [[-3, 2], [-3, 4]] 结果 [[-3, 2], [-3, 4]]
输入 set([[1, 2], [3, 4]], [2, 0], [-1, -3]) 输入 set([[1, 2], [3, 4]], [2, 0], [-1, -3])
...@@ -2259,8 +2261,14 @@ linspace(start, end, num) ...@@ -2259,8 +2261,14 @@ linspace(start, end, num)
t - 张量 t - 张量
d - 维度,可选参数 d - 维度,可选参数
示例: 示例:
输入 sum([[[1.1, 2.2], [3.3, 4.4]], [[5.5, 6.6], [7.7, 8.1]]]) 输入 sum([[0,1,2], [3,4,5], [6,7,8]])
结果 [[6.6, 8.8], [11.0, 12.5]] 结果 [9, 12, 15]
输入 sum([[0,1,2], [3,4,5], [6,7,8]],0)
结果 [9, 12, 15]
输入 sum([[0,1,2], [3,4,5], [6,7,8]],1)
结果 [3, 12, 21]
输入 sum([[[1.3, 2.2], [3.3, 4.3]], [[5.5, 6.6], [7.7, 8.1]]], 1) 输入 sum([[[1.3, 2.2], [3.3, 4.3]], [[5.5, 6.6], [7.7, 8.1]]], 1)
结果 [[4.4, 6.7], [13.2, 14.7]] 结果 [[4.4, 6.7], [13.2, 14.7]]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论