# 2025a V1.0.2 发行说明
本文介绍 Syslab 2025a V1.0.2 的最新特征。
版本:Syslab 2025a
内部版本号:V1.0.2
发行时间:2025.02
欢迎使用 Syslab 2025a V1.0.2,这是在 2024b SP1 V0.11.6 版本基础上的一次重要更新。在此版本中,交互式编程环境全新发布 M 导入工具 V3 版本,优化了工作区、调试、绘图交互、代码生成、双向融合、帮助文档等多个模块;科学计算函数库优化了 20 个函数库及若干个函数;科学计算 APP 优化了 3 个科学计算 APP。
# 新增功能
# ★交互式编程环境
IDE 界面改进
- ★工作区与变量编辑器的性能优化
- ★代码编辑器新增函数库加载提示
- Ribbon 工具栏新增插入分节符和运行当前节(Julia 语言使用
##表示一个分节符,M 语言使用%%表示一个分节符) - 支持双击导入 JLD2 文件
- 完善 .m 文件命名规范,必须以字母开头,并且只能包含数字、字母或下划线
- 解决少有场景下 Julia 终端滚动条无法选中问题
- 首选项增加 Unicode 字符突出显示
- 首选项增加命令行窗口滚动缓冲区的行数设置
调试功能改进
- ★Ribbon 工具栏新增启动调试并计时,用于查找调试性能热点
- ★Ribbon 工具栏新增“调试模式设置”功能,支持界面化设置函数库或函数的解释/编译模式
- 调试控制台支持 Tab 键代码补全
- 调试变量区支持变量搜索
- 调试变量区支持 Local 作用域变量按字母排序
- 调试变量区支持右键菜单绘图
- 调试增加“运行到光标处”右键菜单
- 调试过程中支持数据导出
- 调试性能优化:
- 若函数没有设置断点且只调用了编译模式执行的函数,则该函数按编译模式执行
绘图功能改进
- ★循环绘制多条曲线性能优化(例如,循环画 10000 条线,每条线包含 10 个点,耗时从 29.3s 减少至 6.7s)
- ★支持图像对象的数据提示功能
- 支持 text 标签的复制粘贴
- 支持水平/垂直平移
- 支持数据提示标签调整大小
- 缺省绘图 x 轴从 1 开始
- 绘图窗口显示鼠标位置的坐标信息
- 修复少有场景下离群点没有连线的问题
- 修复
.Marker 点显示偏大的问题 - (Syslab Online)调试时云化绘图支持进入交互模式
Syslab 代码生成工具改进
- 修复 readline 函数的代码生成
- 修复函数存在 Cstring 类型时,其导出 C 函数的参数类型不正确的问题
- 代码生成支持 32 位项目的构建
- 代码生成支持 --no-gc 选项,生成无 bdwgc 依赖的可执行文件和动态库
M 导入工具 V3 版本全新发布
- M 导入工具全新架构实现,从 V2 升级到 V3,重点优化 Copy-On-Write 行为的性能,循环内频繁修改数组内的值时,性能大幅提升
- 优化了浮点数标量数组的拼接操作
- 优化了变量、函数查找的性能
- 优化了对象的底层表示,减少部分场景的内存开销
- 支持与 MATLAB 兼容的 32 位浮点数复数及整数复数
- 支持与 MATLAB 兼容的饱和运算规则,优化图像处理领域的代码兼容性
- 支持 classdef 的类定义语法,点操作调用类函数
- 优化 M 文件语法高亮
- IDE 易用性改进,包括插入分节符、运行节、根据分节符生成大纲、M 函数转到定义、代码补全、函数悬停提示等
- M 工作区变量的表格视图,支持层级展开
- M 工作区变量支持展示高维数组
- M 工作区、调试工作区支持绘图
- 新增 M 代码混淆功能
- 新增 193 个常用 M 函数,共计 1781 个 M 函数。
双向融合功能改进
- 修复 SyslabObject 组件在多输入和多输出情况下,输入和输出端口和标签名字错位的问题
- 修复 SyslabObject 的输出项超过一项导致仿真初始化失败且无报错信息的问题
- 修复 SysplorerAPI 接口函数报错的问题
- 修复 Syslab 与 Sysplorer 双向融合仿真时,在高采样率 + 长仿真时间情况下内存占用高,导致 Sysplorer 仿真终值或崩溃的 bug
帮助文档改进
- ★全新的帮助文档结构,按照平台、语言、工具箱进行分类,更清晰
# ★科学计算函数库
基础工具箱
数学、统计和优化
信号处理和无线通信
控制系统
图像处理和计算机视觉
- 图像处理工具箱新增 47 个函数,改进 50 个函数
AI 与数据科学
- 机器学习工具箱改进 3 个函数
函数库性能优化
- 图形库 hist 函数优化,首次耗时从 8.383166s -> 1.329967s,提升 6.3 倍;二次耗时从 7.737247s -> 0.022981s,提升 336.7 倍
- 基础数学库对插值、微分方程等模块进行性能优化,运行速度大幅提升。包括插值模块的 interp1(nearest 算法)、interp2(cubic、spline、makima 算法)、interp3(nearest 算法),微分方程模块的 bvp5c、ode113、ode23tb、ode23、ode23t 等
- 信号处理库优化 10 个函数,函数首次运行时间平均下降 48%
- DSP 系统库优化 6 个函数,函数首次运行时间平均下降 18%
- 通信库优化 10 个函数,函数首次运行时间平均下降 58%
# 科学计算 APP
优化滤波器设计 APP
- 滤波器响应图像自适应显示横轴标签
优化滤波器可视化 APP
- 滤波器响应图像自适应显示横轴标签
优化曲线拟合 APP
- 修复自定义方程模型问题(二维、三维)
- 修复由于曲线拟合和机器学习库中 fit 函数冲突导致曲线拟合 app 使用报错的问题
# 删除或变更功能⚠️
# 基础工具箱
基础工具箱引入 1 个破坏性更新。
| 函数名 | 函数说明 | 更改说明 |
|---|---|---|
| exist | 检查变量、脚本、函数、文件夹的存在情况 | 不再支持输入参数为变量的用法,仅支持输入参数为字符串。 |
# 双向融合功能
双向融合功能引入 2 个破坏性更新。
| 函数名 | 函数说明 | 更改说明 |
|---|---|---|
| Sysplorer.ExportVeristand() | 将模型导出为 Veristand 模型 | 接口新增一个参数,ExportVeristand(model_name::String, veristand_file::String) 变更为 ExportVeristand(model_name::String, head_file::String, veristand_file::String) |
| Sysplorer.ExportSFunction() | 将模型导出为 Simulink 的 S-Function | 接口删除 |
# 附录:函数列表
# 基础工具箱
基础工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| clearvars | 清除内存中的变量 |
基础工具箱修改函数 14 个。
| 函数名 | 函数说明 |
|---|---|
| sub2ind | 将下标转换为线性索引 |
| meshgrid3 | 创建三维网格 |
| ismember | 判断数组元素是否为集数组成员 |
| bitcmp | 按位补码 |
| bitget | 获取指定位置的位 |
| importdata | 从文件加载数据 |
| save | 将工作区变量保存到文件中 |
| ty_round | 四舍五入为最近的小数或整数 |
| ty_ceil | 朝正无穷大四舍五入 |
| ty_floor | 朝负无穷大四舍五入 |
| exist | 检查变量、脚本、函数、文件夹的存在情况 |
| num2hex | 将单精度数和双精度数转换为 IEEE 十六进制格式 |
| clear | 从工作区中删除项目、释放系统内存 |
| csvread | 读取逗号分隔值 (CSV) 文件 |
# 图形工具箱
图形工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| box | 显示坐标区轮廓 |
图形工具箱修改函数 16 个。
| 函数名 | 函数说明 |
|---|---|
| colorbar | 显示色阶的颜色栏 |
| semilogx | 半对数图(x 轴有对数刻度) |
| semilogy | 半对数图(y 轴有对数刻度) |
| quiver | 箭头图或速度图 |
| pcolor | 伪彩图 |
| polarscatter | 极坐标中的散点图 |
| loglog | 双对数刻度图 |
| plot | 二维线图 |
| plot3 | 三维点或线图 |
| polarplot | 在极坐标中绘制线条 |
| jet | Jet 颜色图数组 |
| ezplot | 易用的函数绘图函数 |
| pareto | 帕累托图 |
| streamline | 根据二维或三维向量数据绘制流线图 |
| clf | 清空当前图窗窗口 |
| hist | 直方图 |
# 基础数学工具箱
基础数学工具箱新增函数 27 个。
| 函数名 | 函数说明 |
|---|---|
| cubic2 | cubic 算法的二维插值 |
| eig | 特征值和特征向量 |
| gsvd | 广义奇异值分解 |
| ty_svd | 奇异值分解 |
| ty_bicgstabl | 求解线性系统 - 稳定双共轭梯度法 |
| ty_minres | 求解线性系统 - 双共轭梯度法 |
| mcross | 叉积 |
| polyshape | 二维多边形形状 |
| addboundary | 添加 polyshape 边界 |
| rotate | 旋转 polyshape |
| scale | 缩放 polyshape |
| boundary | polyshape 边界的顶点坐标 |
| ishole | 确定 polyshape 边界是否为孔 |
| isinterior | polyshape 内的查询点 |
| issimplified | 确定 polyshape 是否明确定义 |
| numboundaries | polyshape 的边界数 |
| numsides | polyshape 的边数 |
| plot | 绘制 polyshape |
| area | polyshape 的面积 |
| boundingbox | polyshape 的边界框 |
| centroid | polyshape 的矩心 |
| perimeter | polyshape 的周长 |
| intersect | polyshape 对象的交集 |
| subtract | 两个 polyshape 对象的差集 |
| union | polyshape 对象的并集 |
| xor | 两个 polyshape 对象的异或 |
| eul2rotm | 将欧拉角转换成旋转矩阵 |
基础数学工具箱修改函数 31 个。
| 函数名 | 函数说明 |
|---|---|
| rcond | 条件数倒数 |
| dplquad | 矩形区域上的二重积分的数值计算 |
| nchoosek | 二项式系数或所有组合 |
| rats | 有理输出 |
| nextpow2 | 2 的更高次幂的指数 |
| pow2 | 求以 2 为底的幂值并对浮点数字进行缩放 |
| realpow | 仅实数输出的数组幂 |
| interp3 | meshgrid 格式的三维网格数据的插值 |
| interp2 | meshgrid 格式的二维网格数据插值 |
| interp1 | 一维数据插值(表查找) |
| griddata | 对二维或三维散点数据插值 |
| griddedInterpolant | 网格数据插值 |
| conv2 | 二维卷积 |
| ty_ifft | 快速傅里叶逆变换 |
| ty_fft | 快速傅里叶变换 |
| ifft | 傅里叶逆变换(一维、二维、多维) |
| nufft | 非均匀快速傅里叶变换 |
| nufftn | N 维非均匀快速傅里叶变换 |
| bvp5c | 求解边界值问题 - 五阶方法 |
| ode23s | 求解刚性微分方程 - 低阶方法 |
| ode15i | 解算全隐式微分方程 - 变阶方法 |
| ode23t | 求解中等刚性的 ODE 和 DAE - 梯形法则 |
| ode23tb | 求解刚性微分方程 - 梯形法则 + 后向差分公式 |
| bvp4c | 求解边界值问题 - 四阶方法 |
| ode113 | 求解非刚性微分方程 - 变阶方法 |
| pdepe | 求解一维抛物型和椭圆型 PDE |
| conv | 卷积和多项式 |
| deconv | 去卷积和多项式除法 |
| delaunayn | N 维 Delaunay 三角剖分 |
| conncomp | 图的连通分量 |
| dfsearch | 深度优先图搜索 |
# 报告生成工具箱
报告生成工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| compose_report | 合并报告 |
| generate_report | 生成报告 |
| replace_template | 替换模板内容 |
# 符号数学工具箱
符号数学工具箱新增函数 15 个。
| 函数名 | 函数说明 |
|---|---|
| taylor_series | 泰勒级数展开 |
| logm | 矩阵对数 |
| sqrtm | 矩阵平方根 |
| sym_funm | 一般矩阵函数 |
| equationsToMatrix | 将线性方程转换为矩阵形式 |
| dsolve | 解微分方程组 |
| symsum | 级数和 |
| symprod | 级数积 |
| sym_series | Puiseux 级数 |
| sym_isequaln | 测试符号对象的相等性,将 NaN 值视为相等 |
| sym_nchoosek | 返回二项式系数或所有组合 |
| minpoly | 返回符号矩阵的极小多项式或其系数 |
| eliminate | 从有理方程中消除变量 |
| jordan | 约当标准型 |
| Num | 将输入封装成 Num 对象 |
符号数学工具箱修改函数 14 个。
| 函数名 | 函数说明 |
|---|---|
| taylor | 泰勒级数展开 |
| finverse | 反函数 |
| symvar | 在符号输入中查找符号变量 |
| ilaplace | 拉普拉斯逆变换 |
| laplace | 拉普拉斯变换 |
| polys | 转换为多项式类型 |
| sym | 转换为 Sym 类型或因式相加 |
| limit | 符号表达式的极限 |
| fourier | 傅里叶变换 |
| ifourier | 傅里叶逆变换 |
| iztrans | 逆 Z 变换 |
| expm | 符号矩阵的矩阵指数 |
| euler | 欧拉数和多项式 |
| potential | 矢量场的势能 |
# 曲线拟合工具箱
曲线拟合工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| fit | 为数据拟合曲线或曲面 |
# 统计工具箱
统计工具箱修改函数 8 个。
| 函数名 | 函数说明 |
|---|---|
| fitdist | 对数据进行概率分布对象拟合 |
| negloglik | 概率分布的负对数似然 |
| random | 随机数 |
| makedist | 创建概率分布对象 |
| expinv | 指数逆累积分布函数 |
| mle | 最大似然估计 |
| ty_maximum | 数组的最大元素(maximum 补充用法) |
| ty_minimum | 数组的最小元素(minimum 补充用法) |
# 优化工具箱
优化工具箱新增函数 12 个。
| 函数名 | 函数说明 |
|---|---|
| prob2struct | 将优化问题或方程问题转换为求解器形式 |
| eqnproblem | 创建方程问题 |
| solvers | 确定优化问题或方程问题的默认和有效求解器 |
| varindex | 将问题变量映射到基于求解器的变量索引 |
| issatisfied | 检查优化问题在一组点上是否满足约束 |
| fcn2expr | 将函数转换为优化表达式 |
| findindex | 查找命名索引变量的等效数值索引 |
| infeasibility | 一个点处的约束违反值 |
| optimconstr | 创建空优化约束数组 |
| optimeq | 创建空优化等式数组 |
| optimexpr | 创建空优化表达式数组 |
| optimineq | 创建空优化不等式数组 |
优化工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| fmincon | 寻找约束非线性多变量函数的最小值 |
| lsqcurvefit | 用最小二乘求解非线性曲线拟合(数据拟合)问题 |
| intlinprog | 混合整数线性规划(MILP) |
# 全局优化工具箱
全局优化工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| ga | 用遗传算法寻找函数最小值 |
| run | 执行多启动求解器 |
| gamultiobj | 用遗传算法寻找多目标函数的帕累托前沿 |
# 信号处理工具箱
信号处理工具箱新增函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| ss2sos | 将数字滤波器的状态空间形式转换为二阶基本节参数 |
| modalfrf | 用于模态分析的频率响应函数 |
| dpssclear | 从数据库中删除离散的长球体序列 |
信号处理工具箱修改函数 34 个。
| 函数名 | 函数说明 |
|---|---|
| fir2 | 基于频率采样的 FIR 滤波器设计 |
| elipord | 椭圆滤波器的最低阶数 |
| sos2tf | 将数字滤波器的二阶截面数据转换为传递函数形式 |
| pulsewidth | 双电平波形脉冲宽度 |
| dutycycle | 脉冲波形的占空比 |
| pulseperiod | 双电平脉冲的周期 |
| freqz | 数字滤波器的频率响应 |
| fir1 | 基于窗口的 FIR 滤波器设计 |
| grpdelay | 平均滤波器延迟(组延迟) |
| falltime | 负向双电平波形过渡的下降时间 |
| midcross | 双电平波形的中间参考电平交叉 |
| overshoot | 双电平波形过渡的过冲指标 |
| modulate | 通信仿真的调制 |
| firpm | Parks-McClellan 最佳 FIR 滤波器设计 |
| findpeaks | 查找局部最大值 |
| lp2hp | 将低通模拟滤波器转换为高通 |
| lp2lp | 更改低通模拟滤波器的截止频率 |
| ismaxphase | 确定滤波器是否为最大相位 |
| isminphase | 确定滤波器是否为最小相位 |
| cfirpm | 复杂和非线性相位等波纹 FIR 滤波器设计 |
| ss2zp | 将状态空间滤波器参数转换为零极点增益形式 |
| invfreqs | 从频率响应中识别连续时间滤波器系数 |
| ellipap | 椭圆模拟低通滤波器原型 |
| tf2sos | Z 变换部分分式展开 |
| fircls | 约束最小二乘法 FIR 多频带滤波器设计 |
| zp2sos | 将零极点增益滤波器参数转换为二阶基本节 |
| residuez | Z 变换部分分式展开 |
| tf2ss | 将传递函数滤波器参数转换为状态空间形式 |
| sos2ss | 将数字滤波器的二阶基本节参数转换为状态空间形式 |
| sawtooth | 锯齿波或三角波 |
| dpsssave | 离散的类球面或 Slepian 序列数据库 |
| dpssclear | 从数据库中删除离散的长球体序列 |
| dpssdir | 离散类球面序列数据库目录 |
| dpssload | 从数据库加载离散的类球面序列 |
# DSP 系统工具箱
DSP 系统工具箱修改函数 9 个。
| 函数名 | 函数说明 |
|---|---|
| dsp_FIRFilter | 静态或时变 FIR 滤波器 |
| impz | 离散时间滤波器的脉冲响应 |
| freqz | 离散时间滤波器的频率响应 |
| zerophase | 离散时间滤波器的零相位响应 |
| noisepsd | 由于舍入噪声引起的滤波器输出的功率谱密度 |
| cost | 估算实现滤波器系统对象的成本 |
| phasedelay | 离散时间滤波器的相位延迟 |
| fdesign_arbmagnphase | 任意响应的幅值和相位滤波器规格对象 |
| dsp_FrequencyDomainFIRFilter | 在频域中过滤输入信号 |
# 小波工具箱
小波工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| centfrq | 小波中心频率 |
# 雷达工具箱
雷达工具箱新增函数 6 个。
| 函数名 | 函数说明 |
|---|---|
| euler | 将四元数转换为欧拉角(弧度) |
| eulerd | 将四元数转换为欧拉角(度) |
| quaternion | 创建四元数数组 |
| rotmat | 将四元数转换为旋转矩阵 |
| rotvec | 将四元数转换为旋转向量(弧度) |
| rotvecd | 将四元数转换为旋转矢量(度) |
# 相控阵工具箱
相控阵工具箱修改函数 2 个。
| 函数名 | 函数说明 |
|---|---|
| pattern | 天线方向图 |
| rocpfa | 虚警概率的接收机工作特性曲线曲线 |
# 通信工具箱
通信工具箱新增函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| model_WLAN | 计算不同模型的路径损耗(PL) |
通信工具箱修改函数 18 个。
| 函数名 | 函数说明 |
|---|---|
| comm_EyeDiagram | 显示时域信号的眼图 |
| de2bi | 将十进制数字转换为二进制向量 |
| comm_LDPCEncoder | 编码二进制低密度奇偶校验(LDPC) 码 |
| comm_CarrierSynchronizer | 补偿载波频率偏移 |
| comm_SymbolSynchronizer | 校正符号定时时钟偏移 |
| comm_LDPCDecoder | 解码二进制低密度奇偶校验(LDPC) 码 |
| comm_LinearEqualizer | 使用线性滤波均衡调制信号 |
| comm_IQImbalanceCompensator | 补偿 I/Q 不平衡 |
| berawgn | BER 和 SER 用于 AWGN 信道上的未编码数据 |
| comm_CoarseFrequencyCompensator | 对 PAM、PSK 或 QAM 信号的频率偏移进行补偿 |
| comm_DiscreteTimeVCO | 产生可变频率的正弦波 |
| comm_MER | 测量接收信号的调制误差率 |
| comm_DPD | 数字预失真器 |
| comm_DPDCoefficientEstimator | 数字预失真的记忆多项式系数估计 |
| comm_MIMOChannel | 输入信号通过 MIMO 多径衰落信道 |
| comm_CPMDemodulator | 使用 CPM 方法和 Viterbi 算法解调信号 |
| comm_CPMModulator | 使用 CPM 方法调制信号 |
| comm_FSKModulator | M 阶 FSK 调制 |
# 射频工具箱
射频工具箱新增函数 32 个。
| 函数名 | 函数说明 |
|---|---|
| rfckt_amplifier | 射频放大器 |
| rfckt_series | 串联连接的网络 |
| rfckt_seriesrlc | 创建两端口串联 RLC 电路 |
| rfckt_twowire | 同轴线 |
| rfckt_txline | 传输线对象 |
| analyze | 在频域中分析 RFCKT 对象 |
| calculate | 为 rfckt 对象或 rfdata 对象计算指定参数 |
| rationalfit | 对 S 参数对象执行 rationalfit |
| matchingnetwork | 为 1 端口网络创建匹配网络并生成电路对象 |
| addEvaluationParameter | 为排序、通过或失败的匹配网络设计添加性能目标 |
| circuitDescriptions | 描述每个创建的匹配网络的拓扑和性能的表格 |
| getEvaluationParameters | 用于排序和通过或失败的匹配网络设计的评估参数表 |
| clearEvaluationParameter | 删除一个或多个性能目标 |
| exportCircuits | 从现有的匹配网络对象中选择并导出生成的匹配网络作为电路对象 |
| rfplot | 匹配网络的图输入反射系数和转换增益 |
| rational | 对复数的频相关数据进行有理拟合 |
| rfmodel_rational | 使用极点-留数表示进行有理拟合 |
| timeresp | 有理对象和 rationalfit 函数对象的时间响应 |
| stepresp | 阶跃信号响应,适用于有理对象和 rationalfit 函数对象 |
| rationalfit | 使用稳定有理函数对象逼近数据 |
| freqresp | ration 对象和 rationalfit 对象的频率响应 |
| pwlresp | 计算分段线性输入信号的时间响应 |
| impulse | 脉冲响应(Impulse response)为有理函数对象 |
| ispassive | 如果有理拟合输出在所有频率下都是无源的,则返回 true |
| makepassive | 强制使有理拟合输出或有理对象具有无源性 |
| passivity | N × N rationalfit 输出的无源特性 |
| writeva | 生成有理对象的 Verilog-A 描述 |
| rfdata_data | 存储电路对象分析结果 |
| rfwrite | 将 RF 网络数据写入 Touchstone 文件 |
| read | 将 RF 数据从文件读取到新的或现有的电路或数据对象 |
| exportScript | 导出生成 RF 预算对象的 Julia 代码 |
| write | 将射频数据从电路或数据对象写入文件 |
射频工具箱修改函数 7 个。
| 函数名 | 函数说明 |
|---|---|
| read | 将 RF 数据从文件读取到新的或现有的电路或数据对象 |
| snp2smp | 转换并重新排序单端 N 端口 S 参数为单端 M 端口 S 参数 |
| analyze | 在频域中分析 RFCKT 对象 |
| cascadeparams | 组合 S 参数以形成级联网络 |
| rationalfit | 使用稳定有理函数对象逼近数据 |
| rfckt_amplifier | 射频放大器 |
| sparameters | 计算射频数据、网络、电路和匹配网络对象的 S 参数 |
# 控制系统工具箱
控制系统工具箱修改函数 2 个。
| 函数名 | 函数说明 |
|---|---|
| step | 动态系统的阶跃响应图,阶跃响应数据 |
| margin | 增益裕度、相位裕度和交叉频率 |
# 系统辨识工具箱
系统辨识工具箱修改函数 1 个。
| 函数名 | 函数说明 |
|---|---|
| predict | 形成模型的预测响应 |
# 图像处理工具箱
图像处理工具箱新增函数 47 个。
| 函数名 | 函数说明 |
|---|---|
| imlocalbrighten | 降低光照图像提亮 |
| imreducehaze | 减少大气雾霾 |
| imtranslate | 翻译图像 |
| imwarp | 对图像应用几何变换 |
| transltform2d | 二维平移几何变换 |
| rigidtform2d | 二维刚性变换 |
| simtform2d | 二维相似几何变换 |
| affinetform2d | 二维仿射几何变换 |
| projtform2d | 二维投影几何变换 |
| fitgeotform2d | 根据控制点对组进行二维几何变换拟合 |
| PiecewiseLinearTransformation2D | 二维分段线性几何变换 |
| randomAffine2d | 创建随机的二维仿射变换 |
| detectORBFeatures | 检测 ORB 特征点 |
| ORBPoints | 用于存储 ORB 特征点的对象 |
| binaryFeatures | 用于存储二进制特征向量的对象 |
| extractFeatures | 提取兴趣点描述符 |
| matchFeatures | 查找匹配的特征 |
| showMatchedFeatures | 显示对应的特征点 |
| im2bw | (不推荐)基于阈值将图像转换为二值图像 |
| bweuler | 二值图像的欧拉数 |
| iptcheckmap | 检查颜色图的有效性 |
| boundarymask | 找到分割的区域边界 |
| makelut | 创建用于 bwlookup 的查找表 |
| grayslice | 使用多级阈值将灰度图像转换为索引图像 |
| poly2label | 从 ROI 集合创建标签矩阵 |
| poly2mask | 将感兴趣的区域(ROI) 多边形转换为区域掩膜 |
| label2idx | 将标签矩阵转换为线性索引的单元格数组 |
| roipoly | 指定多边形感兴趣区域(ROI) |
| Tiff | LibTIFF 库例程的 Syslab 入口 |
| fsamp2 | 使用频率采样法创建二维 FIR 滤波器 |
| fwind1 | 使用一维窗口法的二维 FIR 滤波器 |
| freqz2 | 二维频率响应 |
| reducepoly | 使用 Ramer–Douglas–Peucker 算法减少 ROI 中的点密度 |
| plotChromaticity | 在色度图上绘制色彩再现 |
| deltaE | 基于 CIE76 标准的颜色差异 |
| demosaic | 将 Bayer 图案编码的图像转换为真彩色图像 |
| montage | 将多张图像显示为矩形拼贴 |
| lin2rgb | 对线性 RGB 值应用伽马校正 |
| rgb2lin | 线性化伽马校正后的 RGB 值 |
| whitepoint | 标准光源的 XYZ 色彩值 |
| invert | 反转几何变换 |
| outputLimits | 根据输入空间限制查找输出空间限制 |
| transformPointsForward | 对点应用前向几何变换 |
| transformPointsInverse | 应用逆几何变换 |
| bwareafilt | 按大小从二值图像中提取对象 |
| bwpropfilt | 从二值图像中提取对象使用属性 |
| bwconvhull | 从二值图像生成凸包图像 |
图像处理工具箱修改函数 50 个。
| 函数名 | 函数说明 |
|---|---|
| adapthisteq | 对比度受限的自适应直方图均衡化 (CLAHE) |
| bwboundaries | 跟踪二值图像中的对象边界 |
| bwlabel | 对二维二值图像中的连通分量进行标注 |
| cmunique | 消除颜色图中的重复颜色;将灰度或真彩色图像转换为索引图像 |
| dct2 | 二维离散余弦变换 |
| edge | 查找二维灰度图像中的边缘 |
| graythresh | 使用 Otsu 方法计算全局图像阈值 |
| histeq | 使用直方图均衡增强对比度 |
| idct2 | 二维逆离散余弦变换 |
| imbilatfilt | 高斯核图像的双边滤波 |
| imbinarize | 通过阈值化将二维灰度图像或三维体二值化 |
| imbothat | 底帽滤波 |
| imboxfilt | 图像的二维箱体滤波 |
| imclose | 对图像执行形态学闭运算 |
| imdilate | 膨胀图像 |
| imerode | 腐蚀图像 |
| imfilter | 多维图像的 N 维滤波 |
| imgaborfilt | 将加博滤波器或滤波器组应用于二维图像 |
| imgaussfilt | 图像的二维高斯滤波 |
| imgradient | 找到二维图像的梯度幅值和方向 |
| imgradientxy | 查找二维图像的定向梯度 |
| imhist | 图像数据的直方图 |
| imopen | 对图像执行形态学开运算 |
| impyramid | 图像金字塔缩小和扩展 |
| imreconstruct | 形态学重建 |
| imregionalmax | 区域最大值 |
| imresize | 调整图像大小 |
| imrotate | 旋转图像 |
| imtophat | 顶帽滤波 |
| labeloverlay | 将标签矩阵区域叠加到二维图像上 |
| medfilt2 | 二维中位数滤波 |
| normxcorr2 | 归一化二维互相关性 |
| psf2otf | 将点扩散函数转换为光学传递函数 |
| psnr | 峰值信噪比 (PSNR) |
| regionprops | 测量图像区域的属性 |
| rgb2lab | 将 RGB 转换为 CIE 1976 L*a*b* |
| strel | 形态学结构元素 |
| roifilt2 | 过滤灰度图像中的感兴趣区域(ROI) |
| fspecial | 创建预定义的二维滤波器 |
| gabor | 创建加博滤波器或滤波器组 |
| imnoise | 向图像添加噪声 |
| VideoWriter | 创建对象以写入视频文件 |
| bwmorph | 针对二值图像的形态学运算 |
| bwareafilt | 按大小从二值图像中提取对象 |
| bwpropfilt | 从二值图像中提取对象使用属性 |
| bwconvhull | 从二值图像生成凸包图像 |
| imshow | 显示图像 |
| extractFeatures | 提取兴趣点描述符 |
| worldToSubscript | 将世界坐标转换为行和列下标 |
| cornerPoints | 用于存储角点的对象 |
# 机器学习工具箱
机器学习工具箱修改函数 3 个。
| 函数名 | 函数说明 |
|---|---|
| lhsdesign | 拉丁超立方体样本 |
| fitlm | 拟合线性回归模型 |
| rangesearch | 使用搜寻器对象查找指定距离内的所有邻近点 |
# 函数性能优化
图形库 hist 函数优化,首次耗时从 8.383166s -> 1.329967s,提升 6.3 倍;二次耗时从 7.737247s -> 0.022981s,提升 336.7 倍
基础数学库对插值、微分方程等模块进行性能优化,运行速度大幅提升。
- interp2 的 cubic 算法对于案例运行时间从 380s -> 0.04s,提升约 9500 倍速度
- interp2 的 spline 算法对于案例运行时间从 13s -> 0.67s,提升 19 倍
- interp2 的 makima 算法对于百万数据集案例从 1.11s -> 0.2s,提升 6 倍
- interp3 的 nearest 算法对于千万数据集案例从 1.2s -> 0.2s,提升 6 倍
- interp1 的 nearest 算法对于千万数据集案例运行时间从 1.32s -> 0.01s,提升 110 倍
- bvp5c 对于案例运行时间从 2.1s -> 0.44s,提升约 5 倍
- ode113 对于案例运行时间从 8s -> 0.51s,提升约 16 倍
- ode23tb 对于案例运行时间从 6s -> 1.17s,提升约 5 倍
- ode23 是对于案例运行时间从 13s -> 0.08s,提升约 160 倍
- ode23t 对于案例运行时间从 5.37s -> 1.16s,提升约 5 倍
信号处理库优化 10 个函数,函数首次运行时间平均下降 48%
DSP 系统库优化 6 个函数,函数首次运行时间平均下降 18%
通信库优化 10 个函数,函数首次运行时间平均下降 58%