Подтвердить что ты не робот

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

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

Фон
Моя проблема в этом. Я пытаюсь перевести некоторый код MATLAB на С#, но я в то же время должен изучить 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 или он сохраняет то, что я как-то установил?

4b9b3361

Ответ 1

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

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

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

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

someVar.member1=myValue1;

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

someVar.member2=myValue2;

Если условие истинно, запустите цикл myTotal раз и установите поле member3 всех i элементов someVar на myValue3. Таким образом, someVar переходит из массива структуры 1 на 1 в массив структуры 1-by-myTotal. someVar(1).member1 остается myValue1, а someVar(i).member1 инициализируется пустым ([]).

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

/в сторону: этот цикл является довольно неэффективным способом определения структуры. Таким образом, в коде, который вам нужно перевести, может быть не так много синтаксиса, оптимизированного Matlab.

Ответ 3

  • Вы можете попробовать Octave, который является бесплатным и довольно совместимым с MATLAB.

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

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

Ответ 4

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

Ответ 5

Я просто хочу повторить один из предложенных вариантов: 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)

Очень приятно найти действительно. Приветствия.