Bonjour,
Je souhaite extraire des données d'un fichier texte (ou xml) et les placer dans une matrice dans Matlab.
Le fichier txt contient les lignes suivantes organisées en plusieurs blocks (3 dans l'exemple):
<objects>
<object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_0" parent="root" visible="true">
<position x="-932.390112" y="465.456642" z="-113.6953240"/>
<rotation w="-0.168567" x="-0.821863" y="0.131280" z="-0.3853420"/>
<scale x="1.000000" y="1.000000" z="1.000000"/>
</object>
<object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_1" parent="root" visible="true">
<position x="-191.334869" y="-815.207902" z="659.0063650"/>
<rotation w="-0.990832" x="-0.622205" y="-0.533263" z="0.8630410"/>
<scale x="1.000000" y="1.000000" z="1.000000"/>
</object>
<object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_2" parent="root" visible="true">
<position x="854.322695" y="645.500598" z="-764.8095280"/>
<rotation w="0.830886" x="0.836896" y="-0.454449" z="0.7615380"/>
<scale x="1.000000" y="1.000000" z="1.000000"/>
Je souhaiterai extraire de chaque bloc les 3 valeurs position x, y et z, les 4 valeurs correspondant à rotation w, x, y et z, et la chaîne de caractères correspondant à name= (ici il faut donc extraire 70S_ribosome_0, 1 et 2).
Ensuite, je souhaite placer ces valeurs dans une matrice qui contient autant de lignes que de blocks et contenant 8 colonnes : la colonne 1 contient le nom, la colonne 2 contient la position x, etc... jusqu'à la colonne 8 qui contient la rotation z.
La logique de "textscan" m'échappe toujours. De plus, j'ai testé sans succès les outils de type XML toolbox.
Grand merci pour votre aide.
Configuration: Windows Vista
Firefox 3.0.10