J'ai un objet busobject qui a des éléments et puis chaque élément a un type de données de primitive (uint8 single, uint16) ou a un type de données qui est un autre objet de bus. J'ai voulu analyser ceci mais j'obtiens l'erreur «la fonction ne peut pas être indexée using {} ou .indexing» quand j'utilise une fonction imbriquée puisque je dois employer les objets de bsu de l'espace de travail. voici mon code:créer une structure à partir d'un objet de bus dans matlab
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
où component_name est l'objet principal de bus et compteur détermine le nombre total de primitives je rencontre et cette valeur que je sais déjà. Pour l'instant je ne suis pas capable de résoudre ce problème, alors j'ai pensé à convertir l'objet bus en une structure qui a toutes les données à l'intérieur. C'est possible?
ah bien je l'ai trouvé une solution de contournement. pas de soucis –