Может ли кто-нибудь указать мне на онлайн/бесплатный компилятор/интерпретатор MATLAB или объяснить, что происходит в этом коде MATLAB?
заранее прошу прощения за этот вопрос. Мне не нравятся вопросы "объяснить этот код", но я не могу найти никакой документации о моем конкретном примере.
фон
Моя проблема вот в чем. Я пытаюсь перевести некоторый код MATLAB на C#, но в то же время мне нужно изучить 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
или он сохраняет то, что я установил почему?
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 и т. д.
вы можете попробовать Октаву, которая бесплатна и довольно совместима с MATLAB.
в конце этого фрагмента (если
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)
очень хорошая находка. Овации.