Questão:
Alternativas gratuitas para Matlab que rodam em Linux?
e-sushi
2014-02-05 07:29:03 UTC
view on stackexchange narkive permalink

Recentemente, juntei-me ao pessoal que usa Linux. Como resultado, estou tentando substituir o máximo de aplicativos de propriedade que posso, por alternativas gratuitas - e se possível de código aberto -.

Visto que preciso de uma ferramenta decente para meus experimentos matemáticos e Eu costumava usar o MATLAB R2013b na minha antiga instalação do Windows, estou ansioso para aprender sobre alternativas gratuitas - de preferência de código aberto - ao Matlab que rodam no Linux (Ubuntu).

Existem alternativas gratuitas para Matlab que roda em Linux? O que é mais importante para mim, é que a alternativa ao Matlab deve ser adequada quando se trata de compatibilidade de sintaxe ... para que a maioria dos programas possam ser facilmente portados (ou - se possível - importados). Além disso, tenho quase certeza de que nenhuma alternativa terá o conjunto completo de funcionalidades que o Matlab oferece, então também seria importante para mim saber quais diferenças de funcionalidade devo esperar ao usar a (s) alternativa (s) que você sugere. Significado: há algo que as alternativas gratuitas podem fazer o MATLAB R2013b não pode fazer e vice-versa?

