# 2024a SP1 V0.11.2 发行说明


本文介绍 Syslab 2024a SP1 V0.11.2 的最新特征。

  • 版本:Syslab 2024a SP1

  • 内部版本号:V0.11.2

  • 发行时间:2024.04

欢迎使用 Syslab 2024a SP1 V0.11.2,这是在 2024a V0.11.1 版本基础上的一次重要更新。本次版本发布新增 2 个功能模块,优化了 5 个功能模块、17 个函数库及若干个函数。

# 新增功能

# ★Syslab 代码生成

Syslab 代码生成工具(SyslabCC)为 Julia 代码导出为可执行文件和动态库提供支持。具备以下两点功能:

  • 从 Julia 代码生成启动快、体积小的可执行文件/动态链接库
  • 方便用户在 C/C++、Python 等不同环境中调用 Julia 程序,且不依赖 Syslab/Julia 运行环境

# 科学计算函数库

  • 基础工具箱
    • 基础工具箱改进 9 个函数
    • 图形工具箱新增 12 个函数,改进 39 个函数
    • 基础数学工具箱新增 3 个函数,改进 25 个函数
    • 地理图工具箱改进 1 个函数
  • 数学、统计和优化
    • 符号数学工具箱新增 95 个函数,改进 9 个函数
    • 统计工具箱新增 1 个函数,改进 40 个函数
    • 优化工具箱新增 3 个函数,改进 5 个函数
    • 全局优化工具箱新增 1 个函数,改进 1 个函数
  • 信号处理和无线通信
    • 信号处理工具箱新增 7 个函数,改进 51 个函数
    • DSP系统工具箱改进 6 个函数
    • 雷达工具箱改进 1 个函数
    • 小波工具箱改进 4 个函数
    • 通信工具箱改进 40 个函数
    • 相控阵工具箱新增 6 个函数
  • 控制系统
    • 控制系统工具箱新增 2 个函数,改进 17 个函数
    • 系统辨识工具箱新增 3 个函数,改进 18 个函数
    • 鲁棒控制工具箱新增 15 个函数,改进 2 个函数
  • 数据科学和深度学习
    • 深度学习工具箱改进 3 个函数
    • 强化学习工具箱新增 1 个函数,改进 21 个函数

# 交互式编程环境

  • 新增 Python API: 将 Syslab 的信号处理与无线通信、控制系统、数学统计与优化等系列高性能专业函数库,自动导出 Python API,并内置到 Syslab,供用户在 Python 环境中直接使用。支持代码联想,并提供 Python 与 Julia 的数据交换和映射规则。
  • 调试功能改进
    • 启动调试之后,终端增加提示
    • 调试时默认隐藏模块名、函数名、结构体、nothing 变量,和工作区保持一致
    • 将设置断点的函数库采用解释模式,其余编译模式执行
    • 修改调试编译模式配置立即生效,无需重启 Syslab 生效
    • 修复部分场景下动态断点不生效的问题
    • 修复代码中有语法错误时,调试不报错直接退出的问题
    • 支持在项目环境下,顶层函数库的函数定义跳转
  • IDE 界面改进
    • Julia 插件升级,集成 Cthulhu.jl
    • 支持 .mat 文件双击导入
    • 支持 txt 文件拖拽到工作区的导入数据功能
    • 支持双击编辑器 Tab 页,最大化编辑器
    • 增加搜索框搜索功能
  • 绘图功能改进
    • 三维曲面图增加数据提示
    • 增加复制为图像按钮
    • 增加 title、legend 等支持双击直接编辑功能
  • M 语言兼容功能改进
    • 新增 95 个常用 M 函数,达到 1355 个

# 废弃功能⚠️

# 图形工具箱

图形工具箱引入 7 个破坏性更新。

函数名 函数说明 更改说明
pie 饼图 改动点:返回值
旧版本:Tuple(Vector{Wedge}, Vector{Text})
新版本:[CPie, CText, CPie, CText...]
clabel 为等高线图添加高程标签 改动点:返回值
旧版本:Vector{Text Text Text}
新版本:无返回值
rticklabels 设置或查询 r 轴刻度标签 改动点:返回值
旧版本:Vector{Text Text Text}
新版本:使用 rticklabels([0.1 0.25 0.5]) 设置 rticklabels 无返回值,使用 rticklabels() 查询 rticklabels 时返回值为 Vector{String String String String}
thetaticklabels 设置或查询 theta 轴刻度标签 改动点:返回值
旧版本:Vector{Text Text Text Text}
新版本:使用 thetaticklabels(["East","North","West","South"]) 设置 thetaticklabels 无返回值,使用 thetaticklabels() 查询 thetaticklabels 时返回值为 Vector{String String String String}
xticklabels 设置或查询 x 轴刻度标签 改动点:返回值
旧版本:Vector{Text Text Text}
新版本:使用 xticklabels(["x = 0", "x = 5", "x = 10"]) 设置 xticklabels 无返回值,使用 xticklabels() 查询 xticklabels 时返回值为 Vector{String String String}
yticklabels 设置或查询 y 轴刻度标签 改动点:返回值
旧版本:Vector{Text Text Text}
新版本:使用 yticklabels(["y = 0", "y = 50", "y = 100"]) 设置 yticklabels 无返回值,使用 yticklabels() 查询 yticklabels 时返回值为 Vector{String String String}
zticklabels 设置或查询 z 轴刻度标签 改动点:返回值
旧版本:Vector{Text Text Text}
新版本:使用 zticklabels(["z = -8","z = 0","z = 8"]) 设置 zticklabels 无返回值,使用 zticklabels() 查询 zticklabels 时返回值为 Vector{String String String}

# 统计工具箱

统计工具箱引入 1 个破坏性更新。

函数名 函数说明 更改说明
corr 线性或秩相关性 改动点:输出个数
旧版本:输出一个(X)
新版本:输出两个(X,λ)

# 信号处理工具箱

信号处理工具箱引入 1 个破坏性更新。

函数名 函数说明 更改说明
findpeaks 查找局部极大值 改动点:输出个数
旧版本:输出四个参数
新版本:在不输入 Min/MaxPeakWidth、MinPeakProminence、Annotate 的情况下,只会输出两个参数:峰值、峰值位置;若要在其他情况下输出四个参数需要输入 nargout

# 通信工具箱

通信工具箱引入 5 个破坏性更新。

函数名 函数说明 更改说明
doppler 构建多普勒频谱结构 改动点:输出类型
旧版本:Tuple
新版本:struct
comm_HelicalInterleaver 使用螺旋数组置换输入符号 改动点:输出参数数量
旧版本:输出两个(outdata,outstate)
新版本:输出一个(outdata)
comm_HelicalDeinterleaver 使用螺旋数组恢复符号的顺序 改动点:输出参数数量
旧版本:输出三个(outdata,outstatevalue,outstatedelay)
新版本:输出一个(outdata)
comm_MultiplexedInterleaver 使用一组具有指定延迟的移位寄存器来置换输入符号 改动点:输出参数数量
旧版本:输出三个(outdata,outstatevalue,outstateindex)
新版本:输出一个(outdata)
comm_MultiplexedDeinterleaver 使用一组具有指定延迟的移位寄存器对输入符号进行解交织 改动点:输出参数数量
旧版本:输出三个(outdata,outstatevalue,outstateindex)
新版本:输出一个(outdata)

# 强化学习工具箱

强化学习工具箱引入 1 个破坏性更新。

函数名 函数说明 更改说明
memoryAppend 经验增加 改动点:多个单维动作的输入格式
旧版本:Vector
新版本:Matrix