【发布时间】:2015-05-23 16:24:48
【问题描述】:
我有一个带有元素的总线对象,然后每个元素要么具有原始数据类型(uint8 single,uint16),要么具有另一个总线对象的数据类型。我想解析这个,但是当我使用嵌套函数时,我收到错误“函数无法使用 {} 或 .indexing 编制索引”,因为我需要使用工作区中的 bsu 对象。 这是我的代码:
function s_func_parse(component_name,counter)
length_bus=length(component_name.Elements);
for i=1:length_bus
primitive_component{1,counter}=strcat(component_name.Elements(i).Datatype,'.');
if(strcmp(component_name.Elements(i).Datatype,'uint8')~=1 || strcmp(component_name.Elements(i).Datatype,'single')~=1 || strcmp(component_name.Elements(i).Datatype,'uint16')~=1 || strcmp(component_name.Elements(i).Datatype,'uint32')~=1)
new_component=char(busobject.Elements(i).Datatype);
s_func_parse(new_component,counter);
else
primitive_component{1,counter}=strcat(primitive_component,busobject.Element(i));
end;
end;
assignin('base', 'primitive_component', primitive_component);
end
其中component_name 是主要的总线对象,计数器决定了我拥有的原语总数以及我已经知道的这个值。
目前无法解决这个问题,所以我想将总线对象转换为包含所有数据的结构。有可能吗?
【问题讨论】:
-
嗯,我找到了解决方法。不用担心
标签: matlab structure simulink bus nested-function