20

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

背景
我的问题是这个。我正在尝试将一些 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还是会以某种方式保存我设置的内容?

4

5 回答 5

17

回复:1 - 有优秀的Matlab 文档,包括视频教程,这将帮助您了解 Matlab。这比编译器有用得多,因为您将了解代码的意图,以便您可以以适合 C# 的方式重新编写它,而不是尝试复制 Matlab 优化的语法。

但是,为了测试运行 Matlab 代码,Octave提供了核心 Matlab 的大部分功能,但可能不支持工具箱功能(Matlab 的附加模块,您需要额外付费)。

回复:2 - 这是代码的作用

使用字段实例化结构数组 someVar(Matlab 不需要事先声明变量)member;分配给myValue1

someVar.member1=myValue1;

创建一个附加字段member2,将其设置为myValue2

someVar.member2=myValue2;

如果条件为真,则循环myTotal次数,并将member3所有i元素的字段设置someVarmyValue3。因此,someVar从 1-by-1 结构体数组变为 1-by-myTotal结构体数组。someVar(1).member1剩余myValue1,而someVar(i).member1被初始化为空([])。

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

/aside:这个循环是定义结构的一种相当低效的方式。因此,您需要翻译的代码中可能没有太多 Matlab 优化的语法。

于 2012-12-18T16:20:40.913 回答
9

我已经为 MATLAB/Octave 编写了一个免费的在线界面,它运行脚本并且还有一个实时提示,您可以在其中键入命令。您还可以在会话之间保存脚本。在octave-online.net上查看。

于 2013-10-19T05:27:51.597 回答
8
  1. 你可以试试 Octave,它是免费的并且与 MATLAB 非常兼容。

  2. 在这个片段的末尾(假设myCondition是真的),someVar将是一个长度为的向量myTotal(即一个大小为 1 by 的数组myTotal)。向量的每个元素将是一个具有三个字段member1member2的结构member3。向量的第一个元素将具有所有三个字段的值;其余的将仅具有member3, 并将空数组作为member1和的值member2。如果myCondition为 false,您将拥有一个包含两个字段member1member2.

希望有帮助!

于 2012-12-18T16:19:12.567 回答
8

试试这个网站: http:
//www.compileonline.com/execute_matlab_online.php
它有一个 Matlab 编译器以及许多其他语言,如 Perl、Python、Java、C 等。

于 2013-04-30T16:03:58.060 回答
1

我只想重申一个建议的选择:anycodex.com在之前的答案中,因为没有提到它是一个真正的在线 MATLAB 解释器,这真的很好。一开始我很怀疑,认为它只是另一个由 Octave 驱动的,但在使用ver命令后,它似乎表明它使用MATLAB Version: 7.14.0.739 (R2012a)了此处所见的已安装产品:

--------------------------------------------------------------------------------------------------
MATLAB Version: 7.14.0.739 (R2012a)
MATLAB License Number: 161052
Operating System: Linux 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013 i686
Java Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
--------------------------------------------------------------------------------------------------
MATLAB                                                Version 7.14       (R2012a)
Simulink                                              Version 7.9        (R2012a)
Aerospace Blockset                                    Version 3.9        (R2012a)
Aerospace Toolbox                                     Version 2.9        (R2012a)
Bioinformatics Toolbox                                Version 4.1        (R2012a)
Communications System Toolbox                         Version 5.2        (R2012a)
Computer Vision System Toolbox                        Version 5.0        (R2012a)
Control System Toolbox                                Version 9.3        (R2012a)
Curve Fitting Toolbox                                 Version 3.2.1      (R2012a)
DO Qualification Kit                                  Version 1.6        (R2012a)
DSP System Toolbox                                    Version 8.2        (R2012a)
Database Toolbox                                      Version 3.11       (R2012a)
Datafeed Toolbox                                      Version 4.3        (R2012a)
Econometrics Toolbox                                  Version 2.1        (R2012a)
Embedded Coder                                        Version 6.2        (R2012a)
Filter Design HDL Coder                               Version 2.9.1      (R2012a)
Financial Derivatives Toolbox                         Version 5.9        (R2012a)
Financial Toolbox                                     Version 4.2        (R2012a)
Fixed-Income Toolbox                                  Version 2.3        (R2012a)
Fixed-Point Toolbox                                   Version 3.5        (R2012a)
Fuzzy Logic Toolbox                                   Version 2.2.15     (R2012a)
Global Optimization Toolbox                           Version 3.2.1      (R2012a)
HDL Coder                                             Version 3.0        (R2012a)
HDL Verifier                                          Version 4.0        (R2012a)
IEC Certification Kit                                 Version 2.1        (R2012a)
Image Acquisition Toolbox                             Version 4.3        (R2012a)
Image Processing Toolbox                              Version 8.0        (R2012a)
Instrument Control Toolbox                            Version 3.1        (R2012a)
MATLAB Builder JA                                     Version 2.2.4      (R2012a)
MATLAB Coder                                          Version 2.2        (R2012a)
MATLAB Compiler                                       Version 4.17       (R2012a)
MATLAB Distributed Computing Server                   Version 6.0        (R2012a)
MATLAB Report Generator                               Version 3.12       (R2012a)
Mapping Toolbox                                       Version 3.5        (R2012a)
Model Predictive Control Toolbox                      Version 4.1        (R2012a)
Neural Network Toolbox                                Version 7.0.3      (R2012a)
Optimization Toolbox                                  Version 6.2        (R2012a)
Parallel Computing Toolbox                            Version 6.0        (R2012a)
Partial Differential Equation Toolbox                 Version 1.0.20     (R2012a)
Phased Array System Toolbox                           Version 1.2        (R2012a)
RF Toolbox                                            Version 2.10       (R2012a)
Robust Control Toolbox                                Version 4.1        (R2012a)
Signal Processing Toolbox                             Version 6.17       (R2012a)
SimBiology                                            Version 4.1        (R2012a)
SimDriveline                                          Version 2.2        (R2012a)
SimElectronics                                        Version 2.1        (R2012a)
SimEvents                                             Version 4.1        (R2012a)
SimHydraulics                                         Version 1.10.1     (R2012a)
SimMechanics                                          Version 4.0        (R2012a)
SimPowerSystems                                       Version 5.6        (R2012a)
SimRF                                                 Version 3.2        (R2012a)
Simscape                                              Version 3.7        (R2012a)
Simulink 3D Animation                                 Version 6.1        (R2012a)
Simulink Code Inspector                               Version 1.1        (R2012a)
Simulink Coder                                        Version 8.2        (R2012a)
Simulink Control Design                               Version 3.5        (R2012a)
Simulink Design Optimization                          Version 2.1        (R2012a)
Simulink Design Verifier                              Version 2.2        (R2012a)
Simulink Fixed Point                                  Version 7.1        (R2012a)
Simulink Report Generator                             Version 3.12       (R2012a)
Simulink Verification and Validation                  Version 3.3        (R2012a)
Stateflow                                             Version 7.9        (R2012a)
Statistics Toolbox                                    Version 8.0        (R2012a)
Symbolic Math Toolbox                                 Version 5.8        (R2012a)
System Identification Toolbox                         Version 8.0        (R2012a)
SystemTest                                            Version 2.6.3      (R2012a)
Wavelet Toolbox                                       Version 4.9        (R2012a)

非常好的发现确实。干杯。

于 2014-03-22T08:25:19.977 回答