MATLAB Function 模块输出为虚拟总线

MATLAB Function block output as virtual Bus

我试图从 MATLAB Function block 输出数据作为总线信号。正如你现在它可以是虚拟的和非虚拟的。

解决方法

我知道如何将其创建为非虚拟的: 1. 在工作区创建 Bus 对象;

bussignal(1) = Simulink.BusElement;
bussignal(1).Name = 'Q';
MyBus = Simulink.Bus;
MyBus.Elements = bussignal;

2。在模型资源管理器中将我的功能块的输出属性定义为 Bus: myBus 3. 在我的函数内部,我现在可以使用这个变量 D 作为结构。 我得到非虚拟输出:

问题: 如何让它虚拟化? 我想使用虚拟,因为它不会创建数据副本,也不会创建结构(避免额外的内存分配),因此可以更快地处理大型项目。 我可以进行大量输出,然后使用 Bus Creator 块,但如何在 Function 内部以编程方式执行此操作?

MATLAB 函数仅支持非虚拟总线。它将虚拟总线信号输入转换为非虚拟总线。请参阅

处的文档

http://www.mathworks.com/help/simulink/ug/how-structure-inputs-and-outputs-interface-with-bus-signals.html

当您需要将输入总线类型转换为 MATLAB Function 块中 MATLAB 代码的结构时,它不能是可以具有非连续内存的虚拟。