Matrix SciLua:靠近';]的意外符号';
从页面运行以下示例(我的测试文件名为Matrix SciLua:靠近';]的意外符号';,matrix,lua,Matrix,Lua,从页面运行以下示例(我的测试文件名为test.lua): 我不断得到错误: test.lua:13:靠近']'的意外符号 大多数其他模块工作正常,但问题仅在使用矩阵时出现。我感谢你的帮助 更新: 有了@stepelu的帮助性回答,我非常感谢他,下面的完整示例现在运行良好: local alg = require 'sci.alg' local prng = require 'sci.prng' local stat = require 'sci.stat' local dis
test.lua
):
我不断得到错误:
test.lua:13:靠近']'的意外符号
大多数其他模块工作正常,但问题仅在使用矩阵时出现。我感谢你的帮助
更新:
有了@stepelu的帮助性回答,我非常感谢他,下面的完整示例现在运行良好:
local alg = require 'sci.alg'
local prng = require 'sci.prng'
local stat = require 'sci.stat'
local dist = require 'sci.dist'
local min, sqrt, random, abs = math.min, math.sqrt, math.random, math.abs
local rng = prng.std()
local vec, mat, join = alg.vec, alg.mat, alg.join
local function randn(r, c)
local x = mat(r, c)
for i=1,#x do
x[i] = dist.normal(0, 1):sample(rng)
end
return x
end
local function randmatstat(t)
local n = 5
local v, w = alg.vec(t), alg.vec(t)
for i=1,t do
local a, b, c, d = randn(n, n), randn(n, n), randn(n, n), randn(n, n)
local P = alg.join(a..b..c..d)
local Q = alg.join(a..b, c..d)
v[i] = alg.trace((P[]`**P[])^^4) -- Matrix transpose, product and power.
w[i] = alg.trace((Q[]`**Q[])^^4) -- Matrix transpose, product and power.
end
return sqrt(stat.var(v))/stat.mean(v), sqrt(stat.var(w))/stat.mean(w)
end
print(randmatstat(1000))
根据预期产出:
0.75865001347735 0.74932678346271
[Finished in 0.2s]
这里是SciLua的作者
为了启用SciLua语言扩展,有必要在sci
软件包的基础上再安装sci lang
软件包
如果您安装了SciLua作为ULua发行版的一部分,如SciLua.org(首选方法)所示,那么通过SciLua
可执行文件而不是lua
可执行文件执行脚本就足够了
否则,如果您选择在现有LuaJIT安装的顶部手动安装sci
和sci lag
,则以下内容适用。
该软件包包含一个_bin文件夹,当通过upkg(在ULua中)安装时,每个操作系统的可执行脚本将自动从该文件夹中包含的lua文件创建。
因此,如果您选择手动安装,您必须自己创建一个可执行脚本(例如,在Linux上,一个名为
scilua
且具有exec权限的文件,内容为\uu bin/scilua.lua
+bash shebang)。闻起来它不像backtick,我看到了否决票,但这是我学习lua的第一天,也许我在做些蠢事。向下投票者能不能给我一个提示,让我更积极一些?@MarcinOrlowski——正如页面上所说的那样,背景符号是矩阵转置的。@MarcinOrlowski——我的问题是为什么它不喜欢背景符号?为什么它不能识别**
或^
?非常感谢,我被Windows:cd文件夹上的#命令误导了,该文件夹包含_uloa/uloa lua[options][script args]
。现在一切都好了。我很感谢你,我本来打算放弃我非常喜欢的Scilua的整个想法。
0.75865001347735 0.74932678346271
[Finished in 0.2s]