将 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 中,因此我有很多 "解析错误",因此修复这些错误将非常好。我将使用这些信息编写代码来推导运动学数据。

点赞
用户4388677
用户4388677

变量初始化

据我所知,在 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() 计算弧度)。

2015-01-28 22:24:48