Comparação de Octave, Spyder, Freemat e Scilab como alternativas ao MATLAB


20

Estou tentando encontrar uma alternativa para o MATLAB e até agora encontrei:

  • Oitava GNU
  • Spyder
  • FreeMat
  • Scilab

Estou tentando descobrir qual é a melhor alternativa para o MATLAB. Estou particularmente preocupado com o desempenho e a integridade dos resultados.


11
Você também deve considerar R. Esta questão no StackOverflow provavelmente tem a melhor comparação.
Oli

IPython está faltando
zetah

Respostas:


10

Bem, você está em um deleite. Eu usei todas as linguagens de programação / software que você mencionou. FreeMat e Spyder com os quais não tenho muita experiência, mas tenho alguns. Os outros em que tenho experiência.

O GNU Octave de longe melhora a concorrência. Sua sintaxe tem uma compatibilidade extrema com a do MATLAB . As únicas diferenças, pelo menos, estou ciente, além da caixa de ferramentas ímpares, que você pode tentar substituir pelos pacotes aqui é que o GNU Octave pode definir funções na linha de comando.

Não sei se você conhece o QtOctave . O QtOctave é um front-end (GUI) para a linguagem de programação GNU Octave. O QtOctave também vem com um editor.

O Scilab também é um substituto adequado para o MATLAB. Ele tem algumas diferenças em termos de sintaxe, mas nada que você não consiga entender se pesquisar a documentação que o acompanha.

O FreeMat é o pior, na minha opinião, pelo menos, dos softwares com sintaxe fortemente baseados no MATLAB. Minha evidência disso é de três partes: em primeiro lugar, no centro de software, ele recebe a classificação por estrelas mais baixa dos quatro softwares em questão. Segundo, não é atualizada com freqüência, a versão mais recente do centro de software foi atualizada pela última vez em 2008. Terceiro, como resultado da minha segunda evidência, suas funções estão um pouco atrasadas. O lado positivo, no entanto, é que sua sintaxe é altamente compatível com os do MATLAB.

Eu usei o Spyder , mas apenas por pouco tempo estou com medo. Parece de alta qualidade. O problema é que ele tem compatibilidade limitada apenas com o MATLAB, em termos de sintaxe. Requer que você aprenda um pouco da linguagem de programação Python, ou seja, se você planeja se sair bem.

Eu também recomendaria o SageMath , pois inclui o GNU Octave, (se já estiver instalado no seu sistema) Scilab, (se você já o tiver instalado) Numpy, [Numpy e o resto mencionado, a menos que especificado de outra forma, vêm com o Sage e, portanto, nenhuma instalação é necessária ] Scipy, Matplotlib, maxima, fortran entre muitos outros. O SageMath pode ser baixado no site http://www.sagemath.org/download-linux.html e selecionando um espelho adequado, com base em onde você está e depois instalando o arquivo .tar.lzma relevante. Após esta cópia e cole os seguintes comandos no terminal (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

Onde 'x' se refere aos bits do seu sistema operacional; 'y' refere-se à versão do Ubuntu para a qual o sábio foi projetado (por exemplo, 10.04_lts; 12.04_lts (o _lts é necessário em 'y'), etc.); 'z' refere-se à arquitetura do seu sistema operacional. (i386, amd64 etc.)


2

De todos os que você listou, o Octave é o mais compatível com sintaxe. De fato, além de algumas das caixas de ferramentas caras do Matlab, o Octave deve executar 98% (um número que acabei de criar) do seu código. Uso o Matlab no trabalho e o Octave em casa.

O Octave não executará (nativamente) algumas das GUIs incorporadas, como inputdlg etc., se você instalar o Qtoctave (um IDE para Octave, sudo apt-get install qtoctave ), poderá usar xmlwidget e um wrapper para obter essa funcionalidade (eu posso você está interessado).

No que diz respeito ao desempenho, o Octave não é tão rápido (google para benchmarks). No entanto, você pode obter todas as versões modernas do Matlab em execução no Linux (se você tiver uma licença) e elas estão incluídas no disco de instalação por padrão agora, e o desempenho da versão Linux do Matlab é tão bom e geralmente melhor no Linux quando comparado ao Janelas.

Se você quer desempenho e não deseja usar o software livre da melhor maneira, você deve considerar o scipy. Mas a sintaxe é menos compatível. Você precisará reescrever seu código. O Spyder é um ide que usa python e scipy, o scilab é uma mistura de oitavas e máximas e algumas outras. Não tenho certeza sobre o desempenho do freemat, mas não acho que seja tão desenvolvido quanto o Octave.

Boa sorte.

Alguns benchmarks

Rapidez

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

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

Lembre-se de que os benchmarks são subjetivos. Existem muitas variáveis. A única maneira verdadeira de saber é testá-los todos em sua plataforma usando seu código de processamento.


Se alguém pesquisar no Google e encontrar bons parâmetros de referência para Octave vs. Matlab, talvez informações ou links mais detalhados possam ser editados nesta resposta.
Eliah Kagan

1

Apenas para esclarecimento: Por que você quer uma alternativa para o Matlab? A resposta de prasadkumar013 sugere que você não pode usar o Matlab no Ubuntu, mas você pode (pelo menos estou executando no Ubuntu;)). Há uma documentação da comunidade na página https://help.ubuntu.com/community/MATLAB .

Caso você queira uma alternativa gratuita com oitava, a maior parte do código do matlab funcionará diretamente na oitava. Tente trabalhar no terminal, porém, a GUI do qtoctave não era tão amigável na minha opinião.


1

Mais parecido com MATLAB = Octave , (link para gui)
Uma incrível e avançada linguagem de computação de alto nível = julia
Mas meu favorito e IMHO são mais úteis em toda a linguagem, PYTHON (scipy, sage, cython ...)


0

http://pdl.perl.org/

A PDL ("Perl Data Language") fornece ao Perl padrão a capacidade de armazenar e manipular de maneira compacta as grandes matrizes de dados N-dimensionais, que são a base da computação científica.


0

Você já experimentou o Sage ( www.sagemath.org )? É um contêiner para diferentes softwares de matemática e pode fazer cálculos simbólicos e numéricos. Os últimos são feitos usando numpy e scipy. Tem uma comunidade muito ativa e é um projeto de código aberto escrito em python.

Como você está interessado em performances, aqui estão alguns benchmarks (no final da página, também comparações com o Matlab).


0

Este é um bom papel.

Tem uma breve explicação e vários testes realizados.

BTW eu não uso MATLAB ou algo assim.


-1

Não fiz uma comparação real, mas, na minha experiência, puramente uma oitava de perspectiva de desempenho é melhor que o MATLAB.

Você deve observar que "tudo é relativo" caixas de ferramentas diferentes têm desempenhos diferentes.

Se você possui RAM limitada na sua máquina, eu diria que qualquer coisa funcionaria melhor que o MATLAB.


-2

Minha faculdade usa o MATLAB em seus PCs com Windows. Mas, para usar o MATLAB no Ubuntu, eu tinha duas opções

  1. Instale o MATLAB sobre o wine ou qualquer software de virtualização
  2. Encontre um equivalente Linux

Como a virtualização é muito pesada no meu laptop, procurei uma alternativa. Depois de muitos testes de software, finalmente decidi pelo OCTAVE. Ele pode executar a maioria dos códigos padrão do MATLAB. Em vez do GNU Octave, é melhor usar o qt Octave. Enquanto o primeiro é baseado em terminal, o posterior é baseado em GUI. Minha escolha é ir para qt Octave

sudo apt-get install qtoctave


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.