为什么我得到一个计算最大大小是没有边界的误差在仿真软件MATLAB功能块R2018b吗万博1manbetx

28日视图(30天)
为什么我收到以下错误在我的仿真软件MATLAB功能块模型。万博1manbetx
错误:计算最大大小是没有边界的。
静态内存分配要求所有尺寸是有界的。
计算大小[:?x: ?]。
参阅附上的模型产生这个错误。

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2022年9月29日
错误的原因是有一个动态数组大小的MATLAB函数块取决于输入参数可调。数组的例子中“B”等于“(一)”,“一”是一个可调输入参数。因为“一个”在编译时是未知的,“B”的大小在编译时也是未知的,因此我们不能静态地分配内存“B”。即使我们定义一个最大尺寸为“B”使用“编码器。varsize”、没有保证”“要小于B的最大大小,因此错误依然存在。
这里有三个可能的解决方案可以解决这个问题:万博 尤文图斯
1。如果你不需要可调参数“A”,然后你可以“A”nontunable通过取消勾选“可调”复选框,在“端口和数据管理器”(链接)。现在我们可以在编译时检查B的大小和错误删除。
2。您还可以添加一个“断言”声明,可以用来执行“B”的最大大小,因此B将静态分配的最大大小。例如,添加以下行MATLAB函数块代码:
断言(< 10);
3所示。我们可以指定变量大小的数组是动态分配的,因此我们不需要在编译时知道他们的大小,因为他们将在运行时设置。我们可以通过打开“动态内存分配在MATLAB函数”的配置参数。也通过设置“MATLAB函数动态内存分配阈值”“0”,我们可以保证所有的变量大小的数组将动态分配的。有关详细信息,请参阅链接://www.tianjin-qmedu.com/help/万博1manbetxsimulink/ug/use-dynamic-memory-allocation-for-variable-size-arrays-in-a-matlab-function-block.html
1评论
崔
2022年3月4日
编辑: 2022年3月4日
第一个链接是不再工作,没有“可调”在“港口和马槽”复选框。建议参考地址如下:
“可调”复选框只会工作,如果满足以下需求:
这个属性只适用于数据 范围 属性设置为 参数。
- - - - - - - - - - - - - - - - - - -
如何解决变量大小输入非数字类型的?例如,我有这样的问题:

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!