Создание структуры из объекта шины в Matlab

У меня есть busobject, который имеет элементы, а затем каждый элемент имеет тип данных примитив (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 - это основной объект шины, а counter определяет общее количество имеющихся у меня примитивов, и это значение я уже знаю.

Пока я не могу решить эту проблему, поэтому я подумал о преобразовании объекта шины в структуру, в которой есть все данные. Является ли это возможным?

1 ответ

Решение

Также возможно создать структуру из шины, используя встроенную функцию Matlab

structFromBus = Simulink.Bus.createMATLABStruct(busSource)
Другие вопросы по тегам