Costumo ouvir pessoas reclamarem do quão caras são as licenças do MATLAB . Então eu me pergunto por que eles não apenas usar Octave ou R . Mas o último está certo? Você pode usar R para substituir o MATLAB?
Costumo ouvir pessoas reclamarem do quão caras são as licenças do MATLAB . Então eu me pergunto por que eles não apenas usar Octave ou R . Mas o último está certo? Você pode usar R para substituir o MATLAB?
Respostas:
Você pode usar R para substituir o MATLAB?
Sim.
Eu usei o MATLAB por anos, mas mudei principalmente para o R nos últimos 3 anos. Neste ponto, eles têm muito mais em comum do que não. Depende parcialmente do seu campo e caso de uso. E como Spencer Graves disse anteriormente , também depende de qual "igreja você frequenta". É melhor se você olhar o kit de ferramentas MATLAB vs. CRAN para uma tarefa específica antes de decidir.
Uma pergunta semelhante foi feita no R-Help há alguns anos e mais recentemente . David Hiebeler (na Universidade do Maine) mantém uma extensa comparação R / MATLAB e é a melhor referência sobre o assunto. Você também pode revisar essa comparação de funções básicas .
Aqui estão algumas das coisas que eu observei no passado, nenhuma das quais deve ser uma quebra de negócio.
Portanto, se a facilidade de uso não é uma preocupação primária (e não há outro motivo comercial para evitar o uso de uma ferramenta de código-fonte aberto), acho que há um argumento real a ser feito para o uso do R. uma comunidade forte em torno dele (as listas de discussão do R são incríveis), está se desenvolvendo rapidamente (consulte CRAN) e é gratuita (o que não é um problema pequeno!).
Edit: Eu apenas acrescentaria mais um ponto a isso: o livro "Análise Funcional de Dados com R e MATLAB" inclui um capítulo sobre "Comparações Essenciais dos Idiomas Matlab e R". Isso cobre algumas diferenças importantes de sintaxe (como a interpretação de um ponto ou o significado de colchetes []). Vale a pena ler o livro em si para qualquer pessoa interessada em programação funcional (em qualquer idioma).
R é um ambiente para análise de dados estatísticos e gráficos. As origens do MATLAB estão na computação numérica. As implementações básicas de linguagem têm muitos recursos em comum se você os usar para manipulação de dados (por exemplo, operações de matriz / vetor).
R tem uma funcionalidade estatística difícil de encontrar em outros lugares (> 2000 Pacotes no CRAN ), e muitos estatísticos a usam. Por outro lado, o MATLAB possui muitas caixas de ferramentas (caras) para aplicações de engenharia como
Utilizei R e MATLAB para resolver problemas e construir modelos relacionados à Engenharia Ambiental e há muita sobreposição entre os dois sistemas. Na minha opinião, as vantagens do MATLAB estão em aplicativos específicos de domínio especializados. Alguns exemplos são:
Funções como racionalização que auxiliam nas investigações da dinâmica de fluidos.
Caixas de ferramentas, como o conjunto de ferramentas de processamento de imagem. Não encontrei um pacote R que ofereça uma implementação equivalente de ferramentas como o algoritmo de bacia hidrográfica.
Na minha opinião, o MATLAB oferece recursos gráficos interativos muito melhores. No entanto, acho que o R produz melhores gráficos de qualidade de impressão estática, dependendo do aplicativo. A caixa de ferramentas de matemática simbólica do MATLAB também é melhor integrada e mais capaz do que os equivalentes R, como Ryacas ou rSymPy. A existência do compilador MATLAB também permite que sistemas baseados no código MATLAB sejam implantados independentemente do ambiente MATLAB - embora sua disponibilidade dependa de quanto dinheiro você tem para gastar.
Outra coisa que devo observar é que o depurador do MATLAB é um dos melhores com os quais trabalhei.
A principal vantagem que vejo com R é a abertura do sistema e a facilidade com que ele pode ser estendido. Isso resultou em uma incrível diversidade de pacotes no CRAN. Sei que o Mathworks também mantém um repositório de caixas de ferramentas fornecidas por usuários e não posso fazer uma comparação justa, pois não a usei tanto.
A abertura do R também se estende à vinculação no código compilado. Há algum tempo, eu tinha um modelo escrito em Fortran e estava tentando decidir entre usar o R ou MATLAB como front-end para ajudar a preparar entrada e processar resultados. Passei uma hora lendo sobre a interface MEX para código compilado. Quando descobri que precisaria escrever e manter uma rotina separada do Fortran que fazia algum malabarismo intrincado com ponteiros para gerenciar a interface, arquivei o MATLAB.
A interface R consiste em chamar .Fortran ([nome da sub-rotina], [lista de argumentos]) e é simplesmente mais rápida e limpa.
Uma grande vantagem do MATLAB sobre o R é a qualidade da documentação do MATLAB. R, sendo de código aberto, sofre a esse respeito, um recurso comum a muitos projetos de código aberto.
R é, no entanto, um ambiente e linguagem muito útil. É amplamente utilizado na comunidade de bioinformática e possui muitos pacotes úteis nesse domínio.
Uma alternativa ao R é o Octave ( http://www.gnu.org/software/octave/ ), que é muito semelhante ao MATLAB, ele pode executar scripts MATLAB.
Na minha experiência, mudar do MATLAB para o Python é uma transição mais fácil - o Python com numpy / scipy está mais próximo do MATLAB em termos de estilo e recursos do que o R. Há também clones diretos de código aberto do MATLAB, Octave e Scilab .
Certamente, o MATLAB pode fazer o que o R não pode - na minha área, o MATLAB é muito usado para aquisição de dados em tempo real - a maioria das empresas de hardware inclui interfaces MATLAB. Embora isso seja possível com o RI, imagine que seria muito mais envolvido. Além disso, o Simulink fornece toda uma área de funcionalidade que acho que está faltando na R. Tenho certeza de que há mais, mas não estou tão familiarizada com a R.
Resposta curta: não, claro que não. Embora qualquer conjunto de pacotes de software matemático tenha sobreposições, eles sempre terão preconceitos em relação a determinados domínios problemáticos. Esses preconceitos estão fortemente relacionados ao fato de você querer ou não usar um desses pacotes.
Um exemplo do que o MATLAB pode fazer que o R não pode é a interface com o hardware em tempo real para processamento / aquisição e controle de sinal. Um modelo Simulink no MATLAB pode ser configurado para rodar em simulação na sua máquina antes de compilar o código para ser executado em um sistema real, tendo os dados medidos como entrada e calculando as saídas apropriadas (o que era antes da simulação de um sistema de controle agora está em pleno funcionamento 1). Com a placa de hardware apropriada em sua máquina, você pode executar sistemas de controle em tempo real através de um PC.
R, por outro lado, parece firmemente definido no papel da estatística, onde tenho certeza de que ela supera o que o MATLAB pode fazer. Da mesma forma, o Mathematica é melhor que o MATLAB em matemática simbólica; Python é melhor que MATLAB em programação geral; O gnuplot é melhor do que todos eles na criação de gráficos (er, eu assumo); e assim por diante.
Eu concordo com muitas das respostas dadas acima. Como a resposta é específica para a difusão dos recursos MATLAB e R, mencionarei uma muito importante: o MATLAB inclui uma JVM e possui interoperabilidade perfeita e robusta com Java. Todo o vasto universo de bibliotecas de Java é acessível ao usuário do MATLAB. O IDE MATLAB pode quase ser usado como o Eclipse de um homem pobre. Em comparação, o rJava é muito imaturo, apesar do esforço valioso de seu criador (Roman François).
Não podemos porque é esperado / exigido pelos nossos clientes.
Com o pacote sqldf, o R é capaz não apenas de estatísticas, mas também de mineração de dados séria - assumindo que há RAM suficiente na sua máquina.
E com o pacote RServe R, torna-se um servidor TCP / IP comum; para que você possa chamar R fora do java (ou qualquer outro idioma, se tiver a API). Há também um pacote no R para chamar java out ou R.
Como usuário do MATLAB e do R, acho que são aplicativos muito diferentes. Eu próprio tenho formação em ciência da computação, etc. e não posso deixar de pensar que R é de estatísticos para estatísticos, enquanto MATLAB é de programadores para programadores.
O R facilita a visualização e computação de todo tipo de material estatístico, mas eu não o usaria para implementar nada relacionado ao processamento de sinais, se dependesse de mim.
Para resumir, se você deseja fazer estatísticas, use R. Se você deseja programar, use MATLAB ou alguma linguagem de programação.
R
é uma linguagem de programação.
O suporte a gráficos interativos é muito melhor no matlab do que no R. Eu odeio o matlab como idioma, mas fico com ciúmes quando vejo como seus usuários podem explorar dados com operações do mouse, enquanto estou ocupado repetindo comandos com novos valores para xlim
etc. O Matlab também lida com gráficos de vários painéis muito melhor do que qualquer um dos métodos R da tarefa. Geralmente, os gráficos R têm uma sensação dos anos 1960. É bom para publicação, mas não é a melhor solução para exploração interativa de dados.