Confronto tra Octave, Spyder, Freemat e Scilab in alternativa a MATLAB


20

Sto cercando di trovare un'alternativa a MATLAB e finora ho trovato:

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

Sto cercando di trovare qual è la migliore alternativa a MATLAB. Sono particolarmente preoccupato per le prestazioni e l'integrità dei risultati.


1
Dovresti anche considerare R. Questa domanda su StackOverflow ha probabilmente il miglior confronto
Oli

Manca IPython
zetah

Risposte:


10

Bene, sei pronto per una sorpresa Ho usato tutti i linguaggi di programmazione / software che hai citato. FreeMat e Spyder non ho troppa esperienza ma ne ho alcuni. Gli altri in cui ho esperienza.

GNU Octave di gran lunga accarezza la concorrenza. La sua sintassi ha un'estrema compatibilità con quella di MATLAB . Le uniche differenze, almeno sono a conoscenza, a parte la strana cassetta degli attrezzi, che puoi provare a sostituire con i pacchetti qui è che GNU Octave può definire funzioni dalla riga di comando.

Non so se sei a conoscenza di QtOctave . QtOctave è un frontend (GUI) per il linguaggio di programmazione GNU Octave. QtOctave include anche un editor.

Scilab è un sostituto adeguato anche per MATLAB. Presenta alcune differenze in termini di sintassi, ma nulla è impossibile per te se cerchi la documentazione che ne deriva.

FreeMat è il peggiore, almeno secondo me, del software che la sintassi è fortemente basata su MATLAB. La mia prova per questo è di tre parti: in primo luogo, nel centro software riceve la valutazione in stelle più bassa dei quattro software in questione. In secondo luogo, non viene aggiornato di frequente, l'ultima versione del software center è stata aggiornata l'ultima volta nel 2008. In terzo luogo, a causa del mio secondo elemento di prova, le sue funzioni sono in qualche modo in ritardo. Il lato positivo, tuttavia, è che la sua sintassi è altamente compatibile con MATLAB.

Ho usato Spyder , ma solo brevemente ho paura. Sembra di alta qualità. Il problema è che ha solo una compatibilità limitata con MATLAB, per quanto riguarda la sintassi. Richiede di imparare alcuni dei linguaggi di programmazione di Python, vale a dire se hai intenzione di farlo bene.

Vorrei anche raccomandare SageMath in quanto include GNU Octave, (se è già installato sul tuo sistema) Scilab, (se lo hai già installato) Numpy, [Numpy e il resto menzionato se non diversamente specificato vengono forniti con Sage e quindi non è necessaria alcuna installazione ] Scipy, Matplotlib, maxima, fortran e molti altri. SageMath può essere scaricato accedendo al sito Web http://www.sagemath.org/download-linux.html e selezionando un mirror adatto, in base alla propria posizione, quindi installando il file .tar.lzma pertinente. Dopo questa copia e incolla i seguenti comandi nel terminale (ctrl + alt + T):

cd ~/Downloads
sudo mv sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma /home/username
cd ~
tar --lzma -xvf sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma
cd ~/sage-linux-xbit-ubuntu_y-z-Linux
make
sudo ln -s /home/username/sage-linux-xbit-ubuntu_y-z-Linux/sage /usr/local/bin/sage

Dove 'x' si riferisce ai bit del tuo sistema operativo; 'y' si riferisce alla versione di Ubuntu per cui è stato progettato il saggio (es. 10.04_lts; 12.04_lts (il _lts è richiesto in 'y'), ecc.); 'z' si riferisce all'architettura del tuo sistema operativo. (i386, amd64, ecc.)


2

Di tutti quelli che hai elencato Octave è la sintassi più compatibile. Infatti, a parte alcune delle costose cassette degli strumenti Matlab, Octave dovrebbe eseguire il 98% (un numero che ho appena inventato) del tuo codice. Uso Matlab al lavoro e Octave a casa.

Octave non eseguirà (nativamente) alcune delle GUI integrate come inputdlg ecc., Se installi Qtoctave (un IDE per Octave, sudo apt-get install qtoctave ) puoi usare xmlwidget e un wrapper per ottenere quella funzionalità (posso inserire codice se sei interessato).

