matlab - 有人可以指点我一个在线/免费的 MATLAB 编译器/解释器或解释一下这个 MATLAB 代码中发生了什么吗?

标签 matlab matlab-compiler

我提前为这个问题道歉。我不喜欢“解释这段代码”的问题,但我找不到关于我的具体示例的任何文档。

背景
我的问题是这样的。我正在尝试将一些 MATLAB 代码翻译成 C#,但我同时必须学习 MATLAB。我不与任何了解 MATLAB 代码的人一起工作,我无权访问 MATLAB,因此我无法测试任何代码,也找不到有关以下问题的任何文档。所以……

问题

  1. 有没有我可以用来测试 MATLAB 代码的免费在线/桌面 MATLAB 编译器/解释器?

    ……或者……

  2. 有没有人可以解释下面的代码片段:

    someVar.member1=myValue1;
    someVar.member2=myValue2;
    if (myCondition)
        for i=1:myTotal
            someVar(i).member3=myValue3;
        end;
    end;
    

    这是否使 someVar 成为一个数组?我会丢失 member1member2 还是它会以某种方式保存我设置的内容?

最佳答案

回复: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/

相关文章:

c++ - 相当于opencv中matlab的 "ismember"?

matlab - 将数组集成到另一个数组上的规范方法是什么

matlab - 如何存储对位置敏感的哈希值?

visual-studio-2015 - 链接 : fatal error LNK1104: cannot open file 'ucrt.lib'

c++ - 帮助 : VS2005 Compile *. m 文件

.net 和 matlab 集成

java - Matlab 和 Java 8

matlab - 决策树中的一组结果

python - Linux 上的 MATLAB MEX 文件无法在 libpython.2.7.so 中找到符号

c++ - 如何从 C 调用在 MATLAB 中创建并在 C 中编译的函数?