Может ли кто-нибудь указать мне на онлайн/бесплатный компилятор/интерпретатор MATLAB или объяснить, что происходит в этом коде MATLAB?

заранее прошу прощения за этот вопрос. Мне не нравятся вопросы "объяснить этот код", но я не могу найти никакой документации о моем конкретном примере.

фон
Моя проблема вот в чем. Я пытаюсь перевести некоторый код 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 в массив? Я проиграю member1 и member2 или он сохраняет то, что я установил почему?

5 ответов


Re: 1 - есть отличный Документация Matlab, включая видеоуроки, которые помогут вам понять Matlab. Это намного полезнее компилятора, так как вы узнаете, что предназначался код, чтобы вы могли переписать его таким образом, который подходит для C#, а не пытаться скопировать синтаксис, оптимизированный Matlab.

однако для тестирования кода Matlab есть Октавы который обеспечивает большую часть функциональности core Matlab, но может не поддерживать функции toolbox (дополнительные модули Matlab, за которые вы платите дополнительно).

Re: 2-Вот что делает код

создать экземпляр a структура блока someVar (Matlab не требует предварительного объявления переменных) с полем member; назначить myValue1

someVar.member1=myValue1;

создать дополнительное поле member2, установить myValue2

someVar.member2=myValue2;

если условие истинно, loop myTotal times, и установите поле member3 всех i элементов someVar to myValue3. Таким образом, someVar идет от 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.


попробуйте этот веб-сайт:
http://www.compileonline.com/execute_matlab_online.php
Он имеет компилятор Matlab, а также многие другие языки, такие как Perl, Python, Java, C и т. д.


  1. вы можете попробовать Октаву, которая бесплатна и довольно совместима с MATLAB.

  2. в конце этого фрагмента (если myCondition - Это правда), someVar будет вектором с длиной myTotal (т. е. массив размером 1 с myTotal). Каждый элемент вектора будет представлять собой структуру с тремя полями member1, member2 и member3. Первый элемент вектора будет иметь значения для всех трех полей; остальные будут иметь значения только для member3 и будет пустой массив в качестве значения member1 и member2. Если myCondition является false, у вас будет одна структура с двумя полями member1 и member2.

надеюсь, что это поможет!


Я написал бесплатный онлайн-интерфейс для MATLAB / Octave, который запускает скрипты, а также имеет живое приглашение, где вы можете вводить команды. Вы также можете сохранять сценарии между сеансами. Проверьте это на octave-online.net.


Я просто хочу повторить один из предложенных вариантов:anycodex.com в предыдущем ответе, потому что не упоминалось, что это фактический онлайн-интерпретатор MATLAB, что очень приятно. Сначала я был подозрителен, думая, что это просто еще один источник питания от октавы, но после использования 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)

очень хорошая находка. Овации.