MATLAB | R2024b更新了哪些好玩的东西?

Hey, 又到了一年两度的MATLAB更新时刻,MATLAB R2024b正式版发布啦!,直接来看看有哪些我认为比较有意思的更新吧!

1 小提琴图

天塌了,我这两天才写了个半小提琴图咋画,MATLAB 官方就出了小提琴图绘制方法。

小提琴图基础画法

ydata = randn(100,3);
violinplot(ydata)

分组数据绘制小提琴图

比如100个数据,前20个分到第一组,中间50个分到第二组,最后30个分到第三组

ydata = randn(100, 1);
xgroupdata = categorical(repelem(["group1";"group2";"group3"], [20,50,30]));
violinplot(xgroupdata, ydata)

对比小提琴图

ydata1 = randn(100,1);
ydata2 = randn(100,1)+5;xgroupdata1 = categorical(repelem(["group1";"group2"],[90,10]));
xgroupdata2 = categorical(repelem(["group3";"group4"],[25,75]));tbl = table(xgroupdata1,xgroupdata2, ...ydata1,ydata2,VariableNames=["X1","X2","Y1","Y2"]);
figure
violinplot(tbl,"X1","Y1")

一组数据一种分类方式:

figure
violinplot(tbl,"X1",["Y1","Y2"])

两组数据(橘色一组蓝色一组)同一种分类方式:

figure
violinplot(tbl,["X1","X2"],"Y1")

一组数据两种(橘色一种蓝色一种)分类方式:

figure
violinplot(tbl,["X1","X2"],["Y1","Y2"])

两组数据两种分类方式:

位置和颜色分组数据

ydata = randn(100,1);xgroupdata = categorical(repelem(["group1";"group2";"group3"], [20;50;30]));
cgroupdata = categorical(repelem(["a";"b";"a";"b";"c";"d";"e"], [10;10;25;25;10;10;10]));violinplot(xgroupdata, ydata, GroupByColor = cgroupdata)

半小提琴图

左右版本:

ydata1 = randn(100,1);
ydata2 = [randn(25,1)+2; randn(75,1)+5];xgroupdata1 = repelem([1;2], [50;50]);
xgroupdata2 = repelem([1;2], [25;75]);violinplot(xgroupdata1, ydata1, DensityDirection = "positive")
hold on
violinplot(xgroupdata2, ydata2, DensityDirection = "negative")
legend("ydata1","ydata2")


上下版本:

violinplot(xgroupdata1,ydata1,Orientation="horizontal",DensityDirection="positive")
hold on
violinplot(xgroupdata2,ydata2,Orientation="horizontal",DensityDirection="negative")
legend("ydata1","ydata2")

2 新版罗盘图

估计老版本compass函数会在未来被删掉,新出的罗盘图函数叫compassplot:

rho = [1 3 2 2];
theta = [0 pi/4 3*pi/4 5*pi/4];
compassplot(theta,rho)

[a,b] = meshgrid(-2:2);
Z = a + b*1i;
compassplot(Z)

3 无限延伸的平面

constantplane函数,这个用来画示意图还是非常有用的:

XYZ = rand([500,3]);
B= XYZ(:,1) < .5;
hold on
scatter3(XYZ(B, 1), XYZ(B, 2), XYZ(B, 3), 15, 'filled')
scatter3(XYZ(~B, 1), XYZ(~B, 2), XYZ(~B, 3), 15, 'filled')constantplane("x", .5 , FaceAlpha = 0.5);
view(3)

4 图标的宽度

使用图例的IconColumnWidth属性可以控制图标的宽度

x = [1 3 4 3 1 0];
y = [0 0 2 4 4 2];
hold on
fill(x,y,'cyan','FaceAlpha',0.3)
fill(x+2,y,'magenta','FaceAlpha',0.3)
fill(x+1,y+2,'yellow','FaceAlpha',0.3)lgdHdl = legend();
lgdHdl.IconColumnWidth = 5;

5 饼图和甜甜圈图引入other项

cats = categorical([ "Glazed"  "Jelly"  "Jelly"  "Jelly" , ... "Sugar" , "Sugar" , "Plain" , "" , "" , "" , "" ,]);donutchart (cats,LabelStyle= "name" )

以前未定义项目不会显示,现在会显示为other:

可通过以下方式关闭:

donutchart(cats,LabelStyle="name",ShowOthers="off")

6 柱状图标签

标签终于彻底变成柱状图一部分:

x = [1 2 3];
vals = [2 3 6; 11 23 26; 2 4 23];
b = bar(x,vals);
b(1).Labels = b(1).YData;
b(2).Labels = b(2).YData;
b(3).Labels = b(3).YData;

b(1).LabelLocation = "end-inside";
b(2).LabelLocation = "end-inside";
b(3).LabelLocation = "end-inside";

7 更方便构建跨多个网格单元UI组件


8 MATLAB测试版新桌面

