[TsArray] Structure Simulink vers structure MATLAB
Bonjour,
Je suis confronté à un problème que Google et Mathworks ne me semblent pas connaitre : la transformation d'un TsArray, contenant des Timeseries, vers une structure Struct.
Dans mes simulateurs j'utilise le "logsout" de simulink pour sortir de façon structurée mes données de simulation : je bus toutes mes infos pour ne faire sortir qu'un seul fil que je nomme "mainBus".
Sous matlab, après avoir lancé la simulation, je tape:
Code:
logsout.unpack('systems');
et j'obtiens un TsArray dans mon workspace nommé mainBus.
Or ces données vont servir à d'autre personnes qui ne disposent pas de la toolbox simulink, je dois donc fournir mon "mainBus" dans un format lisible.
Pour l'instant ce que je fais :
Code:
1 2 3 4 5 6 7 8
| level1 = mainBus.who;
for i = 1:length(level1)
level2 = mainBus.(level1{i}).who;
for k = 1:length(level2)
mainBusStruct.(level1{i}).(level2{k}).Time = mainBus.(level1{i}).(level2{k}).Time;
mainBusStruct.(level1{i}).(level2{k}).Data = mainBus.(level1{i}).(level2{k}).Data;
end
end |
Je lis "à la main" mon TsArray, jusqu'à trouver des array (Time et Data), que j'enregistre dans une structure.
Existe-il une solution plus élégante et générique? Une sorte de fonction TsArray2Struct, ou un moyen détourner d'arriver mes fins?
Florent