1
ファイルから数値をインポートして、特定の値に変更しようとしました。私はトーチを使用してgesture
の値を取得し、101
から10
または100
から9
に変更します(入力が対応する数値(10または9)の場合)。残念ながら、私はLuaでは、入力が整数に変換することはできず、整数やトーチのテンソルと比較しないタイプのuserdata
であることを認識しました。ルア:数値としてのユーザーデータの読み取り/数値とのユーザーデータの比較
私の質問は次のとおりです。入力の種類がuserdata
の場合、数値の等しいかどうかを確認するにはどうすればよいですか?
比較が可能なように入力を数値に変換する方法はありますか?
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
おそらく、そのユーザーデータにはメンバー関数があります。これらのメンバーの1人は整数を生成しませんか? –
@NicolBolasはすばらしいコメントをいただきありがとうございます! :)前に 'lua userdataメンバ関数'を検索しましたが、役に立たないものは見当たりませんでした。 – DaveTheAl
あなたは誤解しています。そのユーザーデータは、いくつかのC APIに由来しています。そのユーザーデータを使用する方法については、そのAPIのドキュメントを参照してください。ユーザーデータのための単一のAPIはありません。すべてのC APIは、さまざまなユーザーデータオブジェクトに対して異なる機能を公開しています。 –