J'essaie d'importer des nombres de fichiers et de les changer s'ils sont à une certaine valeur. J'utilise la torche pour obtenir les valeurs gesture
et les changer de 101
à 10
ou de 100
à 9
si l'entrée est le nombre correspondant (10 ou 9). Malheureusement, j'ai découvert que dans Lua, l'entrée est de type userdata
qui ne peut pas être convertie en entiers et non comparée à des entiers ou des tenseurs de torches. Donc, ma question est: Comment puis-je vérifier l'égalité des nombres si le type d'entrée est userdata
?Lua: Lire userdata sous forme de nombre/Comparer les données d'utilisateur avec le numéro
Existe-t-il un moyen de convertir l'entrée en un nombre tel que la comparaison est possible?
gesture = matio.load(val, 'gesture')
print(type(gesture)) --prints `userdata`
print(gesture) --prints 10 (for example)
if gesture == th.FloatTensor({101}) then
gesture = th.FloatTensor({10})
print("101 Detected! New value is: ")
print(gesture)
os.exit(0)
elseif gesture == th.FloatTensor({100}) then
gesture = th.FloatTensor({9})
print("100 Detected! New value is: ")
print(gesture)
os.exit(0)
end
Vraisemblablement, cette userdata a des fonctions membres, n'est-ce pas? L'un de ces membres ne génère-t-il pas d'entier? –
@NicolBolas merci beaucoup pour le commentaire rapide! :) J'ai cherché des fonctions de membre 'lua userdata' avant mais je n'ai rien vu d'utile ... un lien auquel vous pouvez me référer? – DaveTheAl
Vous vous méprenez. Ces données d'utilisateur provenaient de certaines API C. Vous devriez regarder la documentation de cette API pour apprendre comment utiliser ces données d'utilisateur. Il n'y a pas d'API unique pour les données utilisateur. Chaque API C expose différentes fonctions pour leurs différents objets userdata. –