Octave: Mach es so viel MATLAB-kompatibel wie möglich

8

Ich muss ein paar Algorithmen in MATLAB (Hausaufgabe) implementieren, aber ich möchte stattdessen GNU Octave verwenden. Aber ich möchte alle octave -Erweiterungen deaktivieren und im Grunde in die FOSS-Version von MATLAB umwandeln. Welche Einstellungen sollte ich ändern? Welche Befehlszeilenoptionen sollte ich bei der Ausführung von octave program angeben?

PS: Mir ist die Befehlszeilenoption --traditional bekannt, obwohl sie nicht viel zu tun scheint.

PPS: Irgendwelche Vorschläge sind willkommen. Wenn Sie nach Ihrem Rat beispielsweise octave von der Quelle neu erstellen müssen, lassen Sie es zu.

    
Alexander Putilin 26.08.2012, 00:50
quelle

2 Antworten

7

Abgesehen von der Option --traditional gibt es nichts, was Sie tun können. Verwenden Sie einfach nicht die zusätzliche Syntax, die Octave bietet. Schließlich ist die Matlab-Syntax eine Teilmenge der GNU Octave-Sprache, und es liegt an Ihnen, nur diese Teilmenge zu verwenden.

BEARBEITEN: Es ist nicht die Antwort, die Sie möchten, aber es gibt einen guten Grund, warum das eine unmögliche Aufgabe ist (unmöglich, ich meine sehr schwer. Die einzige Option besteht darin, Octave einfach abzuzweigen und zu ändern bis es ein exakter Klon ist, und du willst es nicht tun, vertrau mir). Stellen Sie sich das folgende Beispiel vor. Octave hat die Funktionen 'Zeilen' und 'Spalten', Matlab jedoch nicht. Wenn Sie Octave geändert haben, so dass diese Funktionen nicht mehr existieren, funktionieren auch alle anderen Octave-Funktionen, die sie verwenden (ich vermute viel), nicht mehr.

Andere, bevor Sie ihre Professoren erfolgreich davon überzeugt haben, Hausaufgaben anzunehmen, die in Octave geschrieben wurden, stellen Sie sicher, dass Sie zumindest versuchen, kompatiblen Code zu schreiben.

EDIT 2: Ich werde versuchen, das zu erklären, indem ich diese Situation mit Klavieren vergleiche (scheint ein sehr guter Vergleich zu sein). Sie können ein Klavier mit 85 oder 88 Tasten kaufen. Stellen Sie sich jetzt vor, dass Matlab ein Piano mit 85 Tasten ist, während Octave ein Piano mit 88 Tasten ist (wenn Sie möchten, stellen Sie sich auch vor, dass Matlab 3 Pedale hat, während Octave nur 2 Pedale hat). Der einzige Unterschied zwischen den zwei Klavieren besteht darin, dass man einen etwas größeren Tonumfang hat, d. H. Es kann ein paar mehr Töne spielen (von den 3 zusätzlichen Tasten). Aber wenn Sie ein C4 auf einem Piano mit 85 Tasten und einem C4 auf einem Piano mit 88 Tasten spielen, ist der Sound der gleiche, sie sind die gleiche Note. Die Notizen sind die Funktionen und Schlüsselwörter, die Ihnen zur Verfügung stehen. Sie sind gleich. Eine Note in einem Klavier ist die gleiche Note auf der anderen.

Wenn Sie ein Komponist sind, der Musik schreibt, sollten Sie das berücksichtigen. Schreibe einfach kein Musikstück, das diese zusätzlichen Schlüssel benötigt. Die Musik wird in beiden Arten von Klavieren gleich sein. Wenn Sie ein Piano mit 88 Tasten haben, werden Sie die 3 zusätzlichen Tasten nicht abhacken, weil Sie wollen, dass es mit den Pianos mit 85 Tasten kompatibel ist. Du spielst diese Schlüssel einfach nicht. Ein Piano mit 88 Tasten ist mit einem Piano mit 85 Tasten kompatibel, genauso wie Octave mit Matlab kompatibel ist.

Wenn Sie möchten, dass ein Leitfaden Sie daran erinnert, dass Sie diese zusätzlichen Schlüssel nicht verwenden können, würde ich annehmen, dass Sie sie mit Bürokratie versehen könnten, um Sie daran zu erinnern, sie nicht zu benutzen. Verwenden Sie Octave ebenfalls mit einem Texteditor, der für Octave und Matlab eine andere Syntax-Hervorhebung aufweist, sodass es bei der Verwendung von Syntax, die nicht zu Matlab gehört, falsch hervorgehoben wird. Abgesehen davon gibt es nichts, was Sie tun können (es sei denn, Sie rechnen mit dem Octave-Projekt, fordern Mathworks auf, sie in Matlab zu implementieren oder sie selbst zu implementieren. Ich meine das nicht als unhöfliches Sarkasmus, sondern nur erschöpfend) >

Aus Gründen der Vollständigkeit hat ja Octave noch nicht alle Matlab-Sachen implementiert, aber es bewegt sich so, wie die Leute es entwickeln. Es ist kein statisches Projekt (werfen Sie einen Blick auf die NEWS -Datei für den Entwicklungszweig zum Beispiel) Dinge werden implementiert, wenn die Menschen sie brauchen, um sie zu entwickeln. Und einige Funktionen verhalten sich anders, aber das sind Fehler, die Sie berichten (und sogar seither reparieren können) alles ist kostenlos und Open Source). Solche Inkompatibilitäten gibt es nicht wegen nerviger Benutzer. Sie sind da, weil niemand sie gemeldet oder repariert hat. Plus die meisten von ihnen sind für falsch oder nicht dokumentierte Matlab-Funktionen.

EDIT 3: Sie können auch die inkompatiblen matlab-Warnungen aktivieren (die standardmäßig deaktiviert sind). Führen Sie warning ('on', 'Octave:matlab-incompatible') aus. Sie können dies in Ihrer .octaverc -Datei belassen. Weitere Warnungen finden Sie in warning_ids .

    
carandraug 26.08.2012, 01:13
quelle
2

Ich denke, es ist besser, eine GUI zu verwenden, die das für Sie tut. Ich persönlich verwende Xoctave aufgrund seiner Unterstützung und Matlab-ähnliche Schnittstelle.

    
Derek Maynhard 01.11.2012 16:04
quelle

Tags und Links