我正在尝试在Ubuntu 10.4 LTS上安装Lsyncd但我收到一些错误:
> checking for LUA... no checking for
> LUA... no checking for LUA...
> configure: error: Package requirements
> (lua >= 5.1.3) were not met:
>
> No package 'lua' found
>
> Consider adjusting the PKG_CONFIG_PATH
> environment variable if you installed
> software in a non-standard prefix.
>
> Alternatively, you may set the
> environment variables LUA_CFLAGS and
> LUA_LIBS to avoid the need to call
> pkg-config. See the …
Run Code Online (Sandbox Code Playgroud) 这是我遇到的问题的简化版本.假设我有一个向量
p = [1 5 10]
还有一个
q = [.75 .85 .95].
我想提出以下矩阵:
res = [1,.75; 1,.85; 1,.95; 5,.75; 5,.85; 5,.95; 10,.75; 10,.85; 10,.95].
这也称为笛卡尔积.我怎样才能做到这一点?
非常感谢
所以我试图在字符串中找到方括号:
s = "testing [something] something else"
x,y = string.find(s,"[")
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:格式错误的模式(缺少']').
我也尝试过:
x,y = string.find(s,"\[")
Run Code Online (Sandbox Code Playgroud)
给我同样的错误.
还有这个:
x,y = string.find(s,"\\[")
Run Code Online (Sandbox Code Playgroud)
在这种情况下,x和y为零.
有关如何正确做到这一点的任何想法?提前致谢.
我对Luabind包装器如何在lua_State *L
没有使用Lua堆栈的情况下传递函数感兴趣.
Luabind怎么样:
我不是要尝试像Luabind那样创建另一个绑定到其他库.我只是想知道他们是怎么做到的.只是一个好奇的男人.
首先让我澄清一些事情:
我不是试图从命令行运行一个Lua脚本.
我不是想从Lua调用任何android函数
因此,除此之外,我正在努力做到这一点.
从Android Activity直接或间接调用(JNI/SL4A)Lua脚本并返回活动中的结果.
现在看一下SL4A的文档,我看到了一些缺点:
1)我找不到文档说它允许以编程方式调用Lua.2)看起来SL4A可能需要作为单独的应用程序安装(不是太无用).
我看到的唯一其他选项是NDK交叉编译所有Lua,然后尝试以某种方式在C代码中调用它.
我想在IntelliJ Idea上自动完成...我正在学习基于Lua的moaiSDK.我已经在Idea中设置了Lua插件,并且有一个工作的lua环境.现在我想在Idea上使用Moai API.我在这里看到HTML文档:http://getmoai.com/docs/index.html,但是没有这个领域的经验我不知道如果它是可行的以及如何.提前致谢
使用Lua 5.2 API时,下面的代码打印"nil"
function __debug(szName, ...)
print(type(arg));
end
__debug("s", 1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)
但是这个代码在使用Lua 5.1时会起作用,并打印"table"
我有一个3维网格,其中对于网格的每个点,我想计算大量时间步长的时间相关函数G(t),然后对每个网格点求G函数.使用4 for循环,执行时间变得非常大,所以我试图使用parfor来避免这种情况.
我的代码的一部分:
for i=1:50
for j=1:50
for k=1:25
x_in=i*dx;
y_in=j*dy;
z_in=k*dz;
%dx,dy, dz are some fixed values
r=sqrt((xx-x_in).^2+(yy-y_in).^2+(zz-z_in).^2);
%xx,yy,zz are 50x50x25 matrices generated from meshgrid
% r is a 3d matrix which produced from a 3 for-loop, for all the points of grid
parfor q=1:100
t=0.5*q;
G(q)=((a*p)/(t.^1.5)).*(exp(-r.^2/(4*a*t)));
% a,p are some fixed values
end
GG(i,j,k)=sum(G(:));
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我使用时parfor
,执行时间变得更大,我不确定为什么会这样.也许我对parfor循环中的切片和索引变量不太熟悉.
我的电脑处理器有8个线程和ram内存ddr3 8GB
任何帮助都会很棒.
谢谢
我有一个功能
function f1(msg) return value end
Run Code Online (Sandbox Code Playgroud)
在Lua文件A.lua中,我如何从B.lua调用此函数或返回此函数的结果谢谢Jp
我正在考虑将Lua嵌入到C++应用程序中(在FreeBSD 8.2下运行).但基准测试显示在某些情况下表现不佳.特别是当Lua尝试将字符串转换为数字并比较字符串时,它变得更慢,更糟糕的是,破坏了可扩展性(8个核心的性能比1个差!).我现在认为它是语言环境,因为当我避免自动转换时,一切正常.但对于现实生活,我需要进行字符串比较和数字转换.我怎么能够:
将Lua与语言环境隔离开来,即确保Lua的所有函数都没有间接使用语言环境.例如,我可以提供自己的转换和比较功能吗?
或者完全禁用语言环境.我试过setlocale (LC_ALL, "C")
,它运行正常(区域设置更改),但瓶颈仍然存在
更新:
按照lhf的建议,我直接进入了Lua库代码.我发现的是几十个使用(官方)依赖于语言环境的功能的地方.要删除所有这些都需要花费太多精力,必须有更好的方法.我试着测量哪一个不能缩放.我还添加了一些其他常用函数,以及我自己的一些兴趣(Lua解释器创建和销毁,设置全局变量等).结果如下.正确的百分比必须是700%,即7个线程必须比1个线程执行7倍:
nop: 824% (1:106867300/7:881101495)
sprintf %f: 57% (1:2093975/7:1203949)
sprintf %.14g: 51% (1:2503818/7:1278312)
sprintf %.14lf: 73% (1:2134432/7:1576657)
sprintf %lf: 64% (1:2083480/7:1340885)
sprintf %d: 601% (1:6388005/7:38426161)
sscanf %s: 181% (1:8484822/7:15439285)
sscanf %f: 712% (1:3722659/7:26511335)
lua_cycle: 677% (1:113483/7:768936)
set_global: 715% (1:1506045/7:10780282)
set_get_global: 605% (1:2814992/7:17044081)
strcoll: 670% (1:38361144/7:257300597)
getenv: 681% (1:8526168/7:58131030)
isdigit: 695% (1:106894420/7:743529202)
isalpha: 662% (1:80771002/7:535055196)
isalpha(r): 638% (1:78232353/7:499207555)
strtol: 694% (1:16865106/7:117208528)
strtod: 749% (1:16727244/7:125323881)
time: 168% (1:727666/7:1225499)
gettimeofday: 162% (1:727549/7:1183433)
Run Code Online (Sandbox Code Playgroud)
数字从一次运行变为另一次运行,但是大图仍然保持一致:sprintf双转换比单线程更差.时间和gettimeofday规模严重.带有%s的sscanf也很差,这是非常令人惊讶的,但在我的情况下不是问题.
最后它可能根本不是语言环境.我将Lua转换从sprintf更改为一些简化的手工代码,到目前为止一切正常.
顺便说一句,第一个基准测试是在Linux桌面上运行的,没有显示出任何奇怪 …
如果我有一个名为test1.lua的文件
function print_hi()
print("hi")
end
Run Code Online (Sandbox Code Playgroud)
我想让函数可用于另一个名为test2.lua的文件,我写道:
require 'test1'
function print_hi_and_bye()
print_hi()
print('bye')
end
Run Code Online (Sandbox Code Playgroud)
但是,现在让我说我有一个名为test3.lua的第三个函数,我想要公开print_hi_and_bye()但不是print_hi().如果我需要'test2',我将可以访问print_hi和print_hi_and_bye()函数.我如何解决这个问题并将test1的本地函数保存到test2,以便其他任何东西都不会错误地使用它们?有没有办法用lua的加载工具来做这个,而不仅仅是通过重构代码?
谢谢
我是Coronoa和Lua的新手,我正在试图弄清楚如何关闭地图和文本框.地图和文本框出现在主屏幕上,我能够创建一个按钮(只是一个类型的黑色x)并使其关闭,但我无法关闭地图或文本框.下面是我正在使用的代码片段,但我被卡住了.我搜索了Google,并阅读了他们的文档,我只是遗漏了一些东西.
local obj = display.newImageRect( "closeButton.jpg" ,25,25 )
obj.x = 60
obj.y = 410 -- replaced with newImageRect for dynamic scaling (adjust X & Y as required)
obj.touch = function (event)
local btn = event.target
if event.phase == "ended" then
btn.alpha = 0 -- example to show the function doing something
myMap.alpha = 0
textBox.alpha = 0
end
end
-- begin detecting touches
obj:addEventListener( "touch", obj.touch)
myMap = native.newMapView( 25, 0, 275, 180 )
myMap.mapType = "hybrid" -- other mapType …
Run Code Online (Sandbox Code Playgroud)