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

news2024/12/26 20:47:47

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.coloradmin.cn/o/2130592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从边缘到云端,合宙DTURTU打造无缝物联网解决方案

随着物联网&#xff08;IoT&#xff09;技术的飞速发展&#xff0c;万物互联的时代已经到来&#xff0c; 如何高效、稳定地连接边缘设备与云端平台&#xff0c;实现数据的实时采集、传输与处理&#xff0c;成为了推动物联网应用落地的关键。 DTU&#xff08;数据传输单元&…

Python面试宝典第48题:找丑数

题目 我们把只包含质因子2、3和5的数称作丑数&#xff08;Ugly Number&#xff09;。比如&#xff1a;6、8都是丑数&#xff0c;但14不是&#xff0c;因为它包含质因子7。习惯上&#xff0c;我们把1当做是第一个丑数。求按从小到大的顺序的第n个丑数。 示例 1&#xff1a; 输入…

单链表的查找与长度计算

注&#xff1a;本文只探讨"带头结点"的情况(查找思路类似循环找到第i-1 个结点的代码) 一.按位查找&#xff1a; 1.代码演示&#xff1a; 版本一&#xff1a; #include<stdio.h> #include<stdlib.h> ​ ​ //定义单链表结点类型 typedef struct LNo…

C语言 | Leetcode C语言题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; char** readBinaryWatch(int turnedOn, int* returnSize) {char** ans malloc(sizeof(char*) * 12 * 60);*returnSize 0;for (int i 0; i < 1024; i) {int h i >> 6, m i & 63; // 用位运算取出高 4 位和低 6 位if (h &…

针对网上nbcio-boot代码审计的actuator方法的未授权访问漏洞和ScriptEngine的注入漏洞的补救

针对网上下面文章的漏洞补救 奇安信攻防社区-代码审计之nbcio-boot从信息泄露到Getshell 一、未授权分析 在ShiroConfig中放开了actuator方法的未授权访问 org/jeecg/config/shiro/ShiroConfig.java:156 上面问题,先注释掉上面的未授权访问,实际就是代码注释掉 二、、RCE…

秒懂Linux之管道通信

目录 前言 进程间通信目的 管道通信 原理 匿名管道 测试样例 情况与特点 模拟进程池 命名管道 全部代码 前言 两个进程之间可以进行数据的直接传递吗&#xff1f;——不可以&#xff0c;进程必须得具备独立性。 进程间通信目的 数据传输&#xff1a;一个进程需要将…

odoo14 | 报错:Database backup error: Access Denied

这两天抽空想为自己快速做一个简单的管理系统&#xff0c;来信息化管理一下自己家里的一些菜谱、电视剧下载清单等事情&#xff0c;我又不想大动干戈的用Java写管理系统&#xff0c;我就想用已经手生了两年半的odoo快速搭一个系统用用得了&#xff0c;结果还遇上了这么个事 根…

Java设计模式—面向对象设计原则(四) ----->接口隔离原则ISP (完整详解,附有代码+案例)

文章目录 3.4 接口隔离原则(ISP)3.4.1 概述3.4.2 案列 3.4 接口隔离原则(ISP) Interface Segregation Principle&#xff0c;简称ISP 3.4.1 概述 客户端测试类不应该被迫依赖于它不使用的方法&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。 3.4.2 案列 面看…

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

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

通信工程学习:什么是LCAS链路容量调整机制

LCAS&#xff1a;链路容量调整机制 LCAS&#xff08;Link Capacity Adjustment Scheme&#xff09;链路容量调整机制是一种在ITU-T G.7042中定义的技术&#xff0c;旨在解决传统SDH&#xff08;同步数字体系&#xff09;网络在传输数据业务时带宽分配不灵活的问题。以下是LCAS链…

【 C++ 】C/C++内存管理

前言&#xff1a; &#x1f618;我的主页&#xff1a;OMGmyhair-CSDN博客 目录 一、C/C内存分布 二、C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free malloc&#xff1a; calloc&#xff1a; realloc&#xff1a; free&#xff1a; 三、C内存管理方式…

用Mapmost聚类图分析世界

聚类地图是一种数据可视化工具&#xff0c;能够帮助用户在地图上直观地显示大量地理数据点。当数据点过多时&#xff0c;单独显示每个点会使地图变得混乱&#xff0c;而聚类地图通过将相近的数据点聚集在一起&#xff0c;减少了视觉复杂性&#xff0c;便于分析和理解。聚类地图…

在Linux上安装中创中间件InforSuiteAS(二进制文件安装)

在Linux上安装中创中间件InforSuiteAS&#xff08;二进制文件安装&#xff09; 前言1、环境准备1.1 支持的操作系统1.2 依赖软件 2、安装步骤2.1 下载并解压安装包2.2 执行安装2.3 修改防火墙设置2.4 启动InforSuiteAS2.5 InforSuiteAS常用命令2.6 验证安装 3、常见问题及解决方…

【Petri网导论学习笔记】Petri网导论入门学习(三)

Petri网导论入门学习&#xff08;三&#xff09; Petri 网导论学习笔记&#xff08;三&#xff09;定义 1.4定义 1.5定义 1.6定义 1.7 Petri 网导论学习笔记&#xff08;三&#xff09; 如需学习转载请注明原作者并附本帖链接&#xff01;&#xff01;&#xff01; 如需学习转载…

Axure设计之全屏与退出全屏交互实现

在Axure RP中&#xff0c;设计全屏与退出全屏的交互功能可以极大地提升用户体验&#xff0c;尤其是在展示产品原型或进行演示时。本文将详细介绍如何在Axure RP中通过结合JavaScript代码实现全屏与退出全屏的交互效果。 ​ Axure原型设计web端交互元件库&#xff1a;https://…

网络安全产品认证证书大全(持续更新...)

文章目录 一、引言二、《计算机信息系统安全专用产品销售许可证》2.1 背景2.2 法律法规依据2.3 检测机构2.4 检测依据2.5 认证流程2.6 证书样本 三、《网络关键设备和网络安全专用产品安全认证证书》3.1 背景3.2 法律法规依据3.3 检测机构3.4安全认证和安全检测依据标准3.5 认证…

9月→2024年计算机与信息安全国际会议

【9月→郑州、吉隆坡双会场】 Springer-LNICST &#x1f525;&#x1f525;2024年计算机与信息安全国际会议&#xff08;WCCIS 2024&#xff09; 会议时间&#xff1a;2024年9月20-22日 论文收录&#xff1a;EI&#xff0c;Scopus稳定检索 网络安全&#xff0c;访问控制&am…

了解MySQL 高可用架构:主从备份

为了防止数据库的突然挂机&#xff0c;我们需要对数据库进行高可用架构。主从备份是常见的场景&#xff0c;通常情况下都是“一主一从/(多从)”。正常情况下&#xff0c;都是主机进行工作&#xff0c;从机进行备份主机数据&#xff0c;如果主机某天突然意外宕机&#xff0c;从机…

Android 13 固定systemUI的状态栏为黑底白字,不能被系统应用或者三方应用修改

目录 一.背景 二.思路 三.代码流程 1.colos.xml自定义颜色 2.设置状态栏的背景颜色 3.对View进行操作 ①.对Clock(状态栏左侧的数字时钟)进行操作 ②.对电池(BatteryMeterView)进行操作 4.锁屏状态栏 5.patch汇总 一.背景 客户需求将状态栏固定成黑底白字,并且不能让系…

红外小目标检测:基于深度学习

目录 ​编辑 1.红外成像技术的优势 2.红外小目标检测的基本原理 常用方法 1. 背景抑制法 2. 基于滤波的方法 3. 基于模型的方法 4. 基于深度学习的方法 5. 多传感器融合方法 3.代码实战 案例背景 数据准备 模型选择 代码实现 讲解 4.应用场景 5.未来发展趋势 …