SciLua: ']' 附近出现意外的符号
2018-2-20 17:31:47
收藏:0
阅读:110
评论:1
尝试运行来自 SciLua 页面的以下示例(我的测试文件名为 test.lua):
-- 没有设置全局键:
local alg = require "sci.alg" -- 加载 sci.alg 模块。
local dist = require "sci.dist" -- 加载 sci.dist 模块。
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) -- 矩阵转置、相乘和求幂。
w[i] = alg.trace((Q[]`**Q[])^^4) -- 矩阵转置、相乘和求幂。
end
return sqrt(stat.var(v))/stat.mean(v), sqrt(stat.var(w))/stat.mean(w)
end
我一直得到这个错误:
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) -- 矩阵转置、相乘和求幂。
w[i] = alg.trace((Q[]`**Q[])^^4) -- 矩阵转置、相乘和求幂。
end
return sqrt(stat.var(v))/stat.mean(v), sqrt(stat.var(w))/stat.mean(w)
end
print(randmatstat(1000))
其中的预期输出为:
0.75865001347735 0.74932678346271
[用时 0.2 秒]
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

SciLua 作者在此
为了启用 SciLua 语言扩展,除了 sci 包之外,还需要安装 sci-lang 包。
如果你像 scilua.org 上所示(首选方法)一样将 SciLua 安装为 ULua 发行版的一部分,则只需通过
scilua可执行文件而不是lua执行脚本。否则,如果你选择手动安装
sci和sci-lang,并将其安装在现有的 LuaJIT 安装顶部,则会应用以下方法。该软件包包含一个 __bin 文件夹,如果通过 upkg 安装(在 ULua 中),则为每个操作系统自动从此文件夹中包含的 lua 文件创建可执行脚本。因此,如果选择手动安装,则必须自己创建可执行脚本(例如,在 Linux 上,创建一个名为scilua的文件,具有执行权限,并且其内容为__bin/scilua.lua+ bash shebang)。