文档主页 - MathWorks 中国
各版本对比
MathWorks - Archived MathWorks Documentation - MathWorks 中国
基本原则还是使用最新版的,如果硬件资源有限可参考主要变化选择合适的版本 建议2020b以及以后版本
几个关键版本变化
MATLAB® 实时脚本和实时函数是交互式文档,它们在一个称为实时编辑器的环境中将 MATLAB 代码与格式化文本、方程和图像组合到一起。此外,实时脚本可存储输出,并将其显示在创建它的代码旁。
什么是实时脚本或实时函数?- MATLAB & Simulink- MathWorks 中国
MATLAB R2016a - MATLAB 支持 R2016a 及更高版本中的实时脚本,以及 R2018a 及更高版本中的实时函数。
操作系统 - 从 R2019b 开始,在 MATLAB 支持的所有操作系统中,MATLAB 都支持实时编辑器。有关详细信息,请参阅系统要求。
对于 MATLAB 版本 R2016a 至 R2019a,MATLAB 支持的操作系统中有几个不支持实时编辑器。
不支持的操作系统包括:
Red Hat Enterprise Linux 6。
Red Hat Enterprise Linux 7。
SUSE Linux Enterprise Desktop 版本 13.0 及更早版本。
Debian 7.6 及更早版本。
此外,一些操作系统需要额外的配置才能在 MATLAB 版本 R2016a 到 R2019a 中运行实时编辑器。如果您无法在系统中运行实时编辑器,请联系技术支持以了解有关如何配置系统的信息。
串行端口接口有一组新的函数和属性。现有功能仍可运行,但推荐使用新的函数名称和属性。新接口提高了性能。
通过使用 serialportlist 查看计算机上所有串行端口的列表,来开始使用新接口。
list = serialportlist
list = 1×4 string array "COM1" "COM3" "COM4" "COM8"
然后,创建一个 serialport 对象,将数据写入设备,并从中读取数据。
s = serialport("COM8",115200); write(s,1:5,"uint32") read(s,5,"uint32");
TCP/IP 客户端接口有一组新的函数和属性。
您仍可以使用现有函数执行以下操作:
使用 tcpclient
函数创建一个与 TCP/IP 服务器的 TCP/IP 客户端连接。
使用 read
函数从远程主机读取数据。
使用 write
函数将数据写入远程主机。
现在,您可以使用新函数执行以下操作:
使用 echotcpip
函数启动 TCP/IP 回显服务器。
使用 readline
函数从远程主机读取一行 ASCII 字符串数据。
使用 writeline
函数向远程主机写入一行 ASCII 字符串数据。
使用 configureTerminator
函数为与远程主机的 ASCII 字符串通信设置终止符。
使用 configureCallback
函数为与远程主机的通信设置回调函数和触发条件。
使用 flush
函数刷新缓冲区,以便与远程主机通信。
通过创建一个连接到 TCP/IP 回显服务器的 tcpclient
对象、向其写入数据和从中读取数据,开始使用 TCP/IP 客户端接口。
echotcpip("on",3030) t = tcpclient("localhost",3030) write(t,1:5,"uint8") read(t,5);
有关详细信息,请参阅 TCP/IP 通信。
串行端口接口:改进了性能
serialport
接口的性能优于 serial
接口。例如,在使用 9600 的默认波特率时,以下代码中使用 serialport
对象写入和读取数据的速度大约是使用 serial
对象写入和读取数据速度的 1.1 倍。
% s is a serial object function timingTest(s,bytecount) fwrite(s,1:bytecount,"uint8"); fread(s,bytecount,"uint8"); end
% s is a serialport object function timingTest(s,bytecount) write(s,1:bytecount,"uint8"); read(s,bytecount,"uint8"); end
不同波特率条件下大致执行时间如下:
s.BaudRate |
||||
9600 |
19200 |
56000 |
115200 |
|
serial |
120 毫秒 | 68 毫秒 | 31 毫秒 | 23 毫秒 |
serialport |
109 毫秒 | 55 毫秒 | 21 毫秒 | 11 毫秒 |
代码是在运行 Windows 10 的 Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60 GHz 测试系统上使用 timeit
函数进行计时的:
bytecount = 100; timeit(@()timingTest(s,bytecount))
测试是使用串行环回连接器完成的。
有关详细信息,请参阅串行端口设备。
2021b 支持python3.9
2021a 支持3.8 停止支持3.6
2020b停止支持3.5
2019a MATLAB 现在除支持 CPython 2.7、3.5 和 3.6 之外,还支持 CPython 3.7。
2018b Python 接口:在 MATLAB 和 Python 之间传递多维数值或逻辑数组
2018a Python 版本 3.4:已停止支持
支持的 Python 版本 - 3.5 或 3.6 版。
2020a 工程 API:以编程方式获取最新 Git 修订版
2019b 比较 Git 分支:显示差异并保存副本
2019a 源代码管理集成:将 MATLAB Git 状态与外部 Git 客户端同步
帮助使用者自动生成代码并用用户界面进行参数调整
实时编辑器任务是可以添加到实时脚本中以执行一组特定操作的 App。您可以将任务添加到实时脚本中,以探查参数并自动生成代码。使用任务可缩短开发时间、减少错误并缩短在绘图上花费的时间。
任务代表一系列 MATLAB® 命令。您可以采用内嵌方式或在右侧显示其输出。
文档
将交互式任务添加到实时脚本中- MATLAB & Simulink- MathWorks 中国
视频
What Are Live Editor Tasks? Video - MATLAB
MATLAB and Simulink Projects Video - MATLAB
在 MATLAB ® 中使用函数参数验证来声明对函数输入参数的特定限制。您可以约束函数输入值的类、大小和其他方面,而无需在函数体中编写代码来执行这些测试。
Validating Function Inputs Video - MATLAB
其他
编辑器代码:自动显示代码建议和完成
编辑器重构:自动将选定的代码转换为函数
实时编辑器控件:设置滑块、下拉列表、复选框和编辑字段的默认值
实时编辑器动画:将动画导出为电影或动画 GIF
实时编辑器:提高保存实时脚本或函数时的性能
比较工具:比较和合并具有改进的可用性、外观和语法突出显示的文本文件
sftp
功能:连接SFTP服务器
HDF5 接口:使用新功能支持 HDF5 1.10.7
从 MATLAB 直接调用 Python 功能
除了现有的对 2.7、3.7 和 3.8 的支持之外,MATLAB 现在还支持 CPython 3.9
实时编辑器动画播放控件:用于控制动画的交互式界面
实时编辑器控件:通过将变量关联到下拉项和滑块值,在实时脚本中创建动态控件
XML 文件:使用 readtable
、readtimetable
和其他函数读取、写入和导入 XML 文件
低级文件 I/O 函数和远程数据:对远程存储的文件执行读写操作
save
和 load
函数与远程数据:将数据保存、加载和追加到远程存储的 v7.3 MAT 文件中
读取在线数据:使用 readtable
、audioread
和其他读取函数通过 HTTP 和 HTTPS 读取文件
数据压缩函数:改进了 zip
/unzip
和 tar
/untar
的功能
jsonencode
:为 JSON 文本添加缩进
创建绘图实时编辑器任务:以交互方式创建绘图并生成代码
C++ 接口支持下列额外的 C++ 语言功能。
Java 引擎应用程序中使用 MATLAB 值对象
支持的 Python 版本,即 3.7 或 3.8 版
增加了对 IMU 传感器的支持
现在,MATLAB Support Package for Raspberry Pi™ Hardware 可为下列 IMU 传感器提供代码生成和连接到 Raspberry Pi 函数的 IO 支持:
HTS221
LPS22HB
LSM303C
LSM6DSL
LSM9DS1
MPU-6050
MPU-9250
2020b
比较工具:在 MATLAB Online 中比较文本文件
readstruct
和 writestruct
函数:在 XML 文件中读取和写入结构化数据
readlines
函数:以字符串数组形式读取文本文件中的行
HDF5 文件和基于 Web 的数据:使用现有 HDF5 函数读取和写入远程存储的 HDF5 文件
HDF5 文件:读取和写入使用 Unicode 字符编码的文件名
音频文件和基于 Web 的数据:使用 audioread
、audiowrite
和 audioinfo
读取和写入远程存储的音频文件
TCP/IP 客户端接口有一组新的函数和属性。
您仍可以使用现有函数执行以下操作:
使用 tcpclient
函数创建一个与 TCP/IP 服务器的 TCP/IP 客户端连接。
使用 read
函数从远程主机读取数据。
使用 write
函数将数据写入远程主机。
现在,您可以使用新函数执行以下操作:
使用 echotcpip
函数启动 TCP/IP 回显服务器。
使用 readline
函数从远程主机读取一行 ASCII 字符串数据。
使用 writeline
函数向远程主机写入一行 ASCII 字符串数据。
使用 configureTerminator
函数为与远程主机的 ASCII 字符串通信设置终止符。
使用 configureCallback
函数为与远程主机的通信设置回调函数和触发条件。
使用 flush
函数刷新缓冲区,以便与远程主机通信。
serialport
接口的性能优于 serial
接口。例如,在使用 9600 的默认波特率时,以下代码中使用 serialport
对象写入和读取数据的速度大约是使用 serial
对象写入和读取数据速度的 1.1 倍。
源代码管理:改进了设置 Git 源代码管理的工作流
现在,您可以将 nullptr
传递给 C++ 函数。
MATLAB 现在除支持 CPython 2.7、3.6 和 3.7 之外,还支持 CPython 3.8
Java 包将被删除
实时编辑器任务:以交互方式从 USB 网络摄像头捕获图像,并在实时脚本中生成 MATLAB 代码。
文件编码:默认情况下,将 MATLAB 代码文件 (.m
) 和其他纯文本文件保存为 UTF-8 编码文件
switch
函数:更灵活地比较对象
copyfile
和 movefile
函数:访问基于 Web 的存储服务,如 Amazon Web Services 和 Azure Blob 存储
数据存储:使用 writeall
将数据从数据存储写入文件
文本文件和电子表格文件:使用 'WriteMode'
参数追加、覆盖或替换数据
h5create
和 h5write
:将字符串数据写入 HDF5 文件
jsonencode
:在 MATLAB 类中自定义编码
导入工具不再支持导入 HDF5 文件。要以编程方式导入 HDF4 或 HDF-EOS 文件,请改用 hdfread 函数。
工程 API:以编程方式获取最新 Git 修订版
MATLAB 提供接口 clib.array
来封装 C++ 原生数组和 std::vector
类型。
从 R2020a 开始,MATLAB 支持 AdoptOpenJDK - Open source, prebuilt OpenJDK binaries 提供的 OpenJDK 8 (Hot Spot)。
MATLAB Support Package for Ryze Tello Drones:从 MATLAB 控制 Ryze Tello 无人机,并获取传感器和图像数据
增加了对 Raspberry Pi 4B 模型板的支持
在 Raspberry Pi 硬件上部署深度学习应用程序
从连接到 Arduino 硬件的 GPS 接收器读取 GPS 数据
将 BNO055 传感器与 Sensor Fusion and Tracking Toolbox 和 Navigation Toolbox 结合使用来估计方位
为 MATLAB Function 模块中的 MATLAB Arduino 函数生成支持 I2C 和 SPI 的代码
功能变化或删除
i2cdev 和 spidev 函数将在 R2020a 中删除
警告
servo 对象的属性 Pins 将在 R2020a 中删除
警告
类 arduinoio.LibraryBase 将在 R2020a 中删除
警告
MATLAB 将在 R2020a 中停止支持 Adafruit Bluefruit EZ-Link Shield and Programmer
警告
实时编辑器任务:将交互式任务添加到实时脚本中,以分析参数并自动生成代码
实时编辑器输出:对绘图进行动画处理以显示数据随时间的变化
实时编辑器代码:复制一行或多行代码。
MATLAB Drive:与他人共享文件夹和协作
RESTful 函数:支持身份验证
RESTful Web 服务函数 webread
、websave
和 webwrite
还支持摘要式身份验证。有关详细信息,请参阅 weboptions
'Username'
参数。
有关 RESTful 函数支持的身份验证列表,请参阅Server Authentication。
兼容性注意事项
现在,对于基本身份验证,RESTful 函数 webread
、webwrite
和 websave
更严格地遵循 Internet Engineering Task Force (IETF®) 文档 RFC 7617 的规定。因此,当 RESTful 函数与主动期望基本身份验证但不返回 401 质询响应的服务器通信时,MATLAB 可能会出错。
要更新您的代码,请参阅 How do I preemptively include a Basic Authentication header when working with "webread"/ "webwrite" /"websave" in MATLAB R2019b?
tcpclient
、read
和 write
函数:生成 C 和 C++ 代码
tcpclient、read 和 write 函数支持使用 MATLAB Coder 生成 C 和 C++ 代码。
串行端口接口有一组新的函数和属性。现有功能仍可运行,但推荐使用新的函数名称和属性。新接口提高了性能。
通过使用 serialportlist 查看计算机上所有串行端口的列表,来开始使用新接口。
list = serialportlist
list = 1×4 string array "COM1" "COM3" "COM4" "COM8"
然后,创建一个 serialport 对象,将数据写入设备,并从中读取数据。
s = serialport("COM8",115200); write(s,1:5,"uint32") read(s,5,"uint32");
有关详细信息,请参阅串行端口设备。
兼容性注意事项
有关更新代码以使用推荐功能的详细信息,请参阅将您的代码转换为 serialport 接口。
不推荐使用 seriallist
函数
仍可运行
不推荐使用 serial
函数
仍可运行
App 设计工具:将 UI 图窗或容器中的组件从基于像素的定位转换为网格布局管理器
C++ 接口:发布 C++ 接口库的选项
C++ 接口:支持 nullptr
作为输出参数
C++ 接口:只读 (const
) 对象支持
Java 接口:JRE 版本 1.8.0_202 支持
C++ MEX 函数的进程外执行:自定义环境变量
HTTP Web 服务:服务器身份验证支持 NTLM 和 Kerberos 协议
HTTP Web 服务:超时选项
Python 接口:在进程外执行 Python 函数
Python 接口和引擎:已停止 3.5 版支持
实时编辑器控件:添加复选框、编辑字段和按钮以用于设置变量值并运行实时脚本
append
函数:合并字符串
readmatrix
、readvars
和 readcell
函数:以矩阵、变量或元胞数组形式读取表格数据
writematrix
和 writecell
函数:将表格数据从矩阵或元胞数组写入文本文件或电子表格文件
readtimetable
和 writetimetable
函数:读写时间表
detectImportOptions
函数:改进文本文件和电子表格文件导入选项的检测
C++:在 MATLAB 中使用来自第三方库的 C++ 类
Python:支持版本 3.7
Python 引擎:数据类型支持
C++ MEX:在进程外执行 MEX 函数
MEX 函数:使用自定义版本的 Boost 库
MATLAB 数据数组:支持行优先内存布局
支持编译 MEX 文件以及独立的 MATLAB 引擎和 MAT 文件应用程序的编译器发生变化
实时编辑器:使用新增的子标题样式组织实时脚本
实时编辑器:使用内部超链接在实时脚本中导航
实时编辑器:以交互方式筛选表输出,然后将生成的代码添加到实时脚本中
实时编辑器:更快地新建和打开现有实时脚本
实时编辑器:更改文本或代码的大小写
比较工具:合并实时脚本或函数的两个版本
导入工具:改进从电子表格导入时的代码生成
stlread
和 stlwrite
函数:从 STL(立体光刻)文件中读取或向其写入三角剖分信息
在浏览器中运行 App:使用大多数现行的浏览器在 MATLAB Online 中运行 App 或作为预部署 Web App 运行
MATLAB Online:通过 MATLAB Online 与 Raspberry Pi 硬件板通信
在 Raspberry Pi 硬件上部署 MATLAB 函数
iOS 和 Android 传感器:当您的设备无法访问网络时,获取传感器数据
iOS 和 Android 传感器:将传感器日志从设备上传到 MATLAB Drive
Java SE 8:MATLAB 支持该版本,增强了安全性并支持访问新 Java 功能
Python 接口:在 MATLAB 和 Python 之间传递多维数值或逻辑数组
C++ MEX API:使用 C++ API 从 MEX 文件内异步调用 MATLAB
可在嵌入式设备上运行
自动将 MATLAB 算法转换为 C/C++ 和 HDL 代码, 无需重写代码或学习大数据编程就能扩展你的分析在群集、GPU 和云上运行。
实时编辑器:创建包含格式丰富的文档(包括方程和图像)的实时函数
在实时编辑器中,您可以创建接受输入并返回输出的实时函数。您可以用格式丰富的文本为实时函数编写文档,包括方程、图像和经过格式化的代码示例。然后,您可以使用 doc
命令在帮助浏览器中查看文档。有关详细信息,请参阅创建实时函数。
实时编辑器:调试实时函数和脚本
实时编辑器:添加滑块和下拉列表以控制实时脚本中的变量值
实时编辑器:以交互方式对表数据排序
实时编辑器:创建目录并添加格式化代码示例
空数组:使用 zeros
和 ones
等函数创建空复数数组
readtable
函数:使用导入选项指定要从文本文件读取的行数
readtable
函数:使用导入选项轻松管理数据中的前缀和后缀
preview
函数:预览文件中表的前 8 行,而不导入完整表
App 设计工具:使用 MATLAB Compiler 创建预部署 Web App
Raspberry Pi:支持 Raspberry Pi Zero W 板
MATLAB Online:在 MATLAB Online 中从 USB 网络摄像头采集实时图像
C++ MEX 接口:从 C++ 中更轻松地访问 MATLAB 数据和对象
matlab.net.http 包:以流方式将数据传入或传出 Web 服务,并处理表单和 multipart 消息
对 Python® 3.4 版的支持已停止。
兼容性注意事项
为确保继续支持您的应用程序,请升级到受支持的 Python 版本 - 3.5 或 3.6 版。
实时编辑器:使用参数、属性值和备选语法的自动上下文提示编写 MATLAB 命令
实时编辑器:将实时脚本导出为 LaTeX 格式
实时编辑器:在 PDF 输出中显示高分辨率绘图
MATLAB Drive:从任何位置存储、访问和管理您的文件
arrayfun
、cellfun
和 structfun
函数:返回对象数组作为输出参数
脚本:在包含局部函数的脚本中运行节
isfile
和 isfolder
函数:确定输入是文件还是文件夹
ischange
函数:检测数据中的突然变化
islocalmin
和 islocalmax
函数:检测数据中的局部最小值和最大值
Arduino:使用低成本 Bluetooth 适配器以无线方式连接到 Arduino 板
Arduino 设置 UI:通过 USB、Bluetooth 或 Wi-Fi 建立与 Arduino 板的连接
Arduino 插件检测:当插入兼容的 Arduino 板时,会发现可用的 Arduino 支持和示例
用于 C++ 的 MATLAB 引擎 API:从支持面向对象的编程和异步执行的 C++ 程序运行 MATLAB 代码
用于 C++ 的 MATLAB 引擎 API:使用 MATLAB 数据数组在 C++ 程序和 MATLAB 之间传递数据
Java SE 8:MATLAB 支持该版本,增强了安全性并支持访问新 Java 功能
MinGW 5.3:MATLAB 支持
Microsoft Visual Studio 2017:MATLAB 支持 Microsoft Visual Studio 2017 Community、Professional 和 Enterprise 版
支持编译 MEX 文件以及独立的 MATLAB 引擎和 MAT 文件应用程序的编译器发生变化
Python 3.6 版:MATLAB 支持
新增功能, Bug 修复
新增功能, Bug 修复