web-dev-qa-db-fra.com

Quelqu'un peut-il me diriger vers un compilateur / interprète MATLAB en ligne / gratuit ou expliquer ce qui se passe dans ce code MATLAB?

Je m'excuse à l'avance pour cette question. Je n'aime pas les questions "expliquer ce code", mais je ne trouve aucune documentation sur mon exemple spécifique.

Contexte
Mon problème est le suivant. J'essaie de traduire du code MATLAB en C #, mais je dois en même temps apprendre MATLAB. Je ne travaille avec personne qui connaît le code MATLAB, je n'ai pas accès à MATLAB, donc je ne peux tester aucun code et je ne trouve aucune documentation sur la question suivante. Donc...

Des questions)

  1. Y a-t-il un compilateur/interprète MATLAB gratuit en ligne/de bureau quelque part que je peux utiliser pour tester le code MATLAB?

    ...ou...

  2. Y a-t-il quelqu'un qui peut expliquer l'extrait de code suivant:

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

    Est-ce que cela fait de someVar un tableau? Dois-je perdre member1 et member2 ou enregistre-t-il ce que j'ai défini d'une manière ou d'une autre?

18
Mike Webb

Re: 1 - Il y a l'excellent Documentation Matlab , y compris des didacticiels vidéo, qui vous aideront à comprendre Matlab. C'est beaucoup plus utile qu'un compilateur, car vous apprendrez ce que le code voulait, afin de pouvoir le réécrire d'une manière appropriée pour C #, plutôt que d'essayer de copier la syntaxe optimisée pour Matlab.

Cependant, pour tester le code Matlab, il y a Octave qui fournit la plupart des fonctionnalités du noyau Matlab, mais peut ne pas prendre en charge les fonctions de la boîte à outils (modules supplémentaires de Matlab que vous payez en supplément).

Re: 2 - Voici ce que fait le code

Instanciez un tableau de structuresomeVar (Matlab n'a pas besoin de déclarer de variables au préalable) avec un champ member; affectez-le à myValue1

someVar.member1=myValue1;

Créez un champ supplémentaire member2, Définissez-le sur myValue2

someVar.member2=myValue2;

Si la condition est vraie, bouclez myTotal fois et définissez le champ member3 De tous les éléments i de someVar sur myValue3. Ainsi, someVar passe d'un tableau de structure 1 par 1 à un tableau de structure 1 parmyTotal. someVar(1).member1 reste myValue1, tandis que someVar(i).member1 est initialisé à vide ([]).

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

/ apart: Cette boucle est un moyen plutôt inefficace de définir la structure. Il se peut donc qu'il n'y ait pas beaucoup de syntaxe optimisée pour Matlab dans le code que vous devez traduire.

17
Jonas

Essayez ce site Web:
http://www.compileonline.com/execute_matlab_online.php
Il a un compilateur Matlab ainsi que de nombreux autres langages tels que Perl, Python, Java, C, etc.

8
KC McLaughlin
  1. Vous pouvez essayer Octave, qui est gratuit et assez compatible avec MATLAB.

  2. À la fin de cet extrait (en supposant que myCondition est vrai), someVar sera un vecteur de longueur myTotal (c'est-à-dire un tableau de taille 1 par myTotal ). Chaque élément du vecteur sera une structure à trois champs member1, member2 et member3. Le premier élément du vecteur aura des valeurs pour les trois champs; les autres auront des valeurs uniquement pour member3, et aura le tableau vide comme valeurs pour member1 et member2. Si myCondition est faux, vous aurez une structure unique avec deux champs member1 et member2.

J'espère que cela pourra aider!

7
Sam Roberts

J'ai écrit une interface en ligne gratuite pour MATLAB/Octave qui exécute des scripts et a également une invite en direct où vous pouvez taper des commandes. Vous pouvez également enregistrer vos scripts entre les sessions. Découvrez-le sur octave-online.net .

7
sffc

Je veux juste réitérer l'un des choix suggérés: anycodex.com dans une réponse précédente, car il n'a pas été mentionné qu'il s'agit d'un véritable interprète MATLAB en ligne, ce qui est vraiment sympa. J'étais méfiant au début, pensant que c'était juste un autre alimenté par Octave, mais après avoir utilisé la commande ver, il semble montrer qu'il utilise MATLAB Version: 7.14.0.739 (R2012a) comme on le voit ici avec ses produits installés:

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

Très belle trouvaille en effet. À votre santé.

1
Yick Leung