# 2025a SP2 V1.0.4 发行说明
本文介绍 Syslab 2025a SP2 V1.0.4 的最新特征。
版本:Syslab 2025a SP2
内部版本号:V1.0.4
发行时间:2025.05
欢迎使用 Syslab 2025a SP2 V1.0.4,这是在 2025a V1.0.2 版本基础上的一次重要更新。在此版本中,交互式编程环境优化了文本视图、导入模块、命令行窗口、调试、绘图交互、代码生成、M 导入工具、双向融合等多个模块;科学计算函数库优化了 20 个函数库及若干个函数。
# 新增功能
# 交互式编程环境
IDE 界面改进
- Julia 大纲易用性改进
- 导入模块优化
- 导入界面重构
- 导入分隔符支持制表符
- 命令行窗口重构,支持鼠标点击插入光标,双击选中修改及删除
- 支持在终端拖拽打开 syslabfig 文件
- 支持调试状态下,放大查看变量数据后关闭,双击脚本名称,恢复资源管理器和终端命令行功能
- 文本视图升级
- 提升渲染性能,最大渲染文本量提升 10 倍
- 提升交互性能,文本搜索性能大幅提升
- 减少内存占用,同等数据量下文本视图占用的内存大幅降低
- 支持从系统文件管理器直接复制文件,粘贴到 Syslab 资源管理器
调试功能改进
- 调试时支持导入数据
- 修复在没有断点的情况下,调试指定代码报错的问题
- 修复调试时,虽然 if 条件是 false,但是调试下一步时,光标显示在 if 条件体的最后一行的问题
- 支持调试 foreach 函数
★ 绘图功能改进
- 数据提示数据支持导出到工作区
- 数据提示支持小步长移动
Syslab 代码生成功能改进
- 修复了在创建包含多种类型元素的数组时出现的 bug
- 修复 -0.0 和 0.0 之间的 === 比较运算和 Julia 不对标的 bug
- 新增
--single-thread模式,启用该模式时,消除注册线程的调用,减少单线程调用导出函数时的开销 - 修复若干 --no-gc 模式下的 bug
- 为部分 Julia 的原子操作提供支持
M 导入工具改进
- M 工作区支持右键导出 mat 文件
- M 兼容支持块注释按键
- 支持 M 代码格式化
- 新增 45 个常用 M 函数,共计 1829 个 M 函数
双向融合功能改进
- 优化 SyslabObject 在仿真报错时的信息提示,报错信息更明确,方便定位
- 优化 Linux 上 SyslabObject 仿真性能,单个 SyslabObject 两百万步从 20 s 提升至 13~15 s
- 支持 Sysplorer 读取 Syslab 工作区数据变量
- 支持 Sysplorer 对 Syslab 新增工作区变量
帮助文档改进
- 帮助文档增加 API 统计功能
# 科学计算函数库
基础工具箱
数学、统计和优化
信号处理和无线通信
控制系统
图像处理和计算机视觉
- 图像处理工具箱新增 8 个函数,改进 1 个函数
AI 与数据科学
代码生成
- 定点工具箱新增 5 个函数,改进 1 个函数
函数库性能优化
- 基础数学库优化 bvp5c、find_roots、插值模块系列函数,运行速度大幅提升;
- griddata nearest 算法对于插值点数量 601 * 601 从 6.14 s -> 0.24 s,提升约 25 倍;
- interp2 nearest 算法对于插值点数量 2000 * 2000 从 3.99 s -> 0.66 s,提升约 6 倍;
- interp2 spline 算法对于插值点数量 5000 * 5000 从 30 s -> 12 s,提升 2.5 倍;
- interp3 linear 算法对于插值点数量 241 _ 397 _ 241 从 4.55 s -> 0.3 s,提升约 1.5 倍;
- interp3 spline 算法对于插值点数量 200 _ 200 _ 200 从 4.50 s -> 1.52 s,提升约 3 倍;
- bvp5c 算法对于 6000*1 的向量输入耗时从 1284.86 s -> 0.140756 s,提升 9000 倍左右;
- find_roots:七阶 legendreP 表达式求根,394.751 s ->0.025 s;
- 图形库优化 3 个函数 hsv,rgb2hsv,hsv2rgb,首次运行速度平均减少 98%;
- 通信工具箱优化 11 个函数 de2bi, comm_DPSKDemodulator,comm_DPSKModulator,dpskmod,comm_RSDecoder,rsdec,comm_ErrorRate,convenc,comm_ConvolutionalEncoder,vitdec,comm_ViterbiDecoder,首次运行时间平均减少 36.5%;
- 信号工具箱优化 8 个函数 bandpass,bandstop,ty_cpsd,ty_mscohere,ty_periodogram,ty_pwelch,ty_tfestimate,tsa,首次运行时间平均减少 14%。
# 删除或变更功能 ⚠️
# 通信工具箱
通信工具箱引入 2 个破坏性更新。
| 函数名 | 函数说明 | 更改说明 |
|---|---|---|
| comm_RSDecoder | 使用 Reed-Solomon 解码器解码数据 | 删除 NumCorrectedErrorsOutputPort、OutputDataType 字段,step 总是输出两个参数 |
| vitdec | 使用维特比算法对二进制数据进行卷积解码 | 当操作模式为 terminated 和 truncated 时,默认输出一个参数,当操作模式为 continuous 时,默认输出四个参数 |
# 附录:函数列表
# 基础工具箱
基础工具箱新增函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| conj_copy | 复共轭,拷贝原数组 |
| adjoint_copy | 复共轭转置,拷贝原数组 |
| transpose_copy | 转置向量或矩阵,拷贝原数组 |
基础工具箱修改函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| strcmp | 比较字符串 |
| ty_issorted | 确定数组是否已排序 |
| find | 查找非零元素的索引和值 |
| load | 将文件变量加载到工作区中 |
# 图形工具箱
图形工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| zoom | 启用缩放模式 |
图形工具箱修改函数 15 个。
| 函数名 | 函数说明 |
|---|---|
| hist | 直方图 |
| contour | 矩阵的等高线图 |
| clabel | 为等高线图添加高程标签 |
| quiver3 | 三维箭头图或速度图 |
| scatter | 散点图 |
| colorbar | 显示色阶的颜色栏 |
| plt_delete | 删除图形对象 |
| slice | 三维体切片平面 |
| ezplot | 易用的函数绘图函数 |
| histogram | 直方图 |
| figure | 创建图窗窗口 |
| plt_set | 设置图形对象属性 |
| ishandle | 测试是否有效的图形对象 |
| axis | 设置坐标轴范围和纵横比 |
| colormap | 查看并设置当前颜色图 |
# 基础数学工具箱
基础数学工具箱新增函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| ty_ordschur | 在 Schur 分解中将特征值重新排序 |
| convhulln | N 维凸包 |
| convhull | 凸包 |
| voronoi | 沃罗诺伊图 |
基础数学工具箱修改函数 11 个。
| 函数名 | 函数说明 |
|---|---|
| griddata | 对二维或三维散点数据插值 |
| delaunay | Delaunay 三角剖分 |
| interp3 | meshgrid 格式的三维网格数据的插值 |
| bvp5c | 求解边界值问题 - 五阶方法 |
| MRG32k3a | 随机数种子(影响所有使用此种子的随机数生成函数的结果) |
| spline | 三次方样条数据插值 |
| conv | 卷积和多项式 |
| eul2rotm | 将欧拉角转换为旋转矩阵 |
| nearest | 半径范围内最近的邻点 |
| interp1 | 一维数据插值(表查找) |
| interp2 | meshgrid 格式的二维网格数据插值 |
# 符号数学工具箱
符号数学工具箱新增函数 6 个。
| 函数名 | 函数说明 |
|---|---|
| latexify | 符号表达式的 latex 形式 |
| ezplot | 绘制符号表达式、方程或函数 |
| assume | 设置符号对象的假设 |
| assumeAlso | 添加符号对象的假设 |
| assumptions | 显示影响符号变量的假设 |
| sym_simplify | 代数化简 |
符号数学工具箱修改函数 8 个。
| 函数名 | 函数说明 |
|---|---|
| iztrans | Z 逆变换 |
| fsurf | 绘制三维曲面 |
| find_roots | 多项式的根 |
| sym_simplify | 代数化简 |
| cofficients | 多项式系数 |
| int | 定积分和不定积分 |
| numden | 提取分子和分母 |
| find_poles | 表达式或函数的极点 |
# 曲线拟合工具箱
曲线拟合工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| fit | 为数据拟合曲线或曲面 |
| fitoptions | 创建或调整拟合选项对象 |
| fittype | 曲线与曲面拟合的拟合类型 |
# 统计工具箱
统计工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| plot | 支持 fitdist 结果的 plot 函数 |
# 优化工具箱
优化工具箱修改函数 5 个。
| 函数名 | 函数说明 |
|---|---|
| mpsread | 读取 MPS 文件中的 LP 和 MILP 优化数据 |
| evaluate | 计算问题中的优化表达式或目标和约束 |
| infeasibility | 一个点处的约束违反值 |
| issatisfied | 检查优化问题在一组点上是否满足约束 |
| fmincon | 寻找约束非线性多变量函数的最小值 |
# 全局优化工具箱
全局优化工具箱修改函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| ga | 用遗传算法寻找函数最小值 |
| cascadeparams | 组合 S 参数以形成级联网络 |
| sparameters | 计算射频数据、网络、电路和匹配网络对象的 S 参数 |
| rationalfit | 使用稳定有理函数对象逼近数据 |
# 信号处理工具箱
信号处理工具箱修改函数 20 个。
| 函数名 | 函数说明 |
|---|---|
| grpdelay | 平均滤波器延迟(群延迟) |
| tf2zp | 将传递函数滤波器参数转换为零极点增益形式 |
| filtfilt | 零相位数字滤波 |
| bandpass | 带通滤波器信号 |
| bandstop | 带阻滤波器信号 |
| ty_cpsd | 互功率谱密度 |
| ty_mscohere | 幅度平方相干性 |
| ty_periodogram | 周期图功率谱密度估计 |
| ty_pwlech | Welch 的功率谱密度估计 |
| ty_tfestimate | 传递函数估计 |
| tsa | 时间同步信号平均值 |
| fir2 | 基于频率采样的 FIR 滤波器设计 |
| dpsssave | 离散的类球面或 Slepian 序列数据库 |
| dpssload | 从数据库加载离散的类球面序列 |
| dpssclear | 从数据库中删除离散的长球体序列 |
| dpssdir | 离散类球面序列数据库目录 |
| sawtooth | 锯齿波或三角波 |
| sfdr | 无杂散动态范围 |
| undershoot | 双电平波形转换的下冲指标 |
| pspectrum | 在频域和时频域进行信号分析 |
# DSP 系统工具箱
DSP 系统工具箱修改函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| design | 应用设计方法过滤规范对象 |
| designmethod | 可用于从规范对象设计滤波器的方法 |
| designoptions | 显示可用于指定设计的所有选项 |
| noisepsd | 由于舍入噪声引起的滤波器输出的功率谱密度 |
# 雷达工具箱
雷达工具箱新增函数 2 个。
| 函数名 | 函数说明 |
|---|---|
| slerp | 球形线性插值 |
| normalize | 四元数归一化 |
# 通信工具箱
通信工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| comm_ACPR | 测量相邻信道功率比(ACPR) |
通信工具箱修改函数 21 个。
| 函数名 | 函数说明 |
|---|---|
| comm_RSEncoder | 使用 Reed-Solomon 编码器对数据进行编码 |
| rsdec | Reed-Solomon 解码器 |
| comm_RSDecoder | 使用 Reed-Solomon 解码器解码数据 |
| dpskmod | 差分相移键控调制 |
| comm_DPSKModulator | 使用 M 进制 DPSK 方法调制信号 |
| dpskdemod | 差分相移键控解调 |
| comm_DPSKDemodulator | 使用 M 进制 DPSK 方法解调信号 |
| wgn | 生成高斯白噪声样本 |
| comm_DecisionFeedbackEqualizer | 使用判决反馈滤波均衡调制信号 |
| randsrc | 使用指定的字母生成随机矩阵 |
| de2bi | 将十进制数字转换为二进制向量 |
| scatterplot | 生成散点图 |
| comm_ErrorRate | 计算输入数据的误码率 |
| convenc | 卷积编码二进制信息 |
| comm_ConvolutionalEncoder | 卷积编码二进制数据 |
| vitdec | 使用维特比算法对二进制数据进行卷积解码 |
| comm_ViterbiDecoder | 使用维特比算法卷积编码数据 |
| awgn | 为信号增加高斯白噪声 |
| comm_MIMOChannel | 输入信号通过 MIMO 多径衰落信道 |
| gfweight | 计算线性分组码的最小距离 |
| bi2de | 将二进制向量转换为十进制数 |
# 射频工具箱
射频工具箱新增函数 6 个。
| 函数名 | 函数说明 |
|---|---|
| yparameters | 创建 Y 参数对象 |
| zparameters | 创建 Z 参数对象 |
| gparameters | 创建 G 参数对象 |
| hparameters | 创建混合参数对象 |
| abcdparameters | 创建 ABCD 参数对象 |
| tparameters | 创建 T 参数对象 |
射频工具箱修改函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| analyze | 在频域中分析 RFCKT 对象 |
| cascadeparams | 组合 S 参数以形成级联网络 |
| sparameters | 计算射频数据、网络、电路和匹配网络对象的 S 参数 |
| rationalfit | 使用稳定有理函数对象逼近数据 |
# 控制系统工具箱
控制系统工具箱修改函数 4 个。
| 函数名 | 函数说明 |
|---|---|
| impulse | 动态系统的脉冲响应图;脉冲响应数据 |
| step | 动态系统的阶跃响应图,阶跃响应数据 |
| rlcous | 动态系统的根轨迹图 |
| bode | 频率响应伯德图,或幅值和相位数据 |
# 系统辨识工具箱
系统辨识工具箱新增函数 2 个。
| 函数名 | 函数说明 |
|---|---|
| idgrey | 灰箱模型 |
| greyest | 线性灰箱模型描述方程参数估计 |
系统辨识工具箱修改函数 8 个。
| 函数名 | 函数说明 |
|---|---|
| tfest | 时频域数据的传递函数估计 |
| predict | 形成模型的预测响应 |
| compare | 比较辨识的模型输出 |
| pe | 估计模型的预测误差 |
| sim | 模拟辨识模型的响应 |
| lsim | 模拟动态系统对任意输入的模拟响应数据 |
| findstates | 估计模型的初始状态 |
| resid | 估计模型的残差 |
# 鲁棒控制工具箱
鲁棒控制工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| uplot | 在同一图形上绘制多个频响或数值对象 |
# 图像处理工具箱
图像处理工具箱新增函数 8 个。
| 函数名 | 函数说明 |
|---|---|
| impixel | 像素颜色值 |
| graydist | 灰度图像的灰度加权距离变换 |
| affinetform3d | 三维仿射几何变换 |
| circles2mask | 创建圆形的二进制掩膜 |
| colorangle | 两个 RGB 向量之间的夹角 |
| col2im | 将矩阵列重新排列为块 |
| entropy | 灰度图像的熵 |
| im2col | 将图像块重新排列为列 |
图像处理工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| imnoise | 向图像添加噪声 |
# 机器学习工具箱
机器学习工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| convent_columns | 将数据集中指定的字符串标签列映射为整数 |
机器学习工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| dendrogram | 绘制聚类树状图 |
| lhsdesign | 拉丁超立方体样本 |
| fit | 模型拟合流式数据 |
# 深度学习工具箱
深度学习工具箱新增函数 6 个。
| 函数名 | 函数说明 |
|---|---|
| export_dl_artifacts | 统一下载深度学习工具箱的项目工件 |
| dataset_dir | 获取数据集路径 |
| DigitDatasetTestData | 加载手写数字测试集 |
| DigitDatasetTrainData | 加载手写数字训练集 |
| iris_dataset | 加载鸢尾花数据集 |
| simplefit_dataset | 加载简易拟合数据集 |
深度学习工具箱修改函数 41 个。
| 函数名 | 函数说明 |
|---|---|
| bert | Bert 神经网络 |
| albert | Albert 神经网络 |
| align | Align 神经网络 |
| googlenet | GoogLeNet 卷积神经网络 |
| inceptionv3 | Inception-v3 卷积神经网络 |
| mobilenetv2 | MobileNet-v2 卷积神经网络 |
| resnet18 | ResNet-18 卷积神经网络 |
| resnet50 | ResNet-50 卷积神经网络 |
| resnet101 | ResNet-101 卷积神经网络 |
| xception | Xception 卷积神经网络 |
| shufflenet | ShuffleNet 卷积神经网络 |
| alexnet | AlexNet 卷积神经网络 |
| squeezenet | Squeezenet 卷积神经网络 |
| densenet121 | Densenet121 卷积神经网络 |
| densenet161 | Densenet161 卷积神经网络 |
| densenet201 | Densenet201 卷积神经网络 |
| mobilenetv3 | MobileNet-v3 卷积神经网络 |
| efficientnetb0 | Efficientnet-b0 卷积神经网络 |
| efficientnetb3 | Efficientnet-b3 卷积神经网络 |
| efficientnetb7 | Efficientnet-b7 卷积神经网络 |
| efficientnetv2 | Efficientnet-v2 卷积神经网络 |
| vgg16 | Vgg16 卷积神经网络 |
| vgg16bn | Vgg16-bn 卷积神经网络 |
| vgg19 | Vgg19 卷积神经网络 |
| vgg19bn | Vgg19-bn 卷积神经网络 |
| visiontransformerb16 | Visiontransformer-b16 神经网络 |
| visiontransformerb32 | Visiontransformer-b32 神经网络 |
| convnextsmall | 小型 Convnext 卷积神经网络 |
| convnexttiny | 微型 Convnext 卷积神经网络 |
| convnext | Convnext 卷积神经网络 |
| maxvit | Maxvit 神经网络 |
| mnasnet | Mnasnet 卷积神经网络 |
| regnety | Regnety 卷积神经网络 |
| regnetx | Regnetx 卷积神经网络 |
| swin | Swin_transformer 神经网络 |
| swintiny | 微型 swin_transformer 神经网络 |
| swinsmall | 小型 Swin_transformer 神经网络 |
| swinv2 | Swin_transformerv2 神经网络 |
| mapminmax | 通过将行最小值和最大值映射到 [-1,1] 来处理矩阵 |
| envinit | 手动安装依赖环境 |
| minmax | 输出最小与最大输入值 |
# 定点工具箱
定点工具箱新增函数 5 个。
| 函数名 | 函数说明 |
|---|---|
| num2hex | 使用 quantizer 对象将数字转换为十六进制等效值 |
| cordicabs | 基于 CORDIC 的绝对值 |
| cordicangle | 基于 CORDIC 的相位角 |
| cordicatan2 | 基于 CORDIC 的四象限反正切函数 |
| cordiccart2pol | 基于 CORDIC 的笛卡尔坐标转极坐标 |
定点工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| bitsra | 算数右移位 |
# 函数性能优化
- 基础数学库对插值模块进行性能优化,运行速度大幅提升;
- griddata nearest 算法对于插值点数量 601 * 601 从 6.14 s -> 0.24 s,提升约 25 倍;
- interp2 nearest 算法对于插值点数量 2000 * 2000 从 3.99 s -> 0.66 s,提升约 6 倍;
- interp2 spline 算法对于插值点数量 5000 * 5000 从 30 s -> 12 s,提升 2.5 倍;
- interp3 linear 算法对于插值点数量 241 _ 397 _ 241 从 4.55 s -> 0.3 s,提升约 1.5 倍;
- interp3 spline 算法对于插值点数量 200 _ 200 _ 200 从 4.50 s -> 1.52 s,提升约 3 倍;
- bvp5c 算法对于 6000*1 的向量输入耗时从 1284.86 s -> 0.140756 s,提升 9000 倍左右;
- find_roots:七阶 legendreP 表达式求根,394.751 s ->0.025 s。
- 图形库优化 3 个函数 hsv,rgb2hsv,hsv2rgb,首次运行速度平均减少 98%;
- 通信工具箱优化 11 个函数 de2bi, comm_DPSKDemodulator,comm_DPSKModulator,dpskmod,comm_RSDecoder,rsdec,comm_ErrorRate,convenc,comm_ConvolutionalEncoder,vitdec,comm_ViterbiDecoder 首次运行时间平均减少 51.4%;
- 信号工具箱优化 8 个函数 bandpass,bandstop,ty_cpsd,ty_mscohere,ty_periodogram,ty_pwelch,ty_tfestimate,tsa,首次运行时间平均减少 14%。
# M 兼容新增函数
M 兼容新增函数 45 个。
| 函数名 | 函数说明 |
|---|---|
| dlmwrite | 将矩阵写入到 ASCII 分隔文件 |
| audiowrite | 写音频文件 |
| audioread | 读取音频文件 |
| zoom | 启用或禁用缩放或者按比例放大 |
| scatteredInterpolant | 散点数据插值 |
| close | 写入视频数据之后关闭文件 |
| extractFeatures | 提取兴趣点描述符 |
| hasFrame | 确定是否有视频帧可供读取 |
| imdistline | 距离工具 |
| matchFeatures | 查找匹配的特征 |
| open | 打开文件以写入视频数据 |
| read | 读取一个或多个视频帧 |
| readFrame | 读取下一个视频帧 |
| VideoReader | 创建对象以读取视频文件 |
| VideoWriter | 创建对象以写入视频文件 |
| writeVideo | 将视频数据写入到文件 |
| fplot | 绘制表达式或函数 |
| dsp_SpectrumAnalyzer | 显示时域信号的频谱 |
| timescope | 显示时域信号 |
| extract | 从 rfckt 对象或数据对象中提取指定的网络参数 |
| bchenc | BCH 编码器 |
| bchnumerr | BCH 码的可纠正错误数 |
| comm_SymbolSynchronizer | 校正符号定时时钟偏移 |
| rsgenpoly | Reed-Solomon 码的生成多项式 |
| dvbs2ldpc | DVB-S.2 标准的低密度奇偶校验 (LDPC) 码 |
| constellation | 计算或绘制理想信号星座图 |
| quantiz | 产生量化索引和量化输出值 |
| bchdec | BCH 解码器 |
| comm_ACPR | 测量相邻通道功率比(ACPR) |
| ksdensity | 单变量和双变量数据的核平滑函数估计 |
| randsample | 随机样本 |
| iddata | 在时域或频域用于系统识别的输入输出数据及其特性 |
| pulse2pda | 脉冲响应的峰值失真分析眼图 |
| eul2rotm | 将欧拉角转换为旋转矩阵 |
| sigmf | S 型隶属函数 |
| edit | 编辑或创建文件 |
| evalc | 计算 MATLAB 表达式并捕获结果 |
| builtin | 从已重载的方法执行内置函数 |
| nargoutchk | 验证输出参量数目 |
| ismissing | 查找缺失值 |
| nonzeros | 非零矩阵元素 |
| detectFASTFeatures | 使用 FAST 算法检测角点 |
| detectHarrisFeatures | 使用 Harris–Stephens 算法检测角点 |
| drawrectangle | 创建可定制的矩形 ROI |
| syms | 创建符号标量变量和函数以及矩阵变量和函数 |