可以测试包括深色主题、更新的布局和扩展的搜索功能,去以下fileexchange链接下载:

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


9 实时编辑器范围滑块


10 实时编辑器修改代码字体


11 找出在范围内的数据

A = [1 3 5 7 9];
TF = isbetween(A,2,7)
% TF = 1x5 logical array
%  0   1   1   1   0
val = A(TF)
% val = 1×3
%     3     5     7

以前则需要:

TF = A >= 2 & A <= 7

12 去除NaN值和异常值

A = [1 3 NaN 6 NaN];
R = rmmissing(A)
% R = 1×3
%     1     3     6

以前则需要

R = A(~isnan(A))

异常值可以使用rmoutliers函数去除。

13 检测数据是否近似

直接问数据相等与否会因为有误差给出否的结果,现在可以问数据是否相似:

A = sin(3/4*pi);
B = 1/sqrt(2);
A==B
% ans = logical
%  0
isapprox(A,B)
% ans = logical
%  1

后言

篇幅问题很多更新不再赘述,其中包括帮助函数help返回的信息格式会更加统一,还有一个对初学者很友好的更新,就是报错的具体位置会用^这个符号进行标注,大概这样:

然后简单叙述一下关于文件处理的部分此外比如可以使用unzip解压有密码的压缩包,可以使用readdictionarywritedictionary读取json文件,python和MATLAB字典可以互相使用:

  • https://www.mathworks.com/help/releases/R2024b/matlab/matlab_external/use-matlab-dictionaries-in-python.html
  • https://www.mathworks.com/help/releases/R2024b/matlab/matlab_external/python-dict-variables.html

此外在工具箱方面主要有以下更新

  • 5G Toolbox - 探索候选 6G 波形生成
  • DSP HDL Toolbox - 使用交互式 DSP HDL IP Designer 应用程序定制、配置 DSP 算法并生成 HDL 代码和验证组件
  • Simulink Control Design - 设计和实施非线性和数据驱动的控制技术,例如滑动模式和迭代学习控制
  • System Composer - 编辑子集视图;使用活动和序列图描述系统行为

更多详细信息请见:

  • https://www.mathworks.com/help/releases/R2024b/matlab/release-notes.html
  • https://www.mathworks.com/products/new_products/latest_features.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422592.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客户端负载均衡Ribbon实例

文章目录 一&#xff0c;概述二&#xff0c;实现过程三&#xff0c;项目源码1. 源码放送&#xff1a;2. 部署方式 四&#xff0c;功能演示五&#xff0c;其他 一&#xff0c;概述 一般来说&#xff0c;提到负载均衡&#xff0c;大家一般很容易想到浏览器 -> NGINX -> 反…

加密与安全_ sm-crypto 国密算法sm2、sm3和sm4的Java库

文章目录 Presm-crypto如何使用如何引入依赖 sm2获取密钥对加密解密签名验签获取椭圆曲线点 sm3sm4加密解密 Pre 加密与安全_三种方式实现基于国密非对称加密算法的加解密和签名验签 sm-crypto https://github.com/antherd/sm-crypto 国密算法sm2、sm3和sm4的java版。基于js…

PMP--一模--解题--21-30

文章目录 9.资源管理21、 [单选] 项目经理发现一个不可预料的高影响风险已经成为项目的一个因素&#xff0c;团队成员之间的自身利益导致问题得不到解决&#xff0c;项目经理必须快速行动&#xff0c;让团队重新集中精力&#xff0c;以便项目恢复进度&#xff0c;项目经理应该使…

vue3项目实现全局国际化

本文主要梳理vue3项目实现全项目格式化&#xff0c;例如在我前面文章使用若依创建vue3的项目中&#xff0c;地址&#xff1a;若依搭建vue3项目在导航栏中切换&#xff0c;页面中所有的组件的默认语言随之切换&#xff0c;使用的组件库依旧是element-plus&#xff0c;搭配vue-i1…

09-排序1 排序(C)

这一节&#xff0c;测试各类排序算法的运行速度&#xff08;没有基数排序&#xff08;桶&#xff09; 其实在实际学习中&#xff0c;还是有意义的 给定 n 个&#xff08;长整型范围内的&#xff09;整数&#xff0c;要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序…

Windows与Linux下 SDL2的第一个窗口程序

Windows效果和Linux效果如下&#xff1a; 下面是代码&#xff1a; #include <stdio.h> #include "SDL.h"int main(int argc, char* argv[]) { // 初始化SDL视频子系统if (SDL_Init(SDL_INIT_VIDEO) ! 0){// 如果初始化失败&#xff0c;打印错误信息printf(&…

proteus+51单片机+实验(LCD1620、定时器)

目录 1.LCD1602液晶显示屏 1.1基本概念 1.1.1LCD的简介 1.1.2LCD的显示原理 ​​​1.1.3LCD的硬件电路 1.1.4LCD的常见指令 1.1.5LCD的时序 ​​​​​​​1.2代码 1.2.1写命令和写数据操作 1.2.2初始化和测试代码 1. 3.3功能函数 1.3proteus代码 1.3.1器件代码 1.…