Não há substituições de laboratório de matemática completas. Portanto, espere recursos ausentes e desempenho pior. E menos bibliotecas.
O Matlab tem muitos recursos. Quais recursos você usa? Você já experimentou o Scilab, que se esforça para ser uma alternativa gratuita ao Matlab?
Essa questão não deve ser reaberta, pois os requisitos ainda são vagos.
@e-sushi Se você está disposto a pagar pelo Matlab no Windows, por que não usá-lo também no Linux?
@Bernhard Para responder [sua pergunta] (http://softwarerecs.stackexchange.com/questions/194/free-alternatives-to-matlab-that-run-on-linux?noredirect=1#comment954_194), citarei o parte da minha pergunta que você parece ter perdido: * "... tentando substituir o máximo de aplicativos de propriedade que posso, por alternativas ** gratuitas - e se possível de código aberto - ** ..." * Acho que isso afirma claramente que não estou disposto a pagar por Matlab (mais).
@e-sushi Não faz sentido que existam aplicativos de código aberto que substituem os aplicativos de propriedade. Você deve incluir uma lista de especificações do que deseja.
@Bernhard: "o máximo possível" parece um requisito muito claro. Existem realmente tantas alternativas de Matlab para Linux que cobrem a maioria de seus recursos, que é difícil escolher um ou dois com compatibilidade mais próxima? Você pode citar dez desses programas?
@SF. Você está tentando me convencer de que ele está usando todos os recursos? Não faz sentido. Ele pode estar fazendo apenas algumas transformações de dados e plotagem. Nesse caso, um conversor de código Matlab para Python pode ser uma resposta válida. O maior número possível não faz sentido se ele estiver usando apenas alguns deles.
@Bernhard Um pequeno e amigável aviso de nossa seção de ajuda: * "[Quando não devo comentar?] (Http://softwarerecs.stackexchange.com/help/privileges/comment)… ** Discussão secundária ** ou debate um ponto controverso; use [chat] (http://chat.stackexchange.com/) em vez disso;… "*
@e-sushi Você está escolhendo as partes erradas dos meus comentários. Estou pedindo explicitamente três vezes para esclarecer o que você está procurando exatamente: http://meta.softwarerecs.stackexchange.com/questions/1/is-it-okay-to-ask-for-alternatives
@Bernhard: Se você ainda não percebeu, esta pergunta já tem uma resposta aprovada. Algo que satisfez o questionador. Considerar que alguém, usando as orientações fornecidas, foi capaz de dar uma resposta satisfatória é uma prova factual de que a pergunta foi clara o suficiente e não requer maiores esclarecimentos. Você acredita que pode dar uma solução melhor do que Olli se o e-sushi responder às suas perguntas? A compatibilidade geral em todo o pacote é uma métrica válida de desejabilidade de um pacote como qualquer outro, independentemente do que você pensa.
@SF. Este site está em beta privado. O objetivo é formular uma boa pergunta de exemplo. Esta é uma pergunta ruim como tal. Que haja uma resposta aceita é completamente irrelevante.
@Bernhard: Esta é a sua opinião. Em minha opinião, esta questão é muito boa, e "mais semelhante ao dado" é uma diretriz perfeitamente clara e muito aceitável. Eu realmente não entendo seu ódio. (e se ele usa todos os recursos ou não, é discutível. Por exemplo, sou um escritor. Tenho tendência a fazer perguntas sobre coisas que nunca uso nem pretendo usar - os personagens de minhas histórias fazem. Se eu quisesse evitar problemas de marca registrada com meu livro e ainda tenho meu personagem usando um software real não abstrato semelhante ao Matlab, e rodando em Linux, eu faria a mesma pergunta.)
Cinco respostas:
#1
+19
Olli
2014-02-05 07:40:10 UTC
view on stackexchange narkive permalink

Não há um único substituto para o Matlab no Linux. Matlab é um pacote de software realmente enorme, incluindo um ecossistema de biblioteca bastante grande.

O Octave é uma alternativa gratuita para o Matlab. Estão faltando alguns recursos, mas todos os básicos estão lá. Usei os dois, mas é difícil fazer uma boa avaliação com base em meus próprios sentimentos. Esta página lista algumas pequenas diferenças, mas principalmente os casos em que o Octave é melhor que o Matlab. Provavelmente, o maior problema é que algumas funções agem de forma diferente, por exemplo, produto de booleanos e carregando arquivos vazios. Isso é importante, pois torna a portabilidade de seus próprios scripts mais difícil, pois coisas inesperadas acontecem.

Minha opinião é que

  • Matlab é muito mais maduro do que Octave (não deveria ser uma surpresa)
  • Matlab é mais rápido (eu não não temos dados empíricos sobre isso, é apenas uma sensação)
  • A IU do Matlab é notavelmente melhor
  • O suporte à biblioteca e o código de exemplo disponível na web para Matlab são de qualidade superior do que para Octave.

Dito isso, o Octave é gratuito e o Matlab custa muito mais do que o consumidor médio pode pagar.


Sagemath é outra alternativa, mas está mais próxima do Mathematica em funcionalidade.

Para mais soluções faça-você-mesmo, dê uma olhada em R, Scilab e Python. Você não ficará integrado com um pacote completo e a curva de aprendizado é bastante íngreme.

-1: Acredito que as diretrizes para RS são "um produto por resposta". Caso contrário, os votos não refletem a crença em produtos individuais, que é o ponto real aqui. Vou aplicar um voto de +1 a uma resposta do Octave pura, mas não tenho opinião sobre o SageMath.
@IraBaxter Você pode me indicar esta diretriz?
@IraBaxter Isso está sendo discutido, mas não há consenso ainda.
@TimPost Obrigado pelo aviso.
#2
+16
Lyndon White
2014-02-06 20:42:13 UTC
view on stackexchange narkive permalink

Octave

como disse Olli, Ocatave é uma alternativa ao matlab:

Características notáveis ​​(compartilhadas com o matlab):

  • Sintaxe quase idêntica. ele consumirá quase todos os arquivos m sem alterações. o mfile também é seu formato padrão. A sintaxe é tão idêntica que o curso de matlab da minha universidade usa oitava no autograder, embora a unidade seja ensinada inteiramente em matlab e só mencione a oitava uma vez de passagem.

  • Integração da biblioteca BLAS de alta qualidade (normalmente acredito que é integrada ao OpenBlas, mas isso pode depender do seu sistema, pode ser o Atlas). Por causa do BLAS, como o matlab, é muito mais eficiente usar técnicas de vetor (ao invés de loops) - então um bom código matlab ainda é um bom código de oitava .

  • Multithreading automático para desempenho: se você escrever algum código complexo em oitava ou matlab e abrir uma ferramenta para ver a carga da CPU, ela carregará todos os seus núcleos. Esta fragmentação significa que as coisas devem ser executadas mais rapidamente.
  • Gráficos 3D com interação do mouse: se você criar um gráfico 3D, a janela que se abre suporta a interação do mouse para aplicar zoom, panorâmica e girar.

Existem também alguns recursos adicionados , mas nunca os achei dignos de nota o suficiente para lembrá-los.

Recursos notáveis ​​ausentes:

  • Bibliotecas : não há simulink e várias outras bibliotecas, como a Caixa de ferramentas de processamento de sinal, não existem. Mas existem algumas alternativas, como o pacote signal
  • GUI Workspace : o ambiente de trabalho da oitava é um shell de linha de comando. É funcional e usa algo como GNU readline. Quando você plota um gráfico que abre em uma nova janela com gráficos completos. (do gráfico). Mas não existe um editor de plotagem, nenhum exportador de arquivos lateral, nenhum explorador de variáveis ​​etc. Apenas um shell.
Correção: Recentemente instalei o edifício Octave 4.2.1 a partir da fonte. Se você tiver as dependências adequadas, o Octave vem com uma GUI limpa. ** Portanto, Octave não é apenas um programa de shell. **
#3
+9
Ranveer
2014-02-05 17:07:32 UTC
view on stackexchange narkive permalink

Eu recomendaria o Scilab, pois o usei e descobri que é uma alternativa decente de código aberto para o MATLAB. Não tem a robustez e polimento de um pacote profissional, mas como é baseado na linguagem MATLAB, o que você aprenderá pode ser transferido mais tarde se suas necessidades mudarem ou se você estiver trabalhando em um ambiente onde MATLAB é o default.

Citando Richie Cotton em Stack Overflow:

Scilab é para MATLAB como OpenOffice está para MS Office . Ou seja, não é exatamente um clone e não é tão polido. Você obtém a maior parte das funcionalidades do MATLAB e o preço é muito mais agradável.

[+1] Algo que você pode adicionar sobre compatibilidade de sintaxe para Matlab (para saber se é fácil portar coisas existentes para o Scilab)?
O Scilab possui um tradutor de arquivos m embutido, que torna mais fácil portar seu código para o MATLAB. Além disso, é multiplataforma, ou seja, funciona com Windows / Linux / MacOS. Bem, como eu só usei o SCILAB, não vou conseguir dizer suas vantagens / desvantagens em relação aos outros, mas sim, achei muito bom.
Observe também que o Scilab já existe há algum tempo e é patrocinado pelo governo francês.
#4
+7
Szabolcs
2014-07-01 22:41:32 UTC
view on stackexchange narkive permalink

Dê uma olhada em Julia : http://julialang.org/

Julia foi projetada para trabalho científico numérico, incluindo trabalho interativo. Tem uma interface de notebook de boa qualidade disponível como Mathematica e Sage. Tem o melhor desempenho da classe, verifique os benchmarks na primeira página. Ele pode chamar Python, o que abre muitas bibliotecas úteis para ele.

Julia foi projetada especificamente para tornar a transição fácil para usuários do MATLAB. A sintaxe básica é semelhante. No entanto, sua linguagem de programação é mais moderna e avançada do que a do MATLAB (por exemplo, suporta metaprogramação).

Julia é um sistema relativamente novo, então não é tão completo quanto os outros (R , Octave), mas tem uma comunidade em crescimento e é muito promissor.

(como você disse) Uma característica notável de Julia que é particularmente boa em comparação com, digamos, numpy, é que a sintaxe para operações numéricas é quase idêntica à do Matlabs. Na medida em que, ao portar algoritmos numéricos, copiar e colar, em seguida, corrigir as exceções é viável.
#5
+5
Nathaniel M. Beaver
2015-10-14 22:38:11 UTC
view on stackexchange narkive permalink

Se você não precisa de compatibilidade exata com Matlab, Freemat é uma opção.

enter image description here

http: // freemat.sourceforge.net/

Pode ser bem rápido, já que usa LLVM como um compilador JIT.

http: // freemat-blog. blogspot.com/2008/02/why-jit-how-to-jit.html

O Freemat tem uma GUI integrada há mais tempo que o Octave, embora a GUI do Octave esteja melhorando.

A principal desvantagem é que ele não é tão ativamente desenvolvido quanto o Octave; o último lançamento foi em 2013.

https://www.openhub.net/p/_compare?project_0=FreeMat&project_1=GNU+Octave

Usei o Freemat em 2010 em uma empresa iniciante, atendeu às nossas necessidades.


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...