Может ли кто-нибудь указать мне на онлайн/бесплатный компилятор/интерпретатор 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
или он сохраняет то, что я как-то установил?
Ответы
Ответ 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.
Ответ 2
Попробуйте этот сайт:
http://www.compileonline.com/execute_matlab_online.php
Он имеет компилятор Matlab, а также многие другие языки, такие как Perl, Python, Java, C и т.д.
Ответ 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)
Очень приятно найти действительно. Приветствия.