将 Lua 语法更改为 matlab

Changing Lua Syntax to matlab

我有一些 Lua 代码,我必须将其更改为 Matlab 语法,我真的不确定如何继续,尤其是在没有任何数据可供练习的情况下,但目前因为我刚刚粘贴了 Lua 代码到 Matlab 我只是希望 Matlab 错误消失,希望我有一些可用的东西!

对于某些背景,完整代码用于从步态分析期间记录的标记位置坐标中导出运动学数据。已经跟我解释过,代码的开头基本上就是获取原始数据,然后中段和末尾就是进行改造。

大部分代码是我设法更改的一些基本数学,但开头和结尾超出了我的能力范围。

这里是 Lua 代码的开头:

     --Initilisation of variables
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")

--Initialisation Code
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 中,所以我有很多 "parse errors" 所以修复这些代码会很棒。我将使用此信息编写代码来导出动力学数据

变量初始化

据我所知,在 MATLAB 中没有简单的初始化方法。但是下面的代码应该可以完成这项工作:

if ~exist('variableName', 'var')
    variableName = content;
end

您应该对每个变量都这样做。 (我添加了一个分号以防止 MATLAB 打印结果值 - 自动打印功能通常用于调试。)

setChannels(),get()

如果这是某种专有接口,那么你应该检查它是否有 MATLAB。 MATLAB 还支持 several languages.

中的外部函数

循环和字符串操作

% 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() 函数,因为这不会自动完成。字符串的连接是通过将两个字符串放在一个向量(方括号)中并用 space 分隔连接的组件来完成的。结果是一个字符串向量,即一个字符串。

代码和数学函数结束

if (ZdistanceXZ == 0) 
    ZrotZ = 90;
else    
    ZrotZ = atand(Zdy/ZdistanceXZ);
end

函数 atand() 自动计算以度为单位的反正切(atan() 以弧度计算)。