MATLAB 新增功能

新版本带来一系列新工具,帮助您预处理和分析数据、编写脚本和算法、构建 App、携手团队开发软件。

与此同时,MATLAB 的运行速度再获提升。以下是详细介绍。

环境

全新 编辑器 Python 支持:查看和编辑带有语法高亮、自动缩进和分隔符匹配的 Python 文件 (R2022a)

全新 MATLAB Online 主题:通过选择深色或浅色主题更改 MATLAB 桌面的颜色 (R2022a)

全新 实时编辑器颜色:更改实时脚本和函数的文本和背景颜色 (R2022a)

全新 实时编辑器导出:使用 export 函数以编程方式导出实时脚本和函数 (R2022a)

全新 实时编辑器任务:开发您自己的实时编辑器任务以用于实时脚本 (R2022a)

编辑器:代码重构和列编辑、更为友好的代码建议、代码自动填充和内联调试控件 (R2021b)

实时编辑器动画:使用交互式界面来控制动画 (R2021a),并将其导出为影片或 GIF 动画 (R2021b)

实时编辑器控件:通过将变量链接到实时编辑器控件的值来创建动态控件 (R2021a);设置默认值 (R2021b)

语言和编程

使用新的数据类型和语言构造,编写运行更快、结构更清晰且更易于维护的代码。 

全新 pcode 函数:创建带有增强混淆处理的 P 代码文件 (R2022a)

全新 backgroundPool:在不阻止 MATLAB 命令提示符的情况下异步执行函数 (R2021b);查询排队和运行的 Future 对象和后台池的状态 (R2022a)

模块化索引:使用新的超类分别自定义各项类索引操作 (R2021b)

name=value 语法:在使用名称-值参数的函数中使用 name=value 语法 (R2021a)

类图查看器:创建图形化的类图来探查类详细信息和共享设计 (R2021a)

函数输入参数验证:声明函数输入参数,以简化输入错误检查(R2020b、R2019b)

pattern 对象:创建用于在字符串中搜索文本的模式 (R2020b)

部分用于搜索带有球的图像的函数和参数代码。

使用 arguments 代码块的函数参数验证示例。

数据导入和分析

访问、组织、清理和分析来自多个数据源的数据。

全新 数据清理器:以交互方式标识和清理杂乱的时间表数据 (R2022a)

全新 数据预处理函数:将变换后的变量追加到输入数据 (R2022a)

全新 Opus 文件:支持 Opus (.opus) 音频文件 (R2022a)

文件 I/O:在表、时间表和结构体中直接读写 XML、HTML 和 Microsoft Word 文件(R2021b、R2021a、R2020b)

数据预处理实时编辑器任务:将简单的点击式界面添加到实时脚本中,以执行一组特定的操作,包括删除缺失值和离群值、进行平滑处理和归一化以及分组和联接 (R2019b-R021b)

trenddecomp 函数:查找数据的长期和季节性趋势 (R2021b)

timeseries2timetable 函数:将 timeseries 对象转换为时间表 (R2021b)

HDF5:支持 HDF5 版本 1.10,包括单写/多读 (SWMR)、虚拟数据集 (VDS) 和元数据缓存微调 (R2021b)

NetCDF:支持 NetCDF 版本 4.7.4,包括读写 NC_STRING 数据 (R2021b);启用远程数据集的字节范围读取 (R2022a)

使用清理离群数据实时编辑器任务进行数据预处理。

大数据

轻松扩展大数据分析,无需大动干戈。

全新 Parquet 文件:使用 rowfilter 进行条件筛选(谓词下推)来限制导入的数据量;支持行组和嵌套数据结构体的读写 (R2022a)

数据存储性能在数据存储中指定 FileSet 对象以提高性能 (R2021b)

数据存储:使用并行处理从数据存储中读取所有数据 (R2021a);合并和变换数据存储 (R2019a)

数据存储写入:将数据存储中的大型数据集合写出到磁盘,用于数据工程和基于文件的工作流 (R2020a)

