【发布时间】:2015-06-01 12:05:25
【问题描述】:
我正在尝试在 Simulink 中创建一个结构数组,但遇到了一些问题。 首先,我尝试使用以下方法直接在 Simulink 中创建它:
function a = fcn(Dibhole, t , x, const)
%#codegen
%Output = zeros(10,10);
f1 = 'number';
f2 = 'move';
cube = struct(f1, 0, f2, 0);
a = repmat(cube, 20, 10);
for i = 1:20
for j = 1:10
a(i,j).number = 0;
a(i,j).move = 0;
end
end
我得到了这个错误:
派生的输出是结构类型。不支持“继承类型” 必须使用类型和定义的总线对象。点击“a”和 将“a”的数据类型设置为“总线:”,其中“”是 MATLAB 工作区中总线对象的名称。
所以我找到了一些如何在 Matlab 中创建结构并将其接收到 Simulink 的示例:http://blogs.mathworks.com/seth/2011/12/05/initializing-buses-using-a-matlab-structure/ 这很好用,但我仍然不能用数组重复这个:
f1 = 'number';
f2 = 'move';
cube = struct(f1, 0, f2, 0);
myStruct2 = repmat(cube, 20, 10);
for i = 1:20
for j = 1:10
myStruct2(i,j).number = 1;
myStruct2(i,j).move = 1;
end
end
busInfo = Simulink.Bus.createObject(myStruct2);
谁能向我澄清问题是什么?或者也许有不同的方法可以在 Simulink 中创建结构数组?
米哈伊尔
【问题讨论】:
标签: arrays matlab struct simulink