当前位置: 首页 > article >正文

Swan 表达式 - 数组相关操作

ANSYS Swan 语言表达式中,支持数组相关操作。支持的操作包括

^ scalar 转 array 操作。使用样例如

function repetitionExpr (i1: int32)
returns (o1: int32^3)
{
  let o1 = i1 ^3;
}

在以上例子中,输出长度为 3 ,i1 为元素值的数组。

[] 构造数组操作。使用样例如

function arrayConstructorExpr ()
returns (o1: int32^3)
{
  let o1 = [1,3,5];
}

在以上例子中,输出流为长度为3的数组,元素分别为 1, 3, 5

@ 数组拼接操作。使用样例如

function appendExpr (i1: int32^2; i2: int32^3)
returns (o1: int32^5)
{
  let o1 = i1 @ i2;
}

arr[idx] 获取数组元素值操作。使用样例如

function projectionExpr (i1: int32^3)
returns (o1: int32)
{
  let o1 = i1[1];
}

(arr.[idx] default val) 使用变量索引获取数组元素值操作。使用样例如

function projWithDefaultExpr (i1: int32^3; idx: int32)
returns (o1: int32)
{
  let o1 = (i1.[idx] default 0);
}

(arr with [idx] = val) 输出新数组,索引 idx 对应元素的值为 val。使用样例如

function arrayUpdateExpr (i1: int32^5)
returns (o1: int32^5)
{
  let o1 = (i1 with [1] = 42);
}

在上例中,索引1 对应的元素更新为 42

在一次操作中,可以修改多个索引对应的元素。使用样例如

function arrayUpdateExpr2 (i1: int32^5)
returns (o1: int32^5)
{
  let o1 = (i1 with [1] = 42; [2] = 43);
}

transpose 转置运算。使用样例如

function transposeExpr (i1: int32^2^3^4^5)
returns (o1: int32^2^5^4^3)
{
  let o1 = transpose{1,3}(i1);
}

在以上样例中,维度为 53 的两维度进行了转置。

reverse 取反运算。使用样例如

function reverseExpr (i1: int32^3)
returns (o1: int32^3)
{
  let o1 = reverse(i1);
}

[i .. j] 数组切片操作。使用样例如

function sliceExpr (i1: int32^5)
returns (o1: int32^3)
{
  let o1 = i1[1 .. 3];
}

flatten 展开操作。使用样例如

function flattenExpr (i1: int32^3^2)
returns (o1: int32^6)
{
  let o1 = flatten(i1);
}

效果为将多维数组展开为1维数组。

pack 数组压缩操作。使用样例如

function packExpr (i1: int32^6)
returns (o1: int32^2^3)
{
  let o1 = pack<<2, 3>>(i1);
}

在上例中,将长度为6的一维数组,压缩为具备2项长度为3的二维数组。


http://www.kler.cn/a/535218.html

相关文章:

  • openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用
  • 【华为OD-E卷 - 108 最大矩阵和 100分(python、java、c++、js、c)】
  • neo4j-在Linux中安装neo4j
  • 【分布式架构理论2】分布式架构要处理的问题及解决方案
  • P5251 [LnOI2019] 第二代图灵机 Solution
  • 2024年12月 Scratch 图形化(二级)真题解析 中国电子学会全国青少年软件编程等级考试
  • 【Prometheus】如何通过golang生成prometheus格式数据
  • 使用 MMCM 的 I/O 时序 ZHOLD/BUF_IN 补偿
  • Spring Boot 入门 与 无法解析符号 springframework 的解决
  • 71.StackPanel黑白棋盘 WPF例子 C#例子
  • 基于Redis分布式锁
  • 达梦数据库从单主模式转换为主备模式
  • (苍穹外卖)项目结构
  • 深度学习|表示学习|卷积神经网络|DeconvNet是什么?|18
  • Android studio 编译速度增加
  • 微服务中服务治理都包含什么
  • 【回溯+剪枝】单词搜索,你能用递归解决吗?
  • [原创](Modern C++)现代C++的关键性概念: 文件编码细节之一:BOM(Byte Order Mark, 字节顺序标记)
  • 分库分表详解
  • 02.06 网络编程_概述
  • 补小识JVM中的分代收集理论
  • 离线安装Appium Server
  • 结合R语言、ArcGIS Pro、ChatGPT+生态学模型(PLUS模型、InVEST模型)的生态系统服务的多情景模拟预测及其应用
  • K8S组件架构
  • Eureka 高频考点
  • 网络工程师 (22)网络协议