tall 数组:在更多函数中支持 tall 数组,包括:

  • groupfiltermatches (2020a)
  • setdiffxcorrouterjoin (2019b)
  • groupcountsintersectsvd (2019a)

自定义数据存储:使用自定义数据存储框架读取基于 Hadoop 的数据库 (R2019a)

FileDatastore 对象:通过将大型自定义格式文件分为较小的部分导入来读取该文件 (R2019a)

着色表显示 1987 年至 2008 年间按月份和年份排列的航班。

tall 数组可对行数太多而无法放入内存的数据进行运算。

数学

数学函数为分析数据、开发算法和创建模型提供一系列数值计算方法。

全新 tensorprod 函数:计算两个数组之间的张量积 (R2022a)

全新 N 维数组数学:求解线性方程(pagemldividepagemrdivide),计算矩阵求逆 (pageinv),以及在 N 维数组的页上执行奇异值分解 (pagesvd)(R2022a、R2021b)

ode78ode89 函数:对常微分方程使用高阶 Runge-Kutta 求解器 (R021b)

图算法:计算所有路径、所有循环和循环基 (R2021a)

“优化”实时编辑器任务:以交互方式求解优化问题 (R2020b)

优化窗口显示在具有或不具有约束的情况下最小化函数的选项。

使用优化实时编辑器任务以交互方式定义和求解优化问题。

数据可视化

使用新的绘图函数和自定义功能对您的数据进行可视化。

全新 为表数据绘图:将表直接传递给 plotplot3polarplot 和其他线图绘制函数 (R2022a) 以及散点图、气泡图和分簇散点图 (R2021b)

全新 exportgraphics 函数:创建动画 GIF 文件 (R2022a);捕获图形并将其追加到现有的 PDF (R2021b)

创建绘图实时编辑器任务:以交互方式创建绘图并生成代码 (R2021a);向生成的绘图添加可视化效果 (R2021b)

新的绘图函数:使用 bubblecloud 可视化部分与整体对比关系 (R2021a);使用 bubblechartbubblechart3polarbubblechart 在二维坐标、三维坐标和极坐标中创建气泡图 (R2020b);使用 swarmchart 可视化离散数据的分布 (R2020b)

exportgraphicscopygraphics 函数:保存和复制图形,增强了对发布工作流的支持 (R2020a)

tiledlayout 函数:在图窗中创建可配置的绘图布局 (R2019b);定位、嵌套和更改布局的网格大小 (R2020a)

App 构建

借助 App 设计工具,您无需成为专业的软件开发人员即可创建专业的 App。

全新 实时编辑器任务:开发您自己的实时编辑器任务以用于实时脚本 (R2022a)

全新 自定义 UI 组件:在 App 设计工具中以交互方式创建自定义 UI 组件 (R2022a),或以编程方式创建您自己的类 (R2020b),以制作包含算法以及图形和 UI 对象的复合 UI 组件

全新 表 UI 组件:以交互方式重新排列表 UI 组件的列 (R2022a);使用 scroll 函数以编程方式滚动到表 UI 组件中的某个位置 (R2021a)

全新 可访问性:使用 focus 函数以编程方式修改 App 设计工具中组件的 Tab 键焦点顺序并将键盘焦点给予 UI 组件 (R2022a)

全新 样式:在表单元格和树节点中添加图标 (R2022a);创建样式并添加到树 UI 组件中的节点和级别 (R2021b);为表 UI 组件中的行、列或单元格创建和添加样式 (R2019b)

在后台运行代码:使用并行语言 (backgroundPool) 创建响应速度更快的 App (R2021b)

App 设计工具:在代码视图中使用实时编辑器中的工具和快捷方式 (R2021b);在设计视图画布中缩放和平移 (R2021a)

比较工具:比较与合并使用 App 设计工具创建的 App (R2020b)

外部语言接口

MATLAB 可与其他编程语言进行灵活的双向集成。这使得编程语言的差异不再是团队协作的障碍,他们可以投入更多的时间来开发产品,花费较少的时间来换用其他语言重新编码。

全新 Python:将 Python 列表和元组类型转换为 MATLAB 类型 (R2022a)

全新 Python:使用 name=value 语法将关键字参数传递给 Python 函数 (R2022a)

pyrunpyrunfile 函数:在 MATLAB 中运行 Python 命令和脚本 (R2021b)

Python:支持复数多维数组 (R2021b)

C++ 接口:使用头文件、源文件或库文件构建 C++ 库的 MATLAB 接口(R2021a、R2020b)

进程外执行 Python:在进程外执行 Python 函数,以避免库冲突 (R2019b)

性能

MATLAB 每次发布新版本都会带来性能提升。无需对代码进行任何更改,即可加快执行速度。

全新 :改进了脚本中静态方法、常量属性访问和包函数的性能 (R2022a)

全新 Python 数据类型转换:改进了在进程外模式下在 Python 和 MATLAB 数据类型之间转换的性能 (R2022a)

全新 用于 Python 的 MATLAB 引擎 API:改进了调用 Python 中大型多维数组的性能 (R2022a)

全新 表索引:改进了通过使用花括号、圆点表示法或多级索引进行下标对元素赋值时的性能(R2022a、R2021b)

全新 fzero 函数:改进了性能 (R2022a)

qrinsertqrdelete 函数:提升了修改 QR 分解的性能 (R2021b)

App 中的绘图:提升了在 uifigure 中创建绘图的性能 (R2021b)

稀疏矩阵乘法:提升了大型稀疏矩阵乘法的性能 (R2021a)

稀疏线性方程组:提升了求解稀疏线性方程组 A*X = B(B 为多列)的性能 (R2021a)

条形图显示了 MATLAB 逐年的性能提高。

软件开发

软件开发工具可帮助您管理和测试代码、集成其他软件系统,以及将应用程序部署到云。

全新 代码兼容性分析器:根据当前版本的 MATLAB 识别并解决兼容性问题 (R2022a)

全新 单元测试框架:使用 TestCase 类模板更快更准确地创建测试 (R2021b);收集源代码的语句和函数覆盖率指标 (R2022a);在集群和云上并行运行测试 (R2020b)

MATLAB Online:在 MATLAB Online 中使用工程和 Git 进行协作 (R2021b)

工程:组织工作,实现任务和流程自动化,与团队开展协作 (R2019a)

适用于 MATLAB 的 Jenkins 插件:运行 MATLAB 测试,生成 JUnit、TAP 等格式的测试报告和 Cobertura 代码覆盖率报告

新参考架构:在 Amazon Web Services (AWS) 和 Microsoft Azure 上部署和运行 MATLAB

图片显示了从当前文件夹中选择一个文件后点击右键,从显示的菜单中选择“源代码管理”,然后在下一个菜单中选择“从 SVN 更新”。

直接从 MATLAB 使用第三方源代码管理工具,如 SVN。

控制硬件

控制 Arduino 和 Raspberry Pi 等常见微控制器,通过网络摄像头采集图像,还可以获取无人机传感器数据和图像数据。

全新 硬件管理器:从 MATLAB 中发现并连接到您的硬件 (R2022a)

全新 Arduino:支持 ESP32 MCU 开发板 (R2022a)

Arduino:使用 Arduino 资源管理器连接和控制开发板 (R2021b);对 Arduino 提供 BLE 连接 (R2021b)

传感器支持:从连接到 Arduino 的 APDS9960 传感器读取数据 (R2021b)

Raspberry Pi:支持 CAN 扩展板 (R2021b)

无人机:连接到多个 Ryze Tello 无人机,以控制和读取传感器数据 (2021b)

打开着的 Arduino 资源管理器,显示了引脚配置和标绘引脚的图形。

使用 Arduino 资源管理器理解传感器测量值。