如何解决Simulink 代码生成错误:类数组初始化
我正在尝试构建一个 Simulink 函数,它通过使用类数组来记录系统的统计信息。但是,我无法在 Simulink 中生成类数组。我意识到我应该在 Simulink 中实例化一个数组,但如何实例化一个类?
arrivedArray(3,65536) = queueInfo;
analysisArray(3,65536) = queueInfo;
在上图中,queueInfo 是我的类。这两行返回以下错误。 代码生成需要在订阅之前完全定义变量 createdArray。 顺便说一句,这是 Matlab 建议的用于创建类数组的方法,但不知何故它不起作用。后来我试过这个:
persistent arrivedArray
if isempty(arrivedArray)
arrivedArray(3,655336) = queueInfo;
end
persistent analysisArray
if isempty(analysisArray)
analysisArray(3,65536) = queueInfo;
end
但它也不起作用。错误是: 持久变量 'arrivedArray' 必须在使用前赋值。唯一的例外是使用“isempty(arrivedArray)”的检查,它可以在赋值之前执行。 我理解错误,但不知道如何修复它。构造函数也没有帮助我。这是我的类结构: 1
classdef transactionInfo
properties
tag = uint16(0);
arrivalTime = uint64(0);
departureTime = uint64(0);
end
methods
function obj = transactionInfo(v)
if nargin > 0
obj.tag = uint16(v);
obj.arrivalTime = uint64(v);
obj.departureTime = uint64(v);
end
end
end
end
2
classdef queueInfo < transactionInfo
properties
length = uint16(0);
queueID = uint8(0);
delay = uint64(0);
end
methods
function obj = queueInfo(v)
if nargin > 0
obj.length = uint16(v);
obj.queueID = uint8(v);
obj.delay = uint64(v);
end
end
end
end
有人知道如何解决这个问题吗? 注意:我的类结构中可能有一些明显的错误,我是 OOP 的新手。欢迎提出任何建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。