Confronto tra Octave, Spyder, Freemat e Scilab come alternative a MATLAB

19

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

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

Sto cercando di trovare quale sia la migliore alternativa a MATLAB. Sono particolarmente interessato alle prestazioni e all'integrità dei risultati.

    
posta user33831 23.06.2015 - 09:25

9 risposte

8

Bene, sei contento di aver usato tutti i linguaggi di programmazione / software che hai menzionato. FreeMat e Spyder Non ho troppa esperienza con ma ne ho alcuni. Gli altri in cui vivo.

GNU Octave di gran lunga rappresenta la concorrenza. La sua sintassi ha una compatibilità estrema con quella di MATLAB . Le uniche differenze, almeno ne sono a conoscenza, a parte lo strano toolbox, che puoi provare per sostituire con i pacchetti qui è che GNU Octave può definire le 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 ha anche un editor.

Scilab è un sostituto adeguato anche per MATLAB. Ha alcune differenze in termini di sintassi, ma nulla non si può avere la testa in giro se si cerca nella documentazione che viene fornito con esso.

FreeMat è il peggiore, almeno secondo me, del software la cui sintassi è fortemente basata su MATLAB. Le mie prove per questo sono tre: in primo luogo, nel centro del software riceve la valutazione a stelle più bassa dei quattro software in questione. In secondo luogo, non è frequentemente aggiornato, l'ultima versione nel centro software, è stato aggiornato l'ultima volta nel 2008. In terzo luogo, a seguito della mia seconda prova, le sue funzioni sono leggermente 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 compatibilità limitata con MATLAB, sintassi saggia. Richiede di imparare un po 'del linguaggio di programmazione Python, cioè se si intende fare bene.

Vorrei anche raccomandare SageMath poiché include GNU Octave, (se è già installato sul tuo sistema) Scilab, (se hai già installato) Numpy, [Numpy e il resto menzionati se non diversamente specificato venire con Sage e quindi nessuna installazione è necessaria] Scipy, Matplotlib, maxima, fortran tra molti altri. SageMath può essere scaricato andando sul sito web link e selezionando un mirror adatto, in base a dove ti trovi e poi installando il file .tar.lzma pertinente. Dopo questo 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 Sage è progettato (ad esempio 10.04_lts; 12.04_lts (è richiesto _lts in 'y'), ecc.); 'z' si riferisce all'architettura del tuo sistema operativo. (i386, amd64, ecc.)

    
risposta data Brenton Horne 19.10.2016 - 09:02
2

Tra tutti quelli che hai elencato, Octave è il più compatibile con la sintassi. Infatti, a parte alcuni dei costosi toolbox Matlab, Octave dovrebbe eseguire il 98% (un numero che ho appena composto) del tuo codice. Uso Matlab al lavoro e Octave a casa.

Octave non eseguirà (in modo nativo) 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 postare il 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 ora sono incluse nel disco di installazione, e le prestazioni della versione Linux di Matlab sono migliori e spesso migliori su Linux se confrontate con di Windows.

Se vuoi prestazioni e non vuoi usare il software libero per guardare scipy. Ma la sintassi è meno compatibile. Dovrai riscrivere il tuo codice. Spyder è un'ideologia che usa pitone e scipy, lo scilab è un miscuglio di ottave e massimi e pochi altri. Non sono sicuro delle prestazioni di freemat, ma non penso che sia così sviluppato come Octave.

Buona fortuna.

Alcuni parametri di riferimento

velocità

link

link

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

    
risposta data Caustic 20.06.2012 - 07:49
1

Solo per chiarimenti: perché vuoi un'alternativa per Matlab? La risposta di prasadkumar013 suggerisce che non puoi usare Matlab su Ubuntu, ma puoi (almeno lo sto eseguendo su Ubuntu;)). C'è una documentazione di comunità sul link della pagina.

Nel caso tu voglia un'alternativa libera andare con l'ottava, la maggior parte del codice MATLAB funzionerà direttamente in ottava. Prova a lavorare nel terminale, però, la GUI qtoctave non era così user friendly a mio parere.

    
risposta data Gerhard Burger 18.06.2012 - 10:14
1

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

    
risposta data nagordon 16.09.2015 - 04:36
0

link

PDL ("Perl Data Language") fornisce al Perl standard la capacità di archiviare e manipolare in modo compatto i grandi array di dati N-dimensionali che sono il pane e il burro del calcolo scientifico.

    
risposta data gianni 18.06.2012 - 15:37
0

Hai già provato Sage ( www.sagemath.org )? È un contenitore per diversi software di matematica e può eseguire calcoli simbolici e numerici. Questi ultimi sono fatti usando numpy e scipy. Ha una community 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 confronti con Matlab).

    
risposta data Michele 18.08.2012 - 15:58
0

Questo è una bella carta.

Ha una breve spiegazione e vari test eseguiti.

BTW Non uso MATLAB o qualcosa del genere.

    
risposta data virpara 01.12.2016 - 14:10
-1

Non ho fatto un vero paragone, ma nella mia esperienza, puramente, una prospettiva di prestazione è meglio dell'ottava rispetto a MATLAB.

Dovresti notare che "è tutto relativo" le diverse toolbox hanno prestazioni diverse.

Se hai una RAM limitata sulla tua macchina direi che qualcosa funzionerebbe meglio di MATLAB.

    
risposta data Ali 17.11.2011 - 14:14
-2

Il mio college usa MATLAB sui loro PC Windows. Ma per usare MATLAB su Ubuntu mi sono rimasti due scelte

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

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

sudo apt-get install qtoctave

    
risposta data prasadkumar013 10.06.2012 - 15:12

Leggi altre domande sui tag