将 Lua 语法更改为 Matlab
我有一些 Lua 代码需要改成 Matlab 语法,我真的不知道该如何继续,尤其是没有数据练习的情况下。但是目前由于我只是把 Lua 代码粘贴到 Matlab 中,我只想让 Matlab 错误消失,并希望我有可用的东西!
为了背景,该完整代码用于从步态分析期间记录的标记位置坐标派生运动学数据。有人告诉我,该代码的开头基本上是获得原始数据,然后中间和结尾是将其转换。
大部分代码都是一些基本的数学,我设法修改了,但开头和结尾超出了我的能力范围。
以下是 Lua 代码的开头:
``` --变量初始化 ini = ini or 0 allinputs = allinputs or {} input = input or {} shapes = shapes or {"Sphere", "Cube", "Cylinder", "Cone"} colours = colours or {"Red", "Green", "Blue", "White", "Gray", "White", "Cyan"}
outputs.setchannels("gLLMx", "gLLMy", "gLLMz", "gLMMx", "gLMMy", "gLMMz", "gAJCx", "gAJCy", "gAJCz")
--初始化代码 if ini == 0 then
for i = 1, 38 do allinputs[i] = "Channel"..i end
inputs.setchannels(unpack(allinputs))
ini = 1 end
for i = 1, 38 do input[i] = inputs.get("Channel"..i) end
```
这是 Lua 代码结尾的示例:
``` if ZdistanceXZ == 0 then ZrotZ = 90 else ZrotZ = math.atan(Zdy/ZdistanceXZ) * 180/math.pi end
```
显然我并不指望有人直接翻译,我只是希望让基本事情向我解释。到目前为止,我已经将所有双引号更改为单引号,并在最后一个部分的每一行末尾添加了分号。
我只是想知道是否需要 "then" 和 "==" 之类的东西,顶部的 [i],并查看是否需要更改括号。由于我将 Lua 代码粘贴到 Matlab 中,因此我有很多 "解析错误",因此修复这些错误将非常好。我将使用这些信息编写代码来推导运动学数据。
- 如何将两个不同的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 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
变量初始化
据我所知,在 MATLAB 中没有简单的方法可以初始化。但是下面的代码应该可以完成任务:
if ~exist('variableName', 'var') variableName = content; end你应该对每个变量都这样做。(我加了一个分号来防止 MATLAB 打印出结果值——自动打印功能通常用于调试。)
setChannels()、get()如果这是某种专有接口,那么你应该检查它是否具有 MATLAB。MATLAB 还支持几种语言的外部函数。
循环和字符串操作
% Initialisation Code - comments are written this way in MATLAB if (ini == 0) % no need to write "then" for i = 1:38 % 1:38 is a vector [1 2 ... 38]. this way the loop iterates % over every component allinputs[i] = [ 'Channel' num2str(i)] end %end for end %end if请注意,在 MATLAB 中,字符串被放在 单引号 中。要将数字转换为字符串,需要
num2str()函数,因为这不是自动完成的。字符串的连接是通过将两个字符串放在一个矢量中(方括号)并将连接的组件用空格分隔来完成的。结果是一个字符串矢量,即一个字符串。代码的结尾和数学函数
if (ZdistanceXZ == 0) ZrotZ = 90; else ZrotZ = atand(Zdy/ZdistanceXZ); end函数
atand()自动计算反正切值(度数)(atan()计算弧度)。