官方文档主页
文档主页 - MathWorks 中国
各版本对比
MathWorks - Archived MathWorks Documentation - MathWorks 中国
发行说明: MATLAB- MATLAB & Simulink- MathWorks 中国
基本原则还是使用最新版的,如果硬件资源有限可参考主要变化选择合适的版本 建议2020b以及以后版本
几个关键版本变化
1,支持实时脚本和实时函数.mlx文件
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 中运行实时编辑器。如果您无法在系统中运行实时编辑器,请联系技术支持以了解有关如何配置系统的信息。
2,串口通信新的api
2019b新的串口通信api
串行端口接口有一组新的函数和属性。现有功能仍可运行,但推荐使用新的函数名称和属性。新接口提高了性能。
通过使用 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");
3,tcpip通信新的api
R2020b 优化了tcpip和串口通信
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))
测试是使用串行环回连接器完成的。
有关详细信息,请参阅串行端口设备。
4,对python的支持
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 之间传递多维数值或逻辑数组
20