我提前为这个问题道歉。我不喜欢“解释这段代码”的问题,但我找不到关于我的具体示例的任何文档。
背景
我的问题是这样的。我正在尝试将一些 MATLAB 代码翻译成 C#,但我同时必须学习 MATLAB。我不与任何了解 MATLAB 代码的人一起工作,我无权访问 MATLAB,因此我无法测试任何代码,也找不到有关以下问题的任何文档。所以……
问题
有没有我可以用来测试 MATLAB 代码的免费在线/桌面 MATLAB 编译器/解释器?
……或者……
有没有人可以解释下面的代码片段:
someVar.member1=myValue1; someVar.member2=myValue2; if (myCondition) for i=1:myTotal someVar(i).member3=myValue3; end; end;
这是否使
someVar
成为一个数组?我会丢失member1
和member2
还是它会以某种方式保存我设置的内容?
最佳答案
回复:1 - 有优秀的Matlab Documentation ,包括视频教程,这将帮助您了解 Matlab。这比编译器有用得多,因为您将了解代码的意图,以便您可以以适合 C# 的方式重写它,而不是尝试复制 Matlab 优化的语法。
但是,要测试运行 Matlab 代码,有 Octave它提供了核心 Matlab 的大部分功能,但可能不支持工具箱功能(您需要额外付费的 Matlab 附加模块)。
回复:2 - 这是代码的作用
实例化一个structure array someVar
(Matlab 不需要事先声明变量)带有字段 member
;将其分配给 myValue1
someVar.member1=myValue1;
创建附加字段 member2
, 将其设置为 myValue2
someVar.member2=myValue2;
如果条件为真,循环myTotal
次,并设置字段 member3
所有i
someVar
的元素至 myValue3
.因此,someVar
从 1×1 结构数组变为 1×1 myTotal
结构数组。 someVar(1).member1
遗迹 myValue1
, 而 someVar(i).member1
被初始化为空([]
)。
if (myCondition)
for i=1:myTotal
someVar(i).member3=myValue3;
end;
end;
/aside:这个循环是一种相当低效的结构定义方式。因此,您需要翻译的代码中可能没有太多经过 Matlab 优化的语法。
关于matlab - 有人可以指点我一个在线/免费的 MATLAB 编译器/解释器或解释一下这个 MATLAB 代码中发生了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937026/