Per quanto riguarda le prestazioni, Octave non è così veloce (google per i benchmark). Tuttavia, è possibile ottenere tutte le versioni moderne di Matlab in esecuzione su Linux (se si dispone di una licenza) e sono ora incluse sul disco di installazione per impostazione predefinita, e le prestazioni della versione Linux di Matlab sono altrettanto buone e spesso migliori su Linux rispetto a Finestre.

Se vuoi prestazioni e non vuoi usare il software libero meglio per guardare Scipy. Ma la sintassi è meno compatibile. Dovrai riscrivere il tuo codice. Spyder è un ide che usa pitone e scipy, scilab è un miscuglio di ottava e massimi e pochi altri. Non sono sicuro delle prestazioni di Freemat, ma non penso che sia sviluppato come Octave.

In bocca al lupo.

Alcuni parametri di riferimento

velocità

http://www.osc.edu/research/cse/projects/octave_python.pdf

http://www.wseas.us/e-library/conferences/2010/Corfu/COMPUTERS/COMPUTERS2-56.pdf

Ricorda che i benchmark sono soggettivi. Ci sono molte variabili L'unico vero modo per sapere è testarli tutti sul tuo rig usando il tuo codice di elaborazione.


Se qualcuno fa google e trova buoni benchmark per Octave vs. Matlab, forse informazioni più dettagliate o collegamenti potrebbero essere modificati in questa risposta.
Eliah Kagan,

1

Solo per chiarimenti: perché vuoi un'alternativa a Matlab? La risposta di prasadkumar013 suggerisce che non puoi usare Matlab su Ubuntu, ma puoi (almeno lo sto eseguendo su Ubuntu;)). C'è una documentazione della comunità nella pagina https://help.ubuntu.com/community/MATLAB .

Se desideri un'alternativa gratuita vai con ottava, la maggior parte del codice matlab funzionerà direttamente in ottava. Prova a lavorare nel terminale, tuttavia, la GUI di qtoctave non era così facile da usare secondo me.


1

Più simile a MATLAB = Octave , (link alla gui)
Un fantastico linguaggio di calcolo di alto livello emergente = julia
Ma il mio preferito e IMHO più utile in tutto il linguaggio, PYTHON (scipy, sage, cython ...)


0

http://pdl.perl.org/

PDL ("Perl Data Language") offre allo standard Perl la capacità di archiviare e manipolare rapidamente i grandi array di dati N-dimensionali che sono il pane e il burro dell'informatica scientifica.


0

Hai già provato Sage ( www.sagemath.org )? È un contenitore per diversi software matematici e può eseguire calcoli simbolici e numerici. Questi ultimi sono fatti usando intorpidimento e scipy. Ha una comunità molto attiva ed è un progetto open source scritto in Python.

Dato che sei interessato alle performance, qui ci sono alcuni benchmark (alla fine della pagina anche i confronti con Matlab).


0

Questa è una bella carta.

Ha una breve spiegazione e vari test eseguiti.

A proposito non uso MATLAB o niente del genere.


-1

Non ho fatto un vero confronto, ma nella mia esperienza la forma di un'ottava in prospettiva è migliore di MATLAB.

Si noti che "tutto è relativo" diverse cassette degli strumenti hanno prestazioni diverse.

Se hai una RAM limitata sulla tua macchina, direi che qualsiasi cosa funzionerebbe meglio di MATLAB.


-2

Il mio college utilizza MATLAB sui loro PC Windows. Ma per usare MATLAB su Ubuntu mi erano rimaste due possibilità

  1. Installa MATLAB su wine o qualsiasi software di virtualizzazione
  2. Trova un Linux equivalente

Poiché la virtualizzazione è molto pesante sul mio laptop, ho cercato un'alternativa. Dopo molte prove del software, ho finalmente optato per OCTAVE. Può eseguire la maggior parte dei codici MATLAB standard. Invece di GNU Octave, è meglio scegliere qt Octave. Mentre il primo è basato su terminale, il secondo è basato sulla GUI. La mia scelta è scegliere qt Octave

sudo apt-get install qtoctave


4
Una terza scelta sarebbe quella di installare la versione Linux di Matlab .
Eliah Kagan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.