MATLAB 2024b 更新了些什么?

embedded/2024/9/23 3:31:48/

MATLAB 2024b版本已经推出了预览版,本期介绍一些MATLAB部分的主要的更新内容。

帮助浏览器被移除

在此前的版本,当我们从MATLAB中访问帮助文档时,默认会通过MATLAB的帮助浏览器(Help browser)。

2024b版本开始,帮助文档会使用系统的默认浏览器开启。

实时编辑器字体

2024b版本可以使用“自定义样式”对话框在实时编辑器中自定义文本和代码样式的字体、大小、颜色和格式。

要自定义文本或代码样式,需要在实时编辑器选项卡的文本部分中单击自定义样式按钮 。

然后,选择要自定义的样式并更改所选样式的字体、大小、颜色和格式。

“自定义样式”对话框会显示每种样式的预览

新的MATLAB桌面

新桌面已经Beta测试了一段时间,在2024b版本应该准备转正了。

MATLAB 的新桌面包括新功能和更新功能,例如:

  • 对桌面、绘图和应用程序的深色主题支持
  • 更新的布局
  • 扩展的搜索功能
  • 带有工具条、集成侧面板和新选项卡式容器的新图形窗口体验
  • 用于实时脚本的新纯文本文件格式
  • 新的调试器(Debugger)页面和源代码管理页面
  • 增强的 MATLAB 项目工作流程
  • 改进的屏幕阅读器支持

当然其他版本的MATLAB也可以单独下载体验新版本桌面,下载地址:

https://www.mathworks.com/matlabcentral/fileexchange/119593-new-desktop-for-matlab-beta.

dbstop函数更新

dpstop 函数在 MATLAB 中用于设置断点,以便调试代码。

在2024b版,dbstop可在显示未被分号(;)抑制的输出时暂停执行。

当线程不是由分号(;)抑制,其他原因如disp或fprintf显示的输出不会停止执行。

错误信息位置提示

在支持的情况下,MATLAB 会在导致错误的代码下方添加插入符号 ( ^ ),帮助快速定位代码中出错的位置。

typecast函数更新

在新版本中typecast函数支持使用 “like” 语法进行数据类型转换并支持逻辑、字符向量和复杂输入。

可以通过typecast(X,"like",p)X 的位模式转换为与原型 p 相同的数据类型和复杂性(实数或复数)。

例如,将双精度数的位模式转换为与 p 相同的数据类型和复杂度:

p = int32(2 + 3i);
Y = typecast(2.5,"like",p)Y =int320 +   1074003968i

交互式求解ODE

新版本可使用实时编辑器中的求解 ODE (Solve ODE)任务以交互的方式求解常微分方程组。

求解ODE控件

求解ODE任务支持:

  • 指定 ODE 结构
  • 定义高级问题信息
  • 选择求解器
  • 结果的可视化

要将Solve ODE任务添加到实时脚本可通过以下方式:

  • 在实时编辑器选项卡上,选择任务(Task) > 求解 ODE(Solve ODE)
  • 在脚本的代码块中,键入相关关键字,例如 ode,从建议的代码补全中选择“求解 ODE”。

新增小提琴图

小提琴图(violin plots)一般用于显示数据分布及其概率密度。 这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。

通过violinplot 函数可以创建小提琴图,具体语法包括:

%为矩阵 ydata 的每一列创建小提琴图。如果 ydata 是向量,则 violinplot 创建单个小提琴图。
violinplot(ydata)%根据 xgroupdata 中的唯一值对向量 ydata 中的数据进行分组,并将每组数据绘制为单独的小提琴图。 xgroupdata 确定每个小提琴图沿 x 轴的位置。 ydata 必须是向量,并且 xgroupdata 必须与 ydata 具有相同的长度。
violinplot(xgroupdata,ydata)%创建 yvar 中数据的小提琴图,并按 xvar 中的数据分组,其中 xvar 和 yvar 是表 tbl 中的变量。您可以通过为 xvar 指定一个变量并为 yvar 指定一个变量来绘制一组数据。要绘制多个数据集,请为 xvar 、 yvar 或两者指定多个变量。如果两个参数都指定多个变量,则它们必须指定相同数量的变量。
violinplot(tbl,xvar,yvar)%使用颜色来区分小提琴图。
violinplot(___,GroupByColor=cgroupdata)

详细用法可参考:

https://ww2.mathworks.cn/help/releases/R2024b/matlab/ref/violinplot.html

新增罗盘图

compassplot 函数可以绘制一组或多组从极坐标原点出发的箭头。

相较于compass函数,compassplot 函数使用 PolarAxes 对象,该对象提供更多自定义选项。

具体语法包括:

%在极坐标中绘制源自原点的箭头(矢量)。theta 值控制箭头方向(以弧度为单位)。rho 值将箭头大小控制为半径值。
compassplot(theta,rho)%绘制复数Z
compassplot(Z)%绘制表 tbl 中的变量thetavar和rhovar 。
compassplot(tbl,thetavar,rhovar)

详细用法可参考:

https://ww2.mathworks.cn/help/releases/R2024b/matlab/ref/violinplot.html

新增3D坐标中的切片

constantplane函数可以创建无限平面以突出显示 3D 绘图中的感兴趣区域。

该函数默认创建半透明的灰色平面,可以通过设置属性来更改颜色和透明度。

详细用法可参考:

https://ww2.mathworks.cn/help/releases/R2024b/matlab/ref/constantplane.html

一些性能提升

datetime的性能提升

datetime 在解析包含本地化名称或时区偏移的常见格式时,格式解析性能显着加快。

官方使用的测试案例为:

%%创建一个日期字符串数组,然后使用 datetime 函数解析并转换字符串数组。
function timingTest
s = "23-Apr-2024 11:30:" + randi([10,59],10000,1);
for i = 1:100d = datetime(s, ...InputFormat="dd-MMM-uuuu HH:mm:ss", ...Locale="en_US");
end
end

结果:

R2024a: 4.75 s

R2024b: 0.27 s

%创建一个时区偏移量为 -0400 的日期字符串数组,然后使用 datetime 函数解析并转换字符串数组。
function timingTest
s = "2024-04-23 11:32:48." + randi(999,10000,1) + " -0400";
for i = 1:100d = datetime(s, ...InputFormat="uuuu-MM-dd HH:mm:ss.SSS Z", ...TimeZone="local");
end
end

结果:

R2024a: 6.35 s

R2024b: 1.10 s

提高计算加权中位数的性能

提升了median函数在指定加权方案时的性能。

例如:

%计算 600×10 矩阵的加权中值
function timingTest
A = rand(600,10);
W = rand(600,1);for i = 1:3e3median(A,Weights=W);
end
end

结果:

R2024a: 1.00 s

R2024b: 0.55 s

改进了确定哪些数组元素是质数的性能

isprime函数在确定数组中的整数元素是否为质数时的性能得到了提升。

例如,检查一个包含一百万个整数值向量的元素是否为质数,速度提升约20倍。

function timingTest
x = 1:1e6;
tf = isprime(x);
end

结果:

R2024a: 2.81 s

R2024b: 0.14 s

总结

以上只是部分更新内容,完整版的更新日志请参考:

https://www.mathworks.com/help/releases/R2024b/matlab/release-notes.html


http://www.ppmy.cn/embedded/58264.html

相关文章

【前端从入门到精通:第二课:HTML头部标签常用标签】

走进HTML世界 HTML简介 可参考百度百科 学习变成到底难不难? A. 1 * 5 ? B. 111 * 555 ? A 到 B的过程, 差距就在于动手,不动手你就学不会。 如何创建HTML文件 ​鼠标右键->新建文本文件->更改后缀名.html 创建文件所需要注…

【SOM神经网络的数据分类】SOM神经网络的数据分类的一个小案例

【SOM神经网络的数据分类】SOM神经网络的数据分类的一个小案例 注:本文仅作为自己的学习记录以备以后复习查阅 一 概述 自组织特征映射网络(Self-Organizing Feature Map, SOM)也叫做Kohonen网络,它的特点是:全连接、…

Android 列表视频滑动自动播放—滑动过程自动播放(实现思路)

本文基于Exoplayer PlayerView 实现列表视频显示一定比例后自动播放 首先引入google media3包 implementation androidx.media3:media3-exoplayer:1.1.1 implementation androidx.media3:media3-exoplayer-dash:1.1.1 implementation androidx.media3:media3-ui:1.1.1 impl…

连接与隔离:Facebook在全球化背景下的影响力

在当今全球化的背景下,Facebook作为全球最大的社交网络平台,不仅连接了世界各地的人们,还在全球社会、经济和文化中发挥着深远的影响。本文将深入探讨Facebook在全球化进程中的作用,以及其对个体和社会之间连接与隔离的双重影响。…

如何在uniapp中使用websocket?

websocket是我们经常使用到的接口,通常用于即时通讯以及K线图这种需要实时更新数据的业务需求上,传统的restful接口虽然可以满足,但是你需要轮询,这就要额外写一堆代码,不是很方便,用websocket就简单很多,我们来看代码 第一步定义全局常量、变量 const config = {host…

机器学习——随机森林

随机森林 1、集成学习方法 通过构造多个模型组合来解决单一的问题。它的原理是生成多个分类器/模型,各自独立的学习和做出预测。这些预测最后会结合成组合预测,因此优于任何一个单分类得到的预测。 2、什么是随机森林? 随机森林是一个包含…

秋招突击——7/5——设计模式知识点补充——适配器模式、代理模式和装饰器模式

文章目录 引言正文适配器模式学习篮球翻译适配器 面试题 代理模式学习面试题 装饰器模式学习装饰模式总结 面试题 总结 引言 为了一雪前耻,之前腾讯面试的极其差,设计模式一点都不会,这里找了一点设计模式的面试题,就针对几个常考…

【LLM】三、open-webui+ollama搭建自己的聊天机器人

系列文章目录 往期文章回顾: 【LLM】二、python调用本地的ollama部署的大模型 【LLM】一、利用ollama本地部署大模型 目录 前言 一、open-webui是什么 二、安装 1.docker安装 2.源码安装 三、使用 四、问题汇总 总结 前言 前面的文章,我们已经…