2012-12-18 7 views
18

Przepraszam z góry za to pytanie. Nie lubię "wyjaśniać tego kodu", ale nie mogę znaleźć żadnej dokumentacji na temat mojego konkretnego przykładu.Czy ktoś może skierować mnie do internetowego/bezpłatnego kompilatora/interpretatora MATLAB-a lub wyjaśnić, co dzieje się w tym kodzie MATLAB?

Konto
Mój problem jest taki. Próbuję przetłumaczyć niektóre kod MATLAB na C#, ale jestem jednocześnie konieczności uczenia się MATLAB. Nie pracuję z nikim, kto zna kod MATLAB, nie mam dostępu do MATLAB, więc nie mogę przetestować żadnego kodu i nie mogę znaleźć żadnej dokumentacji na następujące pytanie. Więc ...

Pytanie (s)

  1. Czy istnieje wolna online/pulpit MATLAB kompilator/interpreter gdzieś, że można używać do testowania kodu MATLAB?

    ... albo ...

  2. Czy ktoś może wyjaśnić, że następujący fragment kodu:

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

    Czy to czyni someVar do tablicy? Czy mogę stracić member1 i member2, czy też może to, co ustawiłem?

+3

Możesz spróbować tego na: http://www.gnu.org/software/octave/ jego klona matlab i za darmo. Większość kodu Matlaba działa tutaj. – User1551892

+2

[This] (http://www.online-utility.org/math/math_calculator.jsp) i [this] (http://lavica.fesb.hr/octave/octave-on-line_en.php) są dwie "w porządku" online terminale Octave. Zauważ, że oba nie obsługują całej gamy wbudowanych poleceń MATLAB. –

+1

ten kod Matlab jest zły – Serg

Odpowiedz

16

Re: 1 - Jest doskonały Matlab Documentation, w tym samouczki wideo, które pomogą Ci zrozumieć Matlab. Jest to o wiele bardziej użyteczne niż kompilator, ponieważ nauczysz się, co kod zamierza, abyś mógł napisać go ponownie w sposób odpowiedni dla C#, zamiast próbować kopiować składnię zoptymalizowaną pod Matlab.

Jednak w celu przetestowania kodu Matlab istnieje Octave, który zapewnia większość funkcjonalności Core Matlab, ale może nie obsługiwać funkcji Toolbox (dodatkowe moduły Matlab, które płacisz za dodatkową opłatą).

Re: 2 - Oto co kod robi

instancji structure arraysomeVar (Matlab nie wymaga deklarowania zmiennych wcześniej) z polem member; przypisać go do myValue1

someVar.member1=myValue1; 

Utwórz dodatkowe pole member2, ustaw ją na myValue2

someVar.member2=myValue2; 

Jeśli warunek jest spełniony, pętla myTotal razy i ustaw pole member3 wszystkich i elementów someVar do myValue3. Tak więc, someVar przechodzi z macierzy strukturalnej 1-do-1 do macierzy strukturalnej 1-na-myTotal. someVar(1).member1 pozostaje myValue1, a someVar(i).member1 zostają zainicjowane jako puste ([]).

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

/bok: Ta pętla jest dość nieefektywnym sposobem definiowania struktury. W kodzie, który należy przetłumaczyć, może nie być wiele składni zoptymalizowanej przez Matlab.

+0

Zdecydowanie nieefektywny. Nie zabawny kod do tłumaczenia. Dzięki za link i wyjaśnienie. –

+2

@MikeWebb: Istnieją również [blogi Matlab] (http://blogs.mathworks.com/), w szczególności Loren, które mówią o ciekawych/ciekawych aspektach Matlaba. Poza tym jest nas tutaj, lub ludzie w Matlab Answers, którzy zawsze cieszą się, że pomagają ci zrozumieć kod (chyba że powoduje to krwawienie w oczach, nie podoba mi się, gdy moje oczy krwawią). – Jonas

7
  1. Można spróbować Octave, który jest wolny i dość kompatybilne z MATLAB.

  2. Na końcu tego fragmentu (zakładając myCondition prawda) someVar będzie wektor o długości myTotal (to tablica wielkości 1, myTotal). Każdy element wektora będzie strukturą z trzema polami: member1, member2 i member3. Pierwszy element wektora będzie miał wartości dla wszystkich trzech pól; pozostałe będą miały wartości tylko dla member3 i będą miały pustą tablicę jako wartości dla member1 i member2. Jeśli myCondition ma wartość false, będziesz mieć pojedynczą strukturę z dwoma polami member1 i member2.

Nadzieję, że pomaga!

+0

Dzięki za wyjaśnienie i sugestię dla Octave. Sprawdzę to. –

7

Pisałem wolny interfejs online MATLAB/Octave, który uruchamia skrypty, a także ma podpowiedzi na żywo, gdzie można wpisywać polecenia. Możesz także zapisywać swoje skrypty między sesjami. Sprawdź to pod adresem octave-online.net.

1

Po prostu chcę powtórzyć jeden z sugerowanych wariantów: anycodex.com w poprzedniej odpowiedzi, ponieważ nie wspomniano, że jest to prawdziwy internetowy interpreter MATLAB, co jest naprawdę miłe. Byłem podejrzliwy na początku, myśląc, że to był tylko kolejny jeden zasilany oktawie, ale po użyciu polecenia ver wydaje się, aby pokazać, że używa MATLAB Version: 7.14.0.739 (R2012a) jak widać tu z zainstalowanymi produktami:

-------------------------------------------------------------------------------------------------- 
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) 

Bardzo ładny znalezisku rzeczywiście. Twoje zdrowie.

+0

Link przekierowuje do strony pornograficznej. –

Powiązane problemy