簡體   English   中英

Lua:將用戶數據讀取為數字/將用戶數據與數字進行比較

[英]Lua: Read userdata as number / Compare userdata with number

我正在嘗試從文件中導入數字並在它們處於特定值時更改它們。 如果輸入是相應的數字(10 或 9),我正在使用火炬從gesture獲取值並將它們從101更改為10或從100更改為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

剛剛找到一個更簡單的方法

    local gesture_int = gesture:uint()

這是一個相當復雜的問題,經過艱苦的測試后,我找到了一種將用戶數據編號與整數進行比較的方法。

print(type(gesture)) -> prints `userdata`
print(gesture) -> 10
gesture_str = tostring(gesture)
print(type(gesture_str)) -> prints `string`
gesture_int = tonumber(gesture_str)
print(type(gesture_int)) -> prints `number`

單線解決方法如下

gesture_int = tonumber(tostring(gesture))

這個新變量將用戶數據編號存儲為整數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM