Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 从表中读取_Lua_Lua Table - Fatal编程技术网

Lua 从表中读取

Lua 从表中读取,lua,lua-table,Lua,Lua Table,我是Lua的新手,我正在努力学习它。 最近我遇到了下面这行代码,我相信它正在从表中提取一些值 localcontext=context_proto[{{1,batch_size},{1,source_l*imgH}] 我以前从未见过这种阅读表格的特殊方法。如果有人能帮助我理解上述代码的具体功能,我将不胜感激。来自: 类型表实现关联数组,即不仅可以使用数字,而且可以使用除nil和NaN之外的任何Lua值对数组进行索引 该代码使用一个表作为另一个表的索引。如果写得如下,可能会更清楚: local c

我是Lua的新手,我正在努力学习它。 最近我遇到了下面这行代码,我相信它正在从表中提取一些值

localcontext=context_proto[{{1,batch_size},{1,source_l*imgH}]

我以前从未见过这种阅读表格的特殊方法。如果有人能帮助我理解上述代码的具体功能,我将不胜感激。

来自:

类型实现关联数组,即不仅可以使用数字,而且可以使用除nil和NaN之外的任何Lua值对数组进行索引

该代码使用一个表作为另一个表的索引。如果写得如下,可能会更清楚:

local contextIndex = {{1, batch_size}, {1, source_l*imgH}}
local context = context_proto[contextIndex]

如果没有进一步的代码,您在这里看到的代码在本机Lua中没有太多意义。它通常用于火炬。我在网上一个与火炬相关的脚本中找到了你的片段。所以我想这是一个正确的猜测

我对Torch不是很有经验,但从我在文档中看到的情况来看,这将为您提供一个context_proto的次张量。第1行—批次大小和列源

我认为它被称为切片,并在以下演示/教程中介绍:

有关更多详细信息,请参阅火炬文档


这意味着
getmetatable(context\u proto)。
将使用
{1,batch\u size},{1,source\u l*imgH}}
作为第二个参数调用索引,调用结果将分配给
context
我认为Egor的注释更有用,因为这个答案在技术上是正确的,但它是不完整的,因为返回的值总是
nil
,而不使用
\u index
元方法(因为用作索引的表值是动态构造的,不能匹配任何内容)。
print 'more complex slicing can be done using the [{}] operator'
print 'this operator lets you specify one list/number per dimension'
print 'for example, t2 is a 2-dimensional tensor, therefore'
print 'we should pass 2 lists/numbers to the [{}] operator:'
print ''

t2_slice1 = t2[{ {},2 }]
t2_slice2 = t2[{ 2,{} }]      -- equivalent to t2[2]
t2_slice3 = t2[{ {2},{} }]
t2_slice4 = t2[{ {1,3},{3,4} }]
t2_slice5 = t2[{ {3},{4} }]
t2_slice6 = t2[{ 3,4 }]
...