2

我正在尝试从文件中导入数字并在它们处于某个值时更改它们。如果输入是相应的数字(10 或 9),我正在使用 torch 获取值形式gesture并将它们从101to10或 from 100to更改。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
4

2 回答 2

4

刚刚找到一个更简单的方法

    local gesture_int = gesture:uint()
于 2019-12-17T07:52:41.483 回答
1

这是一个相当复杂的问题,经过艰苦的测试后,我找到了一种将用户数据编号与整数进行比较的方法。

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))

这个新变量将用户数据编号存储为整数。

于 2018-02-03T18:05:10.977 回答