探索Python世界的隐藏宝石:Pika库的神秘力量

文章目录 探索Python世界的隐藏宝石&#xff1a;Pika库的神秘力量背景&#xff1a;为何选择Pika&#xff1f;Pik库简介如何安装Pika&#xff1f;简单库函数使用方法场景应用常见Bug及解决方案总结 探索Python世界的隐藏宝石&#xff1a;Pika库的神秘力量 背景&#xff1a;为何…

ELK预警方案:API+XXLJob

目录 步骤一&#xff1a;出一个接口&#xff0c;接口内查询出10分钟内是否有异常信息 步骤二&#xff1a;XXLJob中设置预警的频率 步骤三&#xff1a;在重要的业务处输出指定格式日志即可 步骤一&#xff1a;出一个接口&#xff0c;接口内查询出10分钟内是否有异常信息 {&qu…

Java | Leetcode Java题解之第402题移掉K位数字

题目&#xff1a; 题解&#xff1a; class Solution {public String removeKdigits(String num, int k) {Deque<Character> deque new LinkedList<Character>();int length num.length();for (int i 0; i < length; i) {char digit num.charAt(i);while (!…

C语言字符函数和字符串函数(20)

文章目录 前言一、字符分类函数小练习 二、字符转换函数三、strlen的使用和模拟实现四、strcpy的使用和模拟实现五、strcat的使用和模拟实现六、strcmp的使用和模拟实现七、strncpy函数的使用八、strncat函数的使用九、strncmp函数的使用十、strstr函数的使用和模拟实现十一、s…

OpenGL3.3_C++_Windows(37)

调试&#xff1a; 视觉错误与CPU调试不同&#xff0c;在GLSL代码中也不能设置断点&#xff0c;出现错误的时候寻找错误的源头可能会非常困难。 glGetError&#xff08;&#xff09; GLenum glGetError();返回整形数字&#xff0c;查询错误标记&#xff0c;但是当一个错误标记…

C#开发基础之使用四种流行的数据库访问技术ADO.NET、Dapper、EF Core 和 SqlSugar 连接 SQL Server

前言 在这篇文章中&#xff0c;我们将介绍四种流行的数据库访问技术&#xff1a;ADO.NET、Dapper、Entity Framework Core (EF Core) 和 SqlSugar。每种技术都提供了与 SQL Server 进行交互的不同方法&#xff0c;我们将以 TestDB 数据库中的 User 表为例&#xff0c;展示如何…

关于malloc/free的一些知识点

序 关于malloc/free&#xff0c;我们都不陌生&#xff0c;在最开始学习c语言时就相当了解&#xff0c;包括c中的new也是封装的malloc。下边我以glibc实现的malloc来讲述一些关于malloc/free的知识点。 malloc/free malloc和free并不是系统调用&#xff0c;而是运行时库&…

C语言的结构体类型

在我们使用C语言进行编写代码时&#xff0c;常常会使用已经给定的类型来创建变量&#xff0c;比如int型&#xff0c;char型&#xff0c;double型等&#xff0c;而当我们想创建一些较为复杂的东西时&#xff0c;单单用一个类型变量是没办法做到的&#xff0c;比如我们想创建一个…

shader 案例学习笔记之fract函数

fract函数 可以理解为模1取余&#xff0c;获取一个数的小数部分&#xff0c;如果参数是向量&#xff0c;那就是获取每个向量分量上的小数 案例一 #ifdef GL_ES precision mediump float; #endif// 渲染分辨率 uniform vec2 u_resolution; // 程序运行时间 uniform float u_ti…

如何利用 Smarter Balanced 塑造教育领域的 AI 治理

目录 定义挑战 以人为本的设计引领 融入多样性 探索以学生为中心的价值观 探索效果的层次和不同的影响 部位于加利福尼亚州的Smarter Balanced Assessment Consortium 是一个由会员主导的公共组织&#xff0c;为 K-12 和高等教育领域的教育工作者提供评估系统。该组织成立…

初学者指南:MyBatis 入门教程

主要介绍了Mybatis的基本使用、JDBC、数据库连接池、lombok注解&#xff01; 文章目录 前言 什么是Mybatis? 快速入门 使用Mybatis查询所有的用户信息 配置SQL提示 JDBC介绍 Mybatis 数据库连接池 lombok 总结 前言 主要介绍了Mybatis的基本使用、JDBC、数据库连接…

基于stm32单片机使用 RT-Thread 系统的 ADC 外设

一、ADC 介绍 来源&#xff1a;RT-Thread 文档中心   ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号&#xff0c;例如温度、压力、声音或者图像等&#xff0c;需要转换成更容易储存、处理和发射…

【Linux】:信号与信号产生

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家带来信号和信号的产生相关代码和知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到…