MATLAB 2025a更新了些什么?
MATLAB 2025a版本的预览版已经推出,MATLAB、Simulink以及多个工具箱都新增了不少新特性,本文将首先介绍MATLAB部分的更新内容。
新版桌面与深色模式
首先最明显的变化莫过于MATLAB的新版桌面了,在经历了多个版本的beta测试后,新版本桌面终于在2025a版本进行了实装。
新版桌面最大的变化就是使用了扁平化的图标风格,视觉效果上更加简洁美观。
其次就是界面左侧新增了桌面布局侧边栏,可以控制代码编辑器、命令行窗口(Command Window)、工作区(workspace)等组件的隐藏与显示,通过拖动图标还可以移动对应组件的布局。
其次就是千呼万唤始出来的深色模式了,众所周知,MATLAB亮色的背景受到很多用户的诟病,笔者之前也介绍过一些可以修改背景颜色的主题和工具箱,但是都并不能完美地支持MATLAB界面的图标、控件、apps、图片等元素的变色。
深色模式其实最早在2022b版本便开始了测试,笔者也介绍过之前的beta版本,当时还存在闪退等各类bug,现在终于在正式版中推出。
可以看到深色模式不但支持界面背景的深色,还支持实时编辑器与app中图像等各类元素的背景反色,保证了整体的一致性,不至于有个别元素在深色背景中仍然保持刺眼的亮色。
桌面搜索
现在可以使用桌面右上角的搜索框轻松访问工具栏操作、设置和帮助中心资源,如功能、模块、示例、答案和视频。键盘的快捷键是Ctrl+Shift+Space
命令行代码提示
从 R2025a 版本开始,在命令窗口中编写代码时,MATLAB 会自动在输入时提供实时建议。
这些建议包括函数、模型、MATLAB 对象、文件、文件夹、变量、结构和图形属性名称。此外,当输入函数名称时,MATLAB 会显示该函数的基本语法信息,并提供参数和选项的建议。
可以看到旧版本的命令行仅支持有限的代码补全,不支持在编辑器与实时编辑器中的提示功能。
在新版本中,命令行的代码编辑体验实现了与编辑器与实时编辑器的一致。
将实时脚本保存为m文件
一直以来,实时脚本拥有独立的格式(.mlx
),将实时脚本另存为纯文本文件格式( .m
)时MATLAB会将实时脚本中的元素进行转换,这样会失去实时脚本的很多特性。
在新版本中可以使用纯文本文件格式( .m
)保存实时脚本和函数。
使用纯文本文件格式保存的实时脚本与其他实时脚本行为相同。它们在 Live 编辑器中打开,可以包含代码、输出和格式化文本,还可以包括交互式控件和任务。
保存使用纯文本文件格式的实时脚本有多个好处:
- 文件在外部代码编辑器中打开:可以在任何支持纯文本文件的外部文本或代码编辑器中打开使用纯文本文件格式保存的实时脚本,例如安装了MATLAB插件的vscode。
- 提高透明度:使用纯文本文件格式保存的文件不会引发安全担忧。一个例外可能是如果实时脚本包含图像和图表,这些图像和图表将以 Base64(ASCII-二进制)字符串的形式保存在纯文本文件中。
- 改进与源代码控制集成 :可以使用外部源代码控制工具比较和合并使用纯文本文件格式保存的实时脚本。
编辑器Markdown支持
Markdown作为最流行的轻量级标记语言,凭借易读易写特性,并且对于图片,图表、数学式都有支持,各行各业广泛使用Markdown来撰写帮助文档,MATLAB的实时脚本拥有一部分Markdown的特性,但需要额外的学习成本。
新版本终于支持了Markdown文件的预览,在 MATLAB 中打开 Markdown 文件时,编辑器会在 Markdown 文件右侧显示文件预览。
对文件进行编辑时,编辑器会更新预览。
使用Markdown编写代码或项目文档,更有利于合作开发于分享传播。
创建并插入代码片段
代码片段是设计用来简化将循环或条件语句等重复出现的代码结构添加到您的代码中的模板。
在编辑器和实时编辑器中输入时,MATLAB 会显示相关的代码片段以及其他名称建议。
例如,如果输入单词 if
,MATLAB 会建议 If-Else Statement
和 If Statement
代码片段,以及以 if
开头的函数名称。
变量编辑器
变量编辑器新增了导航和分析变量内容的工具:
- 查看所有类型变量的编辑作为命令窗口中的 MATLAB 代码。
- 查看表格或时间表中数据的 Spark 线和摘要统计信息。
- 从选定的数据索引创建一个逻辑变量。
- 使用工具栏上的查找和转到按钮导航变量内容。
- 创建与工作区变量同步的链接图表。
- 编辑分类表变量的分类类别。
变量编辑器显示增强了某些变量类型的可读性:
- 审查和分析表格、时间表、结构数组或单元数组中的数据,采用简化、无边框的设计和行条纹。
- 编辑标量结构、对象数组或单元数组中的内容,并查看有关数据的有用信息。
- 交互式编辑多维数组中的每一页数据。
- 查看时间表中数据的标签。
读取压缩数据
可以从压缩和归档文件中读取数据,作为表格、单元格数组、矩阵、结构体、时间表、字典、字符串数组或变量。
使用下列函数读取数据时,可指定从 ZIP
、GZ
和 TAR
格式的压缩文件中读取:
- readtable
- readcell
- readmatrix
- readstruct
- readtimetable
- readdictionary
- readlines
- readvars
使用浅色或深色主题创建图形
当创建图表时,MATLAB默认会根据当前主题(深色、浅色)自动选择颜色,但也可以手动设置选择不同的图形主题。
管理图表的颜色和图形的主题的方法有:
theme
函数或Theme
属性 :设置和获取图形的主题- MATLAB 设置窗口:配置所有图形的主题
fliplightness
函数:翻转颜色值的亮度getTheme
方法:获取定义子类时的图形主题
图容器
figure
是图像或应用程序的容器(Figure Container),使用 Figure
对象在创建图形后可修改其外观和行为。
新版本升级了用于管理图窗的图容器功能,主要的改进有:
- 图像现在具有更大的默认大小和更宽的纵横比。
- 图像现在默认在 MATLAB 桌面中作为标签在停靠的图形容器中打开。通过重新排列标签自定义布局,或通过以平铺方式排列同时查看多个图形。
- 快速使用图形容器工具栏自定义和标注图形。
- 自动生成用于图形交互和定制的可重复代码。
公式的字体和文本间距
字体和文本间距在有些 TeX 和 LaTeX 公式和符号中已更改
导出svg格式图表
使用 exportgraphics
函数,您可以通过在文件名中指定 ".svg"
文件扩展名来将图表导出为 SVG 文件。
例如,将当前图形的内容导出为 SVG 文件。
exportgraphics(gcf,"myfigure.svg")
一些性能提升
1. 日期和时间格式的性能
在解析由字母标识符(例如日期字段、时间字段、时区偏移量)和常见分隔符(如“:”、“;”、“,”、“.”、“-”、“/”以及空格)组成的日期时间格式时,性能显著提升。
性能表现:代码解析性能平均提升约 4-17 倍,具体取决于输入数组的大小和格式。
例如,解析 dd.MM.uuuu
格式的字符串数组性能提升 9.6 倍, 测试代码为:
function timingTest
s = randi([1,31],1e6,1) + ".10.2024";
d = datetime(s,InputFormat="dd.MM.uuuu");
end
运行时间:
- R2024b: 3.27 秒
- R2025a: 0.34 秒
未改进格式:对于包含标识符 D
、G
、Q
、QQ
、W
、y
、yy
和 z
的格式,性能未优化。
2. 写入 Excel 文件的性能优化
使用 writetable
、writematrix
、writetimetable
和 writecell
函数向已有的 Excel 文件(包括 XLSX、XLSM、XLTX 和 XLTM 文件)中的工作表写入数据时性能提高。
性能表现:随着写入的工作表数量增加,性能提升更为明显。
例如,将数据写入包含 4 个工作表的文件时性能提升 1.7 倍:
t1 = table(0);
filename = "test4.xlsx";
writetable(t1,filename,Sheet=4);
tic
for ii = 1:4
t2 = table(magic(20));
writetable(t2,filename,Sheet=ii);
end
toc
- R2024b: 0.080 秒
- R2025a: 0.047 秒
3. nufft 函数
性能提升:nufft
函数在处理非均匀采样点或查询点时性能显著提高。
非均匀采样点:处理 10,000,000 个非均匀采样点与 10,000 个均匀查询点,性能提升约 15 倍:
function t = timingNonuniformSamplePoints
t = sort(randn(1,1e7));
f = 1:1e4;
x = randn(size(t));
y = @() nufft(x,t,f);
t = timeit(y);
end
- R2024b: 16.5 秒
- R2025a: 1.07 秒
非均匀查询点:处理 10,000,000 个均匀采样点与 10,000 个非均匀查询点,性能提升约 17 倍:
function t = timingNonuniformQueryPoints
t = 1:1e7;
f = sort(randn(1,1e4));
x = randn(size(t));
y = @() nufft(x,t,f);
t = timeit(y);
end
- R2024b: 10.5 秒
- R2025a: 0.62 秒
4. 属性检查器
性能表现:首次在 MATLAB 会话中打开属性检查器的速度提升 2.3 倍:
- R2024b: 4.65 秒
- R2025a: 2.00 秒
5. 轴工具栏
性能表现:例如,使用 axes
命令创建一组笛卡尔坐标轴。在 MATLAB 会话中第一次暂停在坐标轴上时,坐标轴工具栏的显示速度比上一个版本快约 2 倍。
- R2024b: 1.8 秒
- R2025a: 0.9 秒
总结
以上就是MATLAB 2025a中比较重要的一些更新内容,新版本有多达147项更新内容,完整更新日志请参考:
https://ww2.mathworks.cn/help/releases/R2025a/relnotes/index.html