# 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 已知的内存占用高问题。

  1. 回退了 v1.9 的启发式算法,采用了 v1.8 的算法实现(与社区 Julia1.10 策略一致)
  2. 修复了循环内的内存持续增长,除非手动调用 GC.gc()的问题
  3. 修复了多线程环境下的 IO 操作内存持续增长的问题
  4. 修复了错误的分支判断导致内存回收的间隔增大
  5. 修复了社区 Julia1.9.3 的 --heap-size-hint 启动选项,在部分场景上不生效的问题
  6. 修复了全局变量被 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 个。

  1. 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  4
    
  2. strfind 函数返回值支持匹配成功的结果有重复部分。

    在以前的版本中,返回值不会匹配重复部分,例如:

    strfind("01010101","0101")
    
    2-element Vector{Int64}:
    1
    5
    

    从 2025a SP3 版本开始,返回值变为:

    3-element Vector{Int64}:
    1
    3
    5
    

# 图形工具箱

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

  1. 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])
    
  2. 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])
    
  3. 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 个。

函数输出与输入相对应

函数的输出参数的类型应该与输入参数类型具有正确的对应关系,修复了部分问题。

  1. acde

    2025a SP3 版本引入破坏性更新,acde 函数输出类型应与输入对应,在输入长度为 1 的数组时,不再输出标量。

    acde([1+im],0.5)
    

    更新前结果:

    0.657030554832884 - 0.6396307855855033im
    

    更新后结果:

    1-element Vector{ComplexF64}:
    0.657030554832884 - 0.6396307855855033im
    
  2. asne

    2025a SP3 版本引入破坏性更新,asne 函数输出类型应与输入对应,在输入长度为 1 的数组时,不再输出标量。

    asne([1+im],0.5)
    

    更新前结果:

    0.342969445167116 + 0.6396307855855033im
    

    更新后结果:

    1-element Vector{ComplexF64}:
    0.342969445167116 + 0.6396307855855033im
    
  3. landen

    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。
  1. butter

    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
    
  2. cheby1

    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
    
  3. cheby2

    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
    
  4. ellip

    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 个。

函数输出与输入相对应

  1. int2bit

    Syslab 2025a SP4 版本引入,int2bit 函数输出类型应与输入对应,在输入向量或标量时返回向量而不是矩阵。

    int2bit([3,2],2)
    

    2025a SP4 更新前输出:

    4×1 Matrix{Int64}:
     1
     1
     1
     0
    

    2025a SP4 更新后输出:

    4-element Vector{Int64}:
     1
     1
     1
     0
    
  2. bit2int

    Syslab 2025a SP4 版本引入,bit2int 函数输出类型应与输入对应,在输入向量时返回向量而不是矩阵。

    bit2int([1;0],1)
    

    2025a SP4 更新前输出:

    2×1 Matrix{Int64}:
     1
     0
    

    2025a SP4 更新后输出:

    2-element Vector{Int64}:
     1
     0
    
  3. qamdemod

    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.0
    

    2025a SP4 更新后输出:

    6-element Vector{UInt8}:
     0x00
     0x01
     0x00
     0x01
     0x01
     0x01
    
  4. gftuple

    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])
    
  5. gfdeconv

    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])
    

功能修改&增强

  1. comm_BCHEncoder

    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
     1
    

    2025a SP4 更新后输出:

    15-element Vector{UInt8}:
     0x00
     0x01
     0x00
     0x01
     0x01
     0x00
     0x00
     0x01
     0x00
     0x00
     0x00
     0x01
     0x01
     0x01
     0x01
    
  2. comm_BCHDecoder

    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
     1
    

    2025a 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 绘制训练结果

# 函数性能优化

  1. 图形库优化 bar 函数:对于 1*200000 数据量耗时从 90.5 s 提升到 3.7 s,提升约 24 倍;

  2. 基础数学性能优化 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 倍左右
  3. 信号处理工具箱优化 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 倍左右
  4. 通信工具箱优化 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 循环的下一迭代