# 2025b V1.0.7 发行说明
本文介绍 Syslab 2025b V1.0.7 的最新特征。
版本:Syslab 2025b
内部版本号:V1.0.7
发行时间:2025.07
MWORKS. Syslab 2025b V1.0.7 正式发布。此版本中同元自建 Julia,升级至 1.9.3+7,全新推出了 APP 设计工具、Syslab Copilot,交互式编程环境优化了 IDE、调试、绘图、性能分析工具、代码生成、M 导入工具等多个模块;科学计算函数库优化了 17 个函数库及若干个函数;科学计算 APP 优化了曲线拟合 APP。
# 新增功能
# ★Julia 升级至 1.9.3+7
同元自建 Julia,从 1.9.3 升级至 1.9.3+7 版本,解决了社区 Julia1.9.3 已知的内存占用高问题。
- 回退了 v1.9 的启发式算法,采用了 v1.8 的算法实现(与社区 Julia1.10 策略一致)
- 修复了循环内的内存持续增长,除非手动调用
GC.gc()的问题 - 修复了多线程环境下的 IO 操作内存持续增长的问题
- 修复了错误的分支判断导致内存回收的间隔增大
- 修复了社区 Julia1.9.3 的
--heap-size-hint启动选项,在部分场景上不生效的问题 - 修复了全局变量被 GC 错误回收导致 Julia 内存崩溃的问题
# ★全新推出 APP 设计工具
全新推出 APP 设计工具,APP 设计工具是一个交互式开发环境,用于设计 APP 布局并对其行为进行编程。它提供了 Syslab 编辑器的完整集成版本和大量交互式 UI 组件,并允许您通过从 APP 设计工具直接将 APP 打包为安装程序文件中来分发 APP。
# ★全新推出 Syslab Copilot
支持侧边聊天:全新推出侧边栏聊天功能,侧边聊天是一个编码智能助手,用于在开发中进行实时问答和编程辅助。它接入同元自建的 MWORKS 知识库,可针对 Syslab 使用过程中遇到的问题以及代码编码问题进行了精准解答。同时支持上下文感知的代码建议与问题诊断,允许您直接在侧边栏中获取解决方案和示例代码,从而加快开发与调试效率;
- ★问答中接入 MWORKS 文档与函数知识,并为搜索到的函数提供 Syslab 帮助文档跳转连接
- 自动获取当前编辑器文本作为输入,为其提供 bug 修复、文档生成、单元测试生成等
- 支持新建聊天
- 优化问答输出,生成结果平滑输出到聊天窗口
- 提供复制按钮,用于复制回答结果
- 提供重试按钮,回答结果不满意时可重新生成
- 提供代码块一键复制功能,可复制生成的代码到编辑器中
支持代码补全与生成:支持编辑器内代码补全与生成,用于在开发过程中实时提供上下文感知的代码建议,并可根据自然语言指令直接生成可运行的代码。它与编辑器深度集成,对 Julia 代码补全有较高支持度,能够自动适配项目结构和编码规范,减少重复性功能,并显著提高编码效率与代码质量。
- 支持 Julia 代码补全与生成
- 支持自然语言生成代码
- 支持注释生成
- 支持文档生成
- 支持单元测试生成
- 提供补全状态监控
# 交互式编程环境
IDE 界面改进
- ★新增路径导航栏功能,实时显示当前工作目录路径
- ★新增 for 作用域全局变量遮蔽告警功能
- 新增文件右键导入、拖拽至工作区导入功能,支持 mat、jld2、csv、txt、xlsx 等文件格式
- 新增文本编辑器代码块背景色自定义功能
- 编辑器右键新增代码展开折叠相关右键菜单
- 优化在 for 循环中使用 1:length(s) 或 1:size(s) 可以正确运行,但静态代码分析工具会显示蓝色波浪线,提示可能的潜在问题
- Julia 脚本编辑好 function 之后另存为时支持自动识别函数名保存
- CSV 导入支持自定义替换无法导入的数据(默认替换为 0)
- ★Julia 脚本支持右键菜单打开变量
- 工作区变量可以支持全选、反选
- Julia 启动参数增加切换内存回收的策略的实验性特性选项,可选为默认策略(Syslab 改进策略)或 v1.9(Julia 1.9 版本策略)
- 首选项中新增静态代码检查选项。用于启用或禁用在当前文件上运行静态代码检查以及其它静态代码检查具体场景
- Windows 桌面版支持在线升级
- 界面全新改版,视觉效果升级
- Ribbon 菜单运行按钮使能状态优化,运行状态下置灰
调试功能改进
- 调试变量表格视图支持选中绘图
- 调试 Ribbon 菜单新增“启用编译模式”选项
- 变量监视支持调试时打开变量表格视图
- 调试并计时页面支持快速设置函数为编译模式
- 调试时支持在 local 局部作用域新增变量
绘图功能改进
- ★曲线支持横向游标
- figure 图窗支持 visible 属性
- 绘图库支持无界面模式
- ★图窗增加布局自适应功能,支持自动调整坐标轴、标签边距
- 支持保存图窗为 eps 格式图片
- 图三维坐标轴支持切换 xyz 平面(云化版)
- 静态图显示支持自适应图窗大小(云化版)
- 图窗图像支持复制到剪切板(云化版)
性能分析工具优化
- 优化火焰图样式
- 新增“占用时间最长的行”表格
Syslab 代码生成功能改进
- 修复结构体成员浮点数===运算的 bug
- 生成代码兼容低版本 g++的模板展开深度
- 修复 no-gc 模式下部分字段未被扫描到的 bug
- 修复 typeassert(:: 运算符)的 bug
M 导入工具改进
- ★M 调试支持变量监视
- M 调试工作区支持右键导出
mat文件 - ★MLang 支持数据导入功能
- ★支持从 end 代码跳转到对应的 if、for 语法开头
- 支持跨脚本定义 global 变量,仅需在定义变量的脚本处声明一次
- 支持 table 相关函数,包括 table,cell2table 等创建表和转换类型函数,readtable,writetable 等文件读写函数
- 支持 M 兼容调用 Python 函数的功能
- Julia 调用 M 兼容新增函数接口,支持数值类型变量在 Julia 工作区和 M 工作区之间转换
- 新增 118 个常用 M 函数,当前函数总数为 1941 个
# 科学计算函数库
图形库优化 bar 函数:对于 1*200000 数据量耗时从 90.5 s 提升到 3.7 s,提升约 24 倍;
基础数学性能优化 writebounds、interp3、corrcoef、kstest、movprod、finv、spaugment、rref、cplxpair、cart2sph、nextpow2、subspace、cart2pol、pol2cart、cdf2rdf、gsvd、lscov,bandwidth、pagemtimes 、vecnorm 、polyvalm、gamcdf、movmean、movstd、filter1、mfft1、prob2struct,运行速度大幅提升;
- writebounds:对于 100000*1 的二元优化变量边界场景耗时从 0.943493 s -> 0.801018 s
- interp3 的 nearest 算法耗时从 4.23298 s ->0.798301 s
- corrcoef 耗时从 1.03 s->0.0321 s
- nearcorr 耗时从 5.76 s->0.0542 s
- kstest 耗时从 20.5 s->0.0194 s
- movprod 耗时从 2.48 s->0.973 s
- finv 耗时从 0.879 s->0.340 s
- spaugment:构造 3000*3000 的最小二乘增广方程组,0.9906713s->0.056026s,提升 15 倍左右
- rref:使用 Gauss-Jordan 消元法和部分主元消元法返回简化 800*800 的梯形 A,2.3770688s->0.227608s,提升 10 倍左右
- cplxpair:将 10000*2 的复数排序为复共轭对组,4.2881833s->0.38496s,提升 10 倍左右
- cart2sph:将 100000 个笛卡尔坐标转换为球面坐标,转换 500 遍,2.4397163s->0.449445s,提升 5 倍左右
- nextpow2:计算 100000*1 向量的 2 的更高次幂的指数,计算 4000 次,4.7958571s->0.727248s,提升 7 倍左右
- subspace:计算 A 和 B 这两个 1000*1000 的复数矩阵的列指定的两个子空间之间的角度,3.1059688s->0.829448s,提升 3 倍左右
- cart2pol:将 5000*5000 的三维笛卡尔坐标矩阵转换为极坐标矩阵,计算 5 次,3.4128164s->0.939247s,提升 3 倍左右
- pol2cart:将 5000*5000 的二维极坐标矩阵转换为二维笛卡尔坐标矩阵,计算 5 次,1.5675204s->0.756893s,提升 2 倍左右
- cdf2rdf:将 2000*2000 的复数对角形转换为实数分块对角形,4.6404014s->0.080796s,提升 55 倍左右
- gsvd:将 1000*1000 的矩阵进行广义奇异值分解 4.6142138s->0.793313s,提升 5 倍左右
- lscov:优化输入矩阵的计算策略,存在已知协方差情况下的最小二乘解(Ax=b),A 为 4000*4000,b 为 4000*1,提升 18 倍左右
- bandwidth:10000*10000 的矩阵的上下带宽全页折叠,耗时 0.930235s->0.0001382s,提升 9000 倍左右
- pagemtimes:500*500*200 乘以 500*500*200 的三维数组,耗时 0.650314s->0.328356s,提升 2 倍左右
- vecnorm:计算 10000*10000 的矩阵的列范数,计算 15 遍,耗时 1.1681373s->0.21953s,提升 5 倍左右
- polyvalm:500*500 的矩阵多项式计算 2.0877684s->1.865412s,提升 10% 左右;矩阵多项式计算_300x300 矩阵,耗时 4.06769s->0.675112s,提升 6 倍左右
- gamcdf:计算 gamcdf 分布,输入为 5000*5000 矩阵,耗时 2.1480708s->0.002077s,提升 1000 倍左右
- movmean:计算向量的中心移动平均值,输入为 10000*10000 矩阵,耗时 3.5013239s->0.266167s,提升 12 倍左右
- movstd:计算向量的中心移动标准差,输入为 10000*10000 矩阵,耗时 5.817735s->0.297872s,提升 15 倍左右
- filter1:计算 a 为标量时,输入矩阵为 12000*12000 矩阵,耗时 0.430301s->0.326864s,提升 25% 左右
- mfft1:计算长度为一亿向量的傅里叶变化,耗时 2.34489s->0.574433s,提升 4 倍左右
- prob2struct:将线性问题转化为求解器形式,耗时 24.7059623s->0.0173844s,提升 1400 倍左右
信号处理工具箱优化 33 个函数 xcorr2、invfreqz、resample、upfirdn、buttord、cheb1ord、cheby2、corrmtx、decimate、fir2、firls、orderwaveform、prony、xwvd、schurrc、wvd、xspectrogram、ty_xspectrogram、istft、cusum、ordertrack、filtfilt、cheby1、landen、cde、acde、sne、asne、ellipdeg、ellipap、ellip、zp2ss、firpm,运行时间平均提升 50.8%;
- firpm:针对循环工况进行优化,在循环规模为 1000 时,耗时 3.878117s->0.267033s,提升 13.5 倍左右
通信工具箱优化 25 个函数 cranerainpl、iqcoef2imbal、rainpl、gfprimdf、gfprimfd、gftuple、bit2int、berawgn、bercoding、bchenc、bchdec、bchgenpoly、bchnumerr、cosets、comm_BCHEncoder、comm_BCHDecoder、comm_MemorylessNonlinearity、gfadd、gfdeconv、gfdiv、gfconv、gfmul、gftrunc、gfsub、gfprimck,首次时间平均提升 36%。
# 科学计算 APP
- 优化曲线拟合 APP
- 修复曲线拟合器关闭图窗同时关闭绘图窗口问题
# 删除或变更功能 ⚠️
# 基础工具箱
基础工具箱引入破坏性更新 2 个。
squeeze 函数在输入为 n*1 或 1*n 的矩阵时不再支持返回值为向量的形式;
在输入为 n*1 或 1*n 的矩阵时,返回值从向量修改为原输入矩阵。在以前的版本中,输入 1*n 矩阵会返回向量,例如:
squeeze([1 2 3 4])4-element Vector{Int64}: 1 2 3 4从 2025a SP3 版本开始,返回值变为:
1×4 Matrix{Int64}: 1 2 3 4strfind 函数返回值支持匹配成功的结果有重复部分。
在以前的版本中,返回值不会匹配重复部分,例如:
strfind("01010101","0101")2-element Vector{Int64}: 1 5从 2025a SP3 版本开始,返回值变为:
3-element Vector{Int64}: 1 3 5
# 图形工具箱
图形工具箱引入破坏性更新 3 个。
bar 函数不再支持对返回值图形对象取下标;
返回值图形对象不再支持取下标。在以前的版本中,可以对返回值对象取下标,获取下标对应的单个条形,从而可以设置该单个条形的属性。例如:
b, = bar(1:10) b[2].set_facecolor([1 0 0])
从 2025a SP3 开始,对返回值图形对象取下标会导致报错。在这种情况下,您需要通过 set_cdata 函数修改图形对象的 cdata 属性来修改指定条形的颜色。通过输入要修改的条形序列号和颜色,可以更改指定条形的颜色。仅当 facecolor 或 edgecolor 属性设置为 "flat",cdata 才适用。例如:
b, = bar(1:10) b.set_facecolor("flat") b.set_cdata(2, [1 0 0])barh 函数不再支持对返回值图形对象取下标。
返回值图形对象不再支持取下标。在以前的版本中,可以对返回值对象取下标,获取下标对应的单个条形,从而可以设置该单个条形的属性。例如:
b, = barh(1:10) b[2].set_facecolor([1 0 0])
从 2025a SP3 开始,对返回值图形对象取下标会导致报错。在这种情况下,您需要通过 set_cdata 函数修改图形对象的 cdata 属性来修改指定条形的颜色。通过输入要修改的条形序列号和颜色,可以更改指定条形的颜色。仅当 facecolor 或 edgecolor 属性设置为 "flat",cdata 才适用。例如:
b, = barh(1:10) b.set_facecolor("flat") b.set_cdata(2, [1 0 0])histcounts 函数返回值数量为一个时,返回 bin 计数而不是 bin 边界。在 2025b 之前的版本中,当只有一个返回值时,返回计算的 bin 边界。例如:
using TyPlot X = [2 3 5 7 11 13 17 19 23 29]; edges = histcounts(X, 6)更新前结果:
edges = 7-element Vector{Float64}: 0.0 4.9 9.8 14.700000000000001 19.6 24.5 29.400000000000002从 2025b 开始,返回值数量为一个时,返回计算的 bin 计数。例如:
using TyPlot X = [2 3 5 7 11 13 17 19 23 29]; n = histcounts(X, 6)更新后结果:
n = 1×6 Matrix{Int64}: 2 2 2 2 1 1
# 信号处理工具箱
信号处理工具箱引入破坏性更新 7 个。
函数输出与输入相对应
函数的输出参数的类型应该与输入参数类型具有正确的对应关系,修复了部分问题。
-
2025a SP3 版本引入破坏性更新,acde 函数输出类型应与输入对应,在输入长度为 1 的数组时,不再输出标量。
acde([1+im],0.5)更新前结果:
0.657030554832884 - 0.6396307855855033im更新后结果:
1-element Vector{ComplexF64}: 0.657030554832884 - 0.6396307855855033im -
2025a SP3 版本引入破坏性更新,asne 函数输出类型应与输入对应,在输入长度为 1 的数组时,不再输出标量。
asne([1+im],0.5)更新前结果:
0.342969445167116 + 0.6396307855855033im更新后结果:
1-element Vector{ComplexF64}: 0.342969445167116 + 0.6396307855855033im -
2025a SP3 版本引入破坏性更新,修复了 landen 函数在输入 0 时会返回标量的问题,landen 函数总是输出 Float64 向量,与输入值无关;限制 v = landen(k) 中 k 的范围为 [0,1]。
ret1 = landen(-1) ret2 = landen(0)更新前结果:
ret1 Any[] ret2 0更新后结果:
ERROR: k必须>=0且<=1 ret2 1-element Vector{Float64}: 0.0
滤波器设计函数统一输出
滤波器设计函数中的 butter, cheby1, cheby2, ellip 函数输出统一。
- 传递函数(默认 otype 或 otype="ba"),例如
b,a = butter(6,0.6)或b,a = butter(6,0.6;otype="ba"),这一类调用的情况下,修复了在部分情况下输出 b 为矩阵的问题,b 统一输出为浮点向量 Vector{Float64}; - 零极点增益(otype="zpk"),例如
z,p,k = butter(6,0.6;otype="zpk"),这一类调用的情况下,修复了在部分情况下零点 z 为实数向量或矩阵的问题,z 统一输出为浮点复数向量 Vector{ComplexF64};修复了 butter, cheby1, cheby2 函数的增益 k 输出为单个元素的向量的问题, k 统一输出为浮点数标量 Float64。
-
2025a SP3 版本引入
z,p,k=butter(__;otype="zpk")用法,输出零点 z 的类型由实数或复数向量修改为始终是复数向量,输出增益 k 由单个元素的向量修改为实数标量。fc = 300 fs = 1000 z,p,k = butter(6, fc / (fs / 2);otype="zpk")更新前结果:
z 6-element Vector{Float64}: -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 k 1-element Vector{Float64}: 0.0701154134924536更新后结果:
z 6-element Vector{ComplexF64}: -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im k 0.0701154134924536 -
2025a SP3 版本引入两个破坏性改动:
z,p,k=cheby1(__;otype="zpk")用法,输出零点 z 由单列矩阵或向量修改为始终为复数向量,输出增益 k 由单个元素的向量修改为实数标量;b,a=cheby1(__;otype="ba")或b,a=cheby1(__)用法,设计模拟滤波器且滤波器类型为低通、高通或带通时,传递函数 b 的类型由单行的矩阵更改为向量。
示例一:
fc = 300 fs = 1000 z,p,k = cheby1(6, 10, fc / (fs / 2);otype="zpk")更新前结果:
z 6×1 Matrix{Float64}: -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 k 1-element Vector{Float64}: 0.009572111684331138更新后结果:
z 6-element Vector{ComplexF64}: -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im -1.0 - 0.0im k 0.009572111684331122示例二:
fc = 300 fs = 1000 b, = cheby1(6, 10, fc / (fs / 2), "s")更新前结果:
1×7 Matrix{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 0.000486更新后结果:
7-element Vector{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 0.00048599999999999956 -
2025a SP3 版本引入两个破坏性改动:
z,p,k=cheby2(__;otype="zpk")用法,输出零点 z 由单列矩阵或向量修改为始终为复数向量;输出增益 k 由单个元素的向量修改为实数标量;b,a=cheby2(__;otype="ba")或b,a=cheby2(__)用法中,修复了传递函数 b 在部分情况下输出为单列的矩阵的问题,改动后 b 均输出为浮点向量。
示例一:
fc = 300 fs = 1000 z,p,k = cheby2(6, 50, fc / (fs / 2);otype="zpk")更新前结果:
z 6×1 Matrix{ComplexF64}: -0.9316949084655171 + 0.36324178936271956im -0.9316949084655171 - 0.36324178936271956im -0.340030036190896 + 0.940414575858976im -0.340030036190896 - 0.940414575858976im -0.5823635799999411 + 0.8129284474599535im -0.5823635799999411 - 0.8129284474599535im k 1-element Vector{Float64}: 0.05249235428470689更新后结果:
z 6-element Vector{ComplexF64}: -0.9316949084655171 + 0.36324178936271956im -0.9316949084655171 - 0.36324178936271956im -0.340030036190896 + 0.940414575858976im -0.340030036190896 - 0.940414575858976im -0.5823635799999411 + 0.8129284474599535im -0.5823635799999411 - 0.8129284474599535im k 0.05249235428470689示例二:
b, =cheby2(3,50,[0.5,0.5],"bandpass")更新前结果:
7×1 Matrix{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 0.0更新后结果:
7-element Vector{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -
2025a SP3 版本引入破坏性更新,
z,p,k=ellip(__;otype="zpk")用法,输出零点 z 由单列矩阵或向量修改为始终为复数向量。示例一:
fc = 300 fs = 1000 z,p,k = ellip(6, 10, 50, fc / (fs / 2);otype="zpk")更新前结果:
z 6×1 Matrix{ComplexF64}: -0.8614632003131223 + 0.507820002073837im -0.8614632003131223 - 0.507820002073837im -0.3710290323059894 + 0.9286212668176853im -0.3710290323059894 - 0.9286212668176853im -0.48055349687223803 + 0.876965413596148im -0.48055349687223803 - 0.876965413596148im更新后结果:
z 6-element Vector{ComplexF64}: -0.861463200313123 + 0.5078200020738369im -0.861463200313123 - 0.5078200020738369im -0.3710290323059896 + 0.9286212668176846im -0.3710290323059896 - 0.9286212668176846im -0.4805534968722369 + 0.8769654135961474im -0.4805534968722369 - 0.8769654135961474im示例二:
b, =cheby2(3,50,[0.5,0.5],"bandpass")更新前结果:
7×1 Matrix{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 0.0更新后结果:
7-element Vector{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0
# 通信工具箱
通信工具箱引入破坏性更新 7 个。
函数输出与输入相对应
-
Syslab 2025a SP4 版本引入,int2bit 函数输出类型应与输入对应,在输入向量或标量时返回向量而不是矩阵。
int2bit([3,2],2)2025a SP4 更新前输出:
4×1 Matrix{Int64}: 1 1 1 02025a SP4 更新后输出:
4-element Vector{Int64}: 1 1 1 0 -
Syslab 2025a SP4 版本引入,bit2int 函数输出类型应与输入对应,在输入向量时返回向量而不是矩阵。
bit2int([1;0],1)2025a SP4 更新前输出:
2×1 Matrix{Int64}: 1 02025a SP4 更新后输出:
2-element Vector{Int64}: 1 0 -
Syslab 2025a SP4 版本引入,
qamdemod(__;OutputType="bit")将输出 Array{UInt8} 替代原本的 Array{Float64}。M = 64 rxSig = [-0.0031978771414929164 - 0.5119915408510712im] rxDataHard = qamdemod(rxSig, M; OutputType="bit", UnitAveragePower=true)2025a SP4 更新前输出:
6-element Vector{Float64}: 0.0 1.0 0.0 1.0 1.0 1.02025a SP4 更新后输出:
6-element Vector{UInt8}: 0x00 0x01 0x00 0x01 0x01 0x01 -
Syslab 2025a SP4 版本引入破坏性更新,gftuple 的第二个参数输出总是浮点向量,修复了旧版本中长度为 1 时输出标量的问题。
gftuple([0 0 0 1],3,3)2025a SP4 更新前输出:
([2 1 0], 3)2025a SP4 更新后输出:
([2 1 0], [3.0]) -
Syslab 2025a SP3 版本引入破坏性更新,修复了旧版本中长度为 1 时输出标量的问题,gfdeconv 输出总是向量。
p = 3 b = [0 1 0 1 1] a = [1 1] q, r = gfdeconv(a, b, p)更新前结果:
(0, [1, 1])更新后结果:
([0], [1, 1])
功能修改&增强
-
Syslab 2025a SP4 版本引入破坏性更新,comm_BCHEncoder 的 step 函数输出类型由 Vector{GF1} 更改为 Vector{UInt8}。
using TyCommunication using TyMath enc = comm_BCHEncoder() rng = MT19937ar(1234) data = GF1.(rand(rng, 0:1, 5, 1)) encodedData = step(enc, data)2025a SP4 更新前输出:
15-element Vector{GF1}: 0 1 0 1 1 0 0 1 0 0 0 1 1 1 12025a SP4 更新后输出:
15-element Vector{UInt8}: 0x00 0x01 0x00 0x01 0x01 0x00 0x00 0x01 0x00 0x00 0x00 0x01 0x01 0x01 0x01 -
Syslab 2025a SP4 版本引入破坏性更新,comm_BCHDecoder 的 step 函数输出类型由 Vector{GF1}更改为 Vector{UInt8},并且总是会输出两个参数,第一个参数为解码结果,第二个参数为每帧数据中纠错的个数。
2025a SP4 更新前用法:
using TyCommunication using TyMath enc = comm_BCHEncoder() dec = comm_BCHDecoder() rng = MT19937ar(1234) data = GF1.(rand(rng, 0:1, 5, 1)) encodedData = step(enc, data) data_dec = step(dec, encodedData)2025a SP4 更新前输出:
5-element Vector{GF1}: 0 1 0 1 12025a SP4 更新后用法:
using TyCommunication using TyMath enc = comm_BCHEncoder() dec = comm_BCHDecoder() rng = MT19937ar(1234) data = rand(rng, 0:1, 5, 1) encodedData = step(enc, data) data_dec, = step(dec, encodedData) # 或 data_dec,err = step(dec, encodedData)2025a SP4 更新后输出:
5-element Vector{UInt8}: 0x00 0x01 0x00 0x01 0x01
# 附录:函数列表
# 基础工具箱
基础工具箱新增函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| ty_cumsum | 求累积和 |
| @ty_eval | 计算 Julia 表达式 |
| writetable | 将表写入文件 |
基础工具箱修改函数 14 个。
| 函数名 | 函数说明 |
|---|---|
| clc | 清空命令行窗口 |
| readtable | 基于文件创建表 |
| discretize | 将数据划分到 bin 或类别中 |
| squeeze | 删除长度为 1 的维度 |
| strfind | 在其他字符串中查找字符串 |
| retime | 重采样或聚合时间表中的数据,并解决重复或不规则时间问题 |
| fullfile | 从各个部分构建完整文件名 |
| dec2bin | 将十进制整数转换为其二进制表示形式 |
| csvwrite | 写入逗号分隔值 (CSV) 文件 |
| xlswrite | 写入 Microsoft Excel 电子表格文件 |
| setvaropts | 设置变量导入选项 |
| detectImportOptions | 基于文件内容生成导入选项 |
| setvartype | 设置变量数据类型 |
| discretize | 将数据划分到 bin 或类别中 |
# 图形工具箱
图形工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| histc | 直方图的 bin 计数(不推荐;请改用 histcounts) |
图形工具箱修改函数 25 个。
| 函数名 | 函数说明 |
|---|---|
| bar | 条形图 |
| barh | 水平条形图 |
| plot | 二维线图 |
| contour3 | 三维等高线图 |
| spy | 可视化矩阵的稀疏模式 |
| heatmap | 创建热图 |
| figure | 创建图窗窗口 |
| xlim | 设置或查询 x 坐标轴范围 |
| hist | 直方图(不推荐;请改用 histogram) |
| subplot | 在平铺位置创建坐标区 |
| surf | 曲面图 |
| streamline | 根据二维或三维向量数据绘制流线图 |
| histogram | 直方图 |
| text | 向数据点添加文本说明 |
| stream2 | 计算二维流线图数据 |
| stream3 | 计算三维流线图数据 |
| contourf | 填充的二维等高线图 |
| stairs | 阶梯图 |
| mesh | 网格曲面图 |
| stem3 | 绘制三维离散序列数据 |
| contour | 矩阵的等高线图 |
| imagesc | 使用缩放颜色显示图像 |
| xline | 具有常量 x 值的垂直线 |
| yline | 具有常量 y 值的水平线 |
| histcounts | 直方图 bin 计数 |
# 基础数学工具箱
数学工具箱新增函数 6 个。
| 函数名 | 函数说明 |
|---|---|
| lscov_basic | 可视化复变函数映射的 3D 图形,显示复数输入到复数输出的变换关系 |
| lscov_core | 存在已知协方差的最小二乘解,该函数只输出解 |
| cplxmap | 可视化复变函数映射的 3D 图形,显示复数输入到复数输出的变换关系 |
| cplxgrid | 生成极坐标下的复数网格,用于复平面可视化或数值计算 |
| mifft1 | 针对实向量的快速傅里叶逆变换 |
| mfft1 | 针对实向量的快速傅里叶变换 |
数学工具箱修改函数 28 个。
| 函数名 | 函数说明 |
|---|---|
| spaugment | 构造最小二乘增广方程组 |
| rref | 简化的行阶梯形矩阵(Gauss-Jordan 消元法) |
| lscov | 存在已知协方差的最小二乘解 |
| cplxpair | 将复数排序为复共轭对组 |
| polyvalm | 矩阵多项式计算 |
| cart2pol | 将笛卡尔坐标转换为极坐标或柱坐标 |
| cart2sph | 将笛卡尔坐标转换为球面坐标 |
| pol2cart | 将极坐标或柱坐标转换为笛卡尔坐标 |
| cdf2rdf | 拟三角矩阵的特征值 |
| hilb | hilbert 矩阵 |
| nextpow2 | 2 的更高次幂的指数 |
| realpow | 仅实数输出的数组幂 |
| gsvd | 广义奇异值分解 |
| etree | 消去树 |
| griddata | 对二维或三维散点数据插值 |
| interp2 | meshgrid 格式的二维网格数据插值 |
| linsolve | 对线性方程组求解 |
| subspace | 两个子空间之间的角度 |
| conv | 卷积和多项式 |
| linear3 | linear 算法的三维插值 |
| interp3 | meshgrid 格式的三维网格数据的插值 |
| quad2d | 计算二重数值积分 - tiled 方法 |
| quad3d | 对三重积分进行数值计算 |
| bandwidth | 矩阵的上下带宽 |
| pagemtimes | 按页矩阵乘法 |
| vecnorm | 向量范数 |
| ty_ifft | 快速傅里叶逆变换 |
| filter1 | 1 维数字滤波器 |
# 统计工具箱
统计工具箱修改函数 11 个。
| 函数名 | 函数说明 |
|---|---|
| corrcoef | 相关系数 |
| normfit | 正态分布参数估计 |
| nearcorr | 通过最小化 Frobenius 距离计算最近的相关矩阵 |
| tpdf | t 分布概率密度函数 |
| kstest2 | 双样本 Kolmogorov-Smirnov 检验 |
| movprod | 移动乘积 |
| normpdf | 正态概率密度函数 |
| finv | F 逆累积分布函数 |
| movmean | 移动均值 |
| gamcdf | Gamma 累积分布函数 |
| movstd | 移动标准差 |
# 曲线拟合工具箱
曲线拟合工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| plot3fit | 绘制三维 FitResult 结构体 |
# 优化工具箱
优化工具箱修改函数 5 个。
| 函数名 | 函数说明 |
|---|---|
| fminunc | 求无约束多变量函数的最小值 |
| fmincon | 寻找约束非线性多变量函数的最小值 |
| writeinbounds | 保存变量边界描述 |
| prob2struct | 将优化问题或方程问题转换为求解器形式 |
| quadprog | 二次规划 |
# 全局优化工具箱
全局优化工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| ga | 用遗传算法寻找函数最小值 |
# 符号数学工具箱
符号数学工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| sym_nsolve | 符号求解非线性方程组 |
符号数学工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| find_roots | 多项式的根 |
| PieceWise | 分段表达式 |
| sym_simplify | 代数简化 |
# 信号处理工具箱
信号处理工具箱修改函数 35 个。
| 函数名 | 函数说明 |
|---|---|
| resampe | 将均匀或非均匀数据重新采样到新的固定速率 |
| upfirdn | 上采样、应用 FIR 滤波器和下采样 |
| envelope | 信号包络 |
| xcorr2 | 二维互相关 |
| acde | cd 椭圆函数的逆 |
| asne | sn 椭圆函数的逆 |
| butter | 巴特沃斯滤波器设计 |
| buttord | 巴特沃斯滤波器阶数和截止频率 |
| cde | 带归一化复数输入的 cd 椭圆函数 |
| cheb1ord | 切比雪夫(Chebyshev)I 型滤波器设计 |
| cheby1 | 切比雪夫(Chebyshev)I 型滤波器设计 |
| cheby2 | 切比雪夫(Chebyshev)II 型滤波器设计 |
| cusum | 使用累计和检测平均值的微小变化 |
| decimate | 抽取 — 按整数因子降低采样率 |
| ellip | 椭圆滤波器的设计 |
| ellipap | 椭圆模拟低通滤波器原型 |
| ellipdeg | 模拟椭圆滤波器设计中阶数方程的求解 |
| filtfilt | 零相位数字滤波 |
| fir2 | 基于频率采样的 FIR 滤波器设计 |
| firls | 最小二乘线性相位 FIR 滤波器设计 |
| istft | 短时傅立叶逆变换 |
| landen | 椭圆模数的 Landen 变换 |
| ordertrack | 跟踪并提取振动信号的阶次幅度 |
| orderwaveform | 从振动信号中提取时域阶次波形 |
| prony | 滤波器设计的 Prony 方法 |
| schurrc | 根据自相关序列计算反射系数 |
| sne | 带归一化复数输入的 sn 椭圆函数 |
| ty_xspectrogram | 使用短时傅立叶变换的互谱图 |
| wvd | Wigner-Ville 分布和平滑伪 Wigner-Ville 分布 |
| xspectrogram | 使用短时傅立叶变换的互谱图 |
| xwvd | 交叉 Wigner-Ville 分布和交叉平滑伪 Wigner-Ville 分布 |
| zp2ss | 将零极点增益滤波器参数转换为状态空间形式 |
| firpm | Parks-McClellan 最优 FIR 滤波器设计 |
| firpmord | Parks-McClellan 最优 FIR 滤波器阶数估计 |
| bilinear | 模数滤波器转换的双线性变换方法 |
# 通信工具箱
通信工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| comm_MLSEEqualizer | 使用最大似然序列估计均衡调制信号 |
通信工具箱修改函数 36 个。
| 函数名 | 函数说明 |
|---|---|
| qamdemod | 正交幅度解调 |
| int2bit | 将整数转换为位 |
| bit2int | 将位转换为整数 |
| comm_OFDMDemodulator | 使用 OFDM 方法解调 |
| showResourceMapping | 显示 OFDM 调制器或解调器系统对象创建的 OFDM 符号的子载波映射 |
| berfit | 将曲线拟合到非平滑的经验 BER 数据 |
| berawgn | BER 和 SER 用于 AWGN 信道上的未编码数据 |
| bercoding | 编码 AWGN 信道的 BER |
| awgn | 为信号增加高斯白噪声 |
| cranerainpl | 使用 Crane 模型的降雨导致的射频信号衰减 |
| iqcoef2imbal | 将补偿器系数转换为幅度和相位不平衡 |
| rainpl | 降雨导致的射频信号衰减 |
| gfprimdf | 为 Galois 域提供默认的本原多项式 |
| gfprimfd | 查找 Galois 域的本原多项式 |
| gftuple | 简化或转换 Galois 域元素的表示格式 |
| comm_MemorylessNonlinearity | 将无记忆非线性应用于复基带信号 |
| bchdec | BCH 解码器 |
| bchenc | BCH 编码器 |
| bchgenpoly | BCH 码多项式生成器 |
| bchnumerr | BCH 码的可纠正错误数 |
| cosets | 生成 Galois 域的分圆陪集 |
| comm_BCHEnocder | 使用 BCH 编码器对数据进行编码 |
| comm_BCHDecoder | 使用 BCH 解码器解码数据 |
| gfadd | Galois 域上的加法 |
| gfconv | Galois 域上的多项式乘法 |
| gfdeconv | Galois 域上的多项式除法 |
| gfdiv | Galois 域上的除法 |
| gfmul | Galois 域上的乘法 |
| gfprimck | 检查 Galois 域上的多项式是否为本原多项式 |
| gfsub | Galois 域上的减法 |
| gftrunc | 最小化多项式的表示长度 |
| comm_FMModulator | 用 FM 法调制信号 |
| comm_FMDemodulator | 解调基带 FM 信号 |
| comm_EyeDiagram | 显示时域信号的眼图 |
| eyediagram | 生成眼图 |
| comm_TurboDecoder | 使用并行串联解码方案对输入信号进行解码 |
# DSP 系统工具箱
DSP 系统工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| audiowriter | 修复音频重复写入问题 |
| dsp_DynamicFilterVisualizer | 修改 dsp_DynamicFilterVisualizer 每次会新建图窗的问题 |
| sound | 将信号数据矩阵转换为声音 |
# 相控阵工具箱
相控阵工具箱修改函数 21 个。
| 函数名 | 函数说明 |
|---|---|
| ambgfun | 模糊函数 |
| radialspeed | 相对径向速度 |
| phased_FreeSpace | 自由空间环境 |
| phased_LOSChannel | 窄带 LOS 传播信道 |
| phased_RadarTarget | 雷达目标 |
| phased_WidebandFreeSpace | 宽带自由空间传播 |
| phased_CustomMicrophoneElement | 自定义麦克风元件 |
| phased_HeterogeneousConformalArray | 异构共形阵列 |
| phased_HeterogeneousULA | 异构均匀线性阵列 |
| phased_HeterogeneousURA | 异构均匀矩形阵列 |
| phased_IsotropicAntennaElement | 各向同性的天线元件 |
| phased_IsotropicHydrophone | 各向同性水听器元件 |
| phased_IsotropicProjector | 各向同性投影元件 |
| phased_ReplicatedSubarray | 由子阵列复制形成的相控阵 |
| phased_SteeringVector | 传感器阵列导向向量 |
| phased_ULA | 均匀线性阵列 |
| phased_URA | 均匀的矩形阵列 |
| phased_Radiator | 窄带信号辐射器 |
| phased_ReceiverPreamp | 接收器前置放大器 |
| phased_Transmitter | 发射机 |
| phased_RangeResponse | 距离响应 |
# 射频工具箱
射频工具箱新增函数 10 个。
| 函数名 | 函数说明 |
|---|---|
| abcd2s | 将 ABCD 参数转换为 S 参数 |
| abcd2h | 将 ABCD 参数转换为混合 h 参数 |
| abcd2y | 将 ABCD 参数转换为 Y 参数 |
| abcd2z | 将 ABCD 参数转换为 Z 参数 |
| z2abcd | 将 Z 参数转换为 ABCD 参数 |
| z2h | 将 Z 参数转换为混合 h 参数 |
| z2s | 将 Z 参数转换为 S 参数 |
| z2y | 将 Z 参数转换为 Y 参数 |
| y2abcd | 将 Y 参数转换为 ABCD 参数 |
| s2abcd | 将 S 参数转换为 ABCD 参数 |
射频工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| analyze | 在频域中分析 RFCKT 对象 |
| sparameters | 计算射频数据、网络、电路和匹配网络对象的 S 参数 |
| rfwrite | 将 RF 网络数据写入 Touchstone 文件 |
# 控制系统工具箱
控制系统工具箱修改函数 31 个。
| 函数名 | 函数说明 |
|---|---|
| bandwidth | 频率响应带宽 |
| c2d | 将模型从连续时间形式转换为离散时间形式 |
| bode | 频率响应伯德图,或幅值和相位数据 |
| nyquist | 频率响应奈奎斯特图 |
| nichols | 尼科尔斯频率响应图 |
| sigma | 动态系统的奇异值图 |
| rga | 频率响应相对增益图 |
| pzplot | 使用其他绘图自定义选项绘制动态系统模型的零极点图 |
| iopzplot | 使用其他绘制自定义选项绘制动态系统模型的 I / O 通道零极点图 |
| bodeplot | 使用额外的自定义绘图选项绘制频率响应的波德图 |
| nyquistplot | 使用额外的自定义绘图选项绘制频率响应的奈奎斯特图 |
| nicholsplot | 使用额外的自定义绘图选项绘制频率响应的尼柯尔斯图 |
| sigmaplot | 使用额外的自定义绘图选项绘制频率响应的奇异值图 |
| rgaplot | 频率响应相对增益图 |
| margin | 增益裕度、相位裕度和交叉频率 |
| pzmap | 动态系统的零、极点图 |
| rlocus | 动态系统的根轨迹图 |
| rlocusplot | 绘制动态系统的根轨迹图并返回绘图句柄 |
| step | 动态系统的阶跃响应图,阶跃响应数据 |
| initial | 状态空间模型的初始条件响应 |
| impulse | 动态系统的脉冲响应图:脉冲响应数据 |
| lsim | 模拟动态系统对任意输入的模拟响应数据 |
| stepplot | 动态系统的阶跃响应图 |
| initialplot | 使用其他绘制自定义选项绘制初始条件响应 |
| impulseplot | 绘图脉冲响应与额外的绘图自定义选项 |
| lsimplot | 动态系统对任意输入的时间响应图 |
| pzgrid | 系统零极点和根轨迹图的网格 |
| zgrid | 离散系统零极点和根轨迹图的网格 |
| sgrid | 连续系统零极点和根轨迹图的网格 |
| nicholsgrid | 动态系统 nichols 图网格的生成、显示与隐藏 |
| zpk | 零极点增益模型 |
# 鲁棒控制工具箱
鲁棒控制工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| augw | 用于加权混合灵敏度 H∞ 和 H2 回路成形设计的受控系统增广 |
| mixsyn | 混合灵敏度问题的鲁棒 H∞ 回路成形设计方法 |
| robstab | 不确定系统的鲁棒稳定性 |
# 图像处理工具箱
图像处理工具箱新增函数 21 个。
| 函数名 | 函数说明 |
|---|---|
| pointCloud | 用于存储 3D 点云的对象 |
| imref3d | 将三维参考图像转换到世界坐标系 |
| rigidtform3d | 三维刚性几何变换 |
| pctransform | 变换 3D 点云 |
| pcread | 从 PLY 或 PCD 文件中读取三维点云数据 |
| pcshow | 绘制三维点云图 |
| pcshowpair | 可视化两个点云之间的差异 |
| pcregistericp | 使用 ICP 算法配准两个点云 |
| pcdownsample | 对 3D 点云进行下采样 |
| pcnormals | 估计点云的法线 |
| planeModel | 用于存储参数化平面模型的对象 |
| pcfitplane | 将平面拟合到三维点云 |
| pcdenoise | 从三维点云中移除噪声 |
| pcregisterndt | 使用 NDT 算法配准两点云 |
| findNearestNeighbors | 在点云中查找点的最近 K 个邻域点 |
| findNeighborsInRadius | 在点云中的指定半径内查找所有邻域点 |
| findPointsInROI | 在点云中查找感兴趣区域内的所有点 |
| findPointsInCylinder | 在点云中的圆柱形区域内查找所有点 |
| removeInvalidPoints | 从点云中删除无效点 |
| select | 在点云中选择指定点 |
| copy | 复制点云 |
图像处理工具箱修改函数 5 个。
| 函数名 | 函数说明 |
|---|---|
| imregionalmax | 区域最大值 |
| imfindcircles | 使用圆形霍夫变换查找圆 |
| wiener2 | 二维自适应去噪滤波 |
| image | 从数组显示图像 |
| imshow | 显示图像 |
# 强化学习工具箱
强化学习工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| plot_result | 绘制训练结果 |
# 函数性能优化
图形库优化 bar 函数:对于 1*200000 数据量耗时从 90.5 s 提升到 3.7 s,提升约 24 倍;
基础数学性能优化 writebounds、interp3、corrcoef、kstest、movprod、finv、spaugment、rref、cplxpair、cart2sph、nextpow2、subspace、cart2pol、pol2cart、cdf2rdf、gsvd、lscov、bandwidth、pagemtimes 、vecnorm 、polyvalm、gamcdf、movmean、movstd、filter1、mfft1、prob2struct,运行速度大幅提升;
- writebounds:对于 100000*1 的二元优化变量边界场景耗时从 0.943493 s -> 0.801018 s
- interp3 的 nearest 算法耗时从 4.23298 s ->0.798301 s
- corrcoef 耗时从 1.03 s->0.0321 s
- nearcorr 耗时从 5.76 s->0.0542 s
- kstest 耗时从 20.5 s->0.0194 s
- movprod 耗时从 2.48 s->0.973 s
- finv 耗时从 0.879 s->0.340 s
- spaugment:构造 3000*3000 的最小二乘增广方程组,0.9906713s->0.056026s,提升 15 倍左右
- rref:使用 Gauss-Jordan 消元法和部分主元消元法返回简化 800*800 的梯形 A,2.3770688s->0.227608s,提升 10 倍左右
- cplxpair:将 10000*2 的复数排序为复共轭对组,4.2881833s->0.38496s,提升 10 倍左右
- cart2sph:将 100000 个笛卡尔坐标转换为球面坐标,转换 500 遍,2.4397163s->0.449445s,提升 5 倍左右
- nextpow2:计算 100000*1 向量的 2 的更高次幂的指数,计算 4000 次,4.7958571s->0.727248s,提升 7 倍左右
- subspace:计算 A 和 B 这两个 1000*1000 的复数矩阵的列指定的两个子空间之间的角度,3.1059688s->0.829448s,提升 3 倍左右
- cart2pol:将 5000*5000 的三维笛卡尔坐标矩阵转换为极坐标矩阵,计算 5 次,3.4128164s->0.939247s,提升 3 倍左右
- pol2cart:将 5000*5000 的二维极坐标矩阵转换为二维笛卡尔坐标矩阵,计算 5 次,1.5675204s->0.756893s,提升 2 倍左右
- cdf2rdf:将 2000*2000 的复数对角形转换为实数分块对角形,4.6404014s->0.080796s,提升 55 倍左右
- gsvd:将 1000*1000 的矩阵进行广义奇异值分解 4.6142138s->0.793313s,提升 5 倍左右
- lscov:优化输入矩阵的计算策略,存在已知协方差情况下的最小二乘解(Ax=b),A 为 4000*4000,b 为 4000*1,提升 18 倍左右
- bandwidth:10000*10000 的矩阵的上下带宽全页折叠,耗时 0.930235s->0.0001382s,提升 9000 倍左右
- pagemtimes:500500200 乘以 500500200 的三维数组,耗时 0.650314s->0.328356s,提升 2 倍左右
- vecnorm:计算 10000*10000 的矩阵的列范数,计算 15 遍,耗时 1.1681373s->0.21953s,提升 5 倍左右
- polyvalm:500*500 的矩阵多项式计算 2.0877684s->1.865412s,提升 10% 左右;矩阵多项式计算_300x300 矩阵,耗时 4.06769s->0.675112s,提升 6 倍左右
- gamcdf:计算 gamcdf 分布,输入为 5000*5000 矩阵,耗时 2.1480708s->0.002077s,提升 1000 倍左右
- movmean:计算向量的中心移动平均值,输入为 10000*10000 矩阵,耗时 3.5013239s->0.266167s,提升 12 倍左右
- movstd:计算向量的中心移动标准差,输入为 10000*10000 矩阵,耗时 5.817735s->0.297872s,提升 15 倍左右
- filter1:计算 a 为标量时,输入矩阵为 12000*12000 矩阵,耗时 0.430301s->0.326864s,提升 25%左右
- mfft1:计算长度为一亿向量的傅里叶变化,耗时 2.34489s->0.574433s,提升 4 倍左右
- prob2struct:将线性问题转化为求解器形式,耗时 24.7059623s->0.0173844s,提升 1400 倍左右
信号处理工具箱优化 33 个函数 xcorr2、invfreqz、resample、upfirdn、buttord、cheb1ord、cheby2、corrmtx、decimate、fir2、firls、orderwaveform、prony、xwvd、schurrc、wvd、xspectrogram、ty_xspectrogram、istft、cusum、ordertrack、filtfilt、cheby1、landen、cde、acde、sne、asne、ellipdeg、ellipap、ellip、zp2ss、firpm,运行时间平均提升 50.8%;
- firpm:针对循环工况进行优化,在循环规模为 1000 时,耗时 3.878117s->0.267033s,提升 13.5 倍左右
通信工具箱优化 25 个函数 cranerainpl、iqcoef2imbal、rainpl、gfprimdf、gfprimfd、gftuple、bit2int、berawgn、bercoding、bchenc、bchdec、bchgenpoly、bchnumerr、cosets、comm_BCHEncoder、comm_BCHDecoder、comm_MemorylessNonlinearity、gfadd、gfdeconv、gfdiv、gfconv、gfmul、gftrunc、gfsub、gfprimck,首次时间平均提升 36%。
# M 兼容新增函数
M 兼容新增函数 118 个。
| 函数名 | 函数说明 |
|---|---|
| table | 具有命名变量的表数组(变量可包含不同类型的数据) |
| width | 表的变量数 |
| height | 表行数 |
| array2table | 将同构数组转换为表 |
| cell2table | 将元胞数组转换为表 |
| struct2table | 将结构体数组转换为表 |
| table2cell | 将表转换为元胞数组 |
| istable | 确定输入是否为表 |
| size | Map 对象的大小 |
| length | Map 对象中的键-值对组的数量 |
| validatestring | 检查文本的有效性 |
| rethrow | 重新发出错误 |
| onCleanup | 函数完成后的清理任务 |
| properties | 类属性名称 |
| methods | 类方法名称 |
| pcread | 从 PLY 或 PCD 文件中读取 3-D 点云 |
| pcshowpair | 可视化两组点云之间的差异 |
| pcshow | 绘制三维点云 |
| pointCloud | 存储三维点云的对象 |
| select | 选择点云中的点 |
| pcnormals | 估算点云的法向量 |
| rigidtform3d | 三维刚性几何变换 |
| findPointsInCylinder | 在点云中查找圆柱区域内的点 |
| removeInvalidPoints | 从点云中移除无效点 |
| pctransform | 变换 3D 点云 |
| pcdownsample | 对 3D 点云进行下采样 |
| imref3d | 将三维图像参考到世界坐标 |
| findNearestNeighbors | 在点云中查找某一点的最近邻点 |
| findNeighborsInRadius | 在点云中查找某一点半径范围内的邻点 |
| findPointsInROI | 在点云中查找感兴趣区域内的点 |
| copy | 拷贝点云对象 |
| planeModel | 用于存储参数化平面模型的对象 |
| pcfitplane | 将平面拟合到三维点云 |
| pcdenoise | 从三维点云中移除噪声 |
| pcregisterndt | 使用 NDT 算法配准两个点云 |
| pcregistericp | 使用 ICP 算法注册两个点云 |
| piecewise | 分段表达式 |
| write | 将射频数据从电路或数据对象写入文件 |
| comm_LinearEqualizer | 使用线性滤波均衡调制信号 |
| comm_BCHEncoder | 使用 BCH 编码器对数据进行编码 |
| comm_BCHDecoder | 使用 BCH 解码器解码数据 |
| ispc | 确定版本是否适用于 Windows (PC) 平台。 |
| isunix | 确定版本是否适用于 Linux 平台或 Mac 平台 |
| setenv | 设置环境变量 |
| sprand | 稀疏均匀分布随机矩阵 |
| spconvert | 从稀疏矩阵外部格式导入 |
| sprandn | 稀疏正态分布随机矩阵 |
| datasample | 从数据中随机抽样,可放回或不放回 |
| hist3 | 双变量直方图 |
| tcpip | 创建 TCPIP 对象 |
| visa | 创建 VISA 对象 |
| gpib | 创建 GPIB 对象 |
| serial | 创建串行端口对象 |
| fopen | 将接口对象连接到设备 |
| fclose | 断开接口对象与设备的连接 |
| fwrite | 将二进制数据写入设备 |
| fread | 从设备中读取二进制数据 |
| binblockwrite | 将二进制块数据写入设备 |
| binblockread | 从设备中读取二进制块数据 |
| fprintf | 将文本写入设备 |
| fscanf | 读取设备中的 ASCII 数据并将格式设置为文本 |
| fgetl | 读取设备文本行并包含终止符 |
| fgets | 读取设备文本行并包含终止符 |
| query | 将文本写入设备并从设备中读取数据 |
| instrfind | 从内存中读取仪器对象到 MLang 工作区 |
| echotcpip | 启动或停止 TCP/IP 回显服务器 |
| ins_save | 将仪器对象和变量保存到 MAT 文件中 |
| ins_load | 将仪器对象和变量加载到 MLang 工作区 |
| instrhwinfo | 获取可用硬件的信息 |
| categorical | 数组,包含分配给类别的值 |
| iscategorical | 确定输入是否为分类数组 |
| categories | 分类数组中的类别列表 |
| discretize | 将数据划分为 bin 或类别 |
| prepareSurfaceData | 为曲面拟合准备数据输入 |
| coeffname | cfit、sfit 或 fittype 对象的系数名称 |
| convhull | 凸包 |
| smoothdata | 对含噪数据进行平滑处理 |
| fillmissing | 填充缺失条目 |
| rfplot | 绘制 S 参数数据 |
| prctile | 数据集的百分位数 |
| histc | 直方图的 bin 计数 |
| pyrun | 从 MLang 中运行 Python 语句 |
| pyargs | 为 Python 函数创建关键字参量 |
| pyrunfile | 从 MLang 运行 Python 脚本文件 |
| pyversion | 更改 Python 解释器的默认版本 |
| classdef | 类定义关键字 |
| run | 运行 MATLAB 脚本 |
| table2array | 将表转换为同构数组 |
| table2struct | 将表转换为结构体数组 |
| readtable | 基于文件创建表 |
| writetable | 将表写入文件 |
| head | 获取表、时间表或 tall 数组的前几行 |
| tail | 获取表、时间表或 tall 数组的最后几行 |
| addvars | 将变量添加到表或时间表中 |
| renamevars | 重命名表或时间表中的变量 |
| movevars | 在表或时间表中移动变量 |
| removevars | 从表或时间表中删除变量 |
| splitvars | 在表或时间表中拆分多列变量 |
| mergevars | 将表或时间表变量合并成多列变量 |
| vartype | 将变量类型作为下标对表或时间表进行索引 |
| rows2vars | 调整表或时间表的方向以使行成为变量 |
| spreadsheetImportOptions | 电子表格的导入选项对象 |
| getvaropts | 获取变量导入选项 |
| setvaropts | 设置变量导入选项 |
| setvartype | 设置变量数据类型 |
| preview | 使用导入选项预览文件中的八行数据 |
| summary | 输出表、时间表或分类数组的摘要 |
| topkrows | 按排序顺序的前若干行 |
| convertvars | 将表或时间表变量转换为指定的数据类型 |
| stack | 将多个变量中的数据堆叠到一个变量中 |
| unstack | 将单个变量中的数据分叠到多个变量中 |
| inner2outer | 反转表或时间表中嵌套的表格层次结构 |
| addprop | 向表或时间表添加自定义属性 |
| rmprop | 从表或时间表中删除自定义属性 |
| try,catch | 执行语句并捕获产生的错误 |
| break | 终止执行 for 或 while 循环 |
| return | 将控制权交还给调用脚本或函数 |
| continue | 将控制传递给 for 或 while 循环的下一迭代 |