您可以通过以下方式解决它。
- 启用所需信号的信号记录(属性)。例如,将名称设置为 custom 和
signalone
.
- 如果您实际上不想记录信号,请设置
Limit data points to last
为1
,这样您就可以避免存储未使用的数据。
- 转到 SIMulink 首选项并启用信号记录,默认输出名称为
logsout
- 模拟后,您将
logsout
在工作区中获得一个数据集
现在评估这个数据集如下:
% returns data, if data limit is set to 1 it's a coloumn
% vector with just the last value
data = logsout.get('signalone').Values.Data
你现在可以只使用这个向量的大小并且你知道信号的维度
[~,dim]=size(data)
或在一行中:
[~,dim]=size(logsout.get('signalone').Values.Data)
如果您有很多信号并且想要一次评估它们,请为您的信号提供方便的输出名称,并使用循环来遍历具有所有信号名称的字符串向量。
正如您所说,您想要“所有”(您确定吗?)信号的维度,我认为在每个信号属性中检查“启用信号记录”并在您有列表的 Simulink 首选项中进行所有进一步定义会更方便管理所有信号。