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:
et j'obtiens un TsArray dans mon workspace nommé mainBus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part logsout.unpack('systems');
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 :
Je lis "à la main" mon TsArray, jusqu'à trouver des array (Time et Data), que j'enregistre dans une structure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager