如何使用 MATLAB 函数和模型资源管理器在 Simulink 中定义动态数组

How to define a dynamic array in Simulink using MATLAB function and Model Explorer

我正在进行 MATLAB Simulink 设计,但遇到了一个问题。我想创建一个长度随机的动态 uint8 数组。为此,我创建了一个 Matlab 函数并将变量定义为:

len = 100;
ethMesg = ones([1,len], 'uint8');

注:Len以后取随机整数。

稍后,我打开模型浏览器并将其设置为:

enter image description here

所以,基本上我选中了可变大小框并将限制设置为 1 到 1514 (1x1514),因为 MATLAB Simulink 要求上限。当我尝试构建模型 (CTRL + D) 时,出现以下错误 returns.

Expression '[1 1514]' for maximum of data 'ethMesg' must evaluate to a scalar.

我认为 Simulink 将此变量视为标量,不接受 Model Explorer (1 x 1514) 中的矢量定义。有谁知道如何确保将变量定义为向量,还是我做错了什么,因为这个变量在过去 2 天造成了问题。

顺便说一句,我是否必须选中“可变大小”框才能定义可变变量,否则 Simulink 会要求提供特定大小?

感谢您的帮助。

我找到了答案: https://www.mathworks.com/matlabcentral/answers/112235-variable-size-matrix-error-in-matlab-function-block

这里说最大值必须在大小块中定义,而不是最小-最大限制。 虽然我的问题解决了,但我仍然无法理解 Min-Max 值的用途。也许它用于定义特定 uint8 的限制。