Quero aprender a programação do MATLAB para que eu possa realizar algumas pesquisas / análises por conta própria e também, para que eu possa estudar / modificar alguns scripts do MATLAB que encontrei on-line etc.
No entanto, o problema é que não posso pagar pelo MATLAB. O GNU Octave, pelo que ouvi, é bastante compatível com MATLAB. O desafio do Octave, porém, é que a documentação é muito esparsa.
Portanto, o MATLAB, por um lado, é proibitivamente caro (-ve), mas possui muitas boas documentações, tutoriais e scripts on-line (+), enquanto o Octave é gratuito (como na cerveja), embora (compreensivelmente) não possua documentação abrangente, etc. .
Estou pensando em baixar e instalar o Octave, mas usando a documentação (e scripts) do MATLAB para me ajudar a seguir em frente. Estou ciente de que existem algumas diferenças entre o Octave e o MATLAB - o que estou tentando descobrir é se as diferenças são grandes o suficiente para frustrar meus esforços para (efetivamente) "aprender o MATLAB usando o Octave".
Qualquer feedback construtivo é bem-vindo.
Respostas:
Isenção de responsabilidade: Às vezes fico irritado quando alguém tenta me dizer o que acha que devo fazer, em vez de responder à pergunta que fiz. Mas vou correr um risco e sugerir uma alternativa para você.
Eu sugeriria examinar os pacotes de computação científica do Python: numpy , matplotlib e scipy . Juntos, eles fornecem a maioria das principais funcionalidades do MATLAB (em alguns casos, eles fornecem mais do que o MATLAB). Eles são gratuitos e de código aberto, e atualmente podem ter uma base de usuários mais ampla que o Octave. Grande parte da infraestrutura de computação científica em Python é suportada pela Enthought Inc. , e eu recomendaria que você instale a distribuição gratuita do Enthought Python , que inclui todos os três pacotes mencionados acima e muito mais.
Obviamente, existem recursos do MATLAB (particularmente nas caixas de ferramentas, mas o Octave não os possui) que o Python não possui. Mas eu uso o Python em combinação com linguagens de nível inferior na maior parte do meu trabalho, e isso permite que eu programe em uma linguagem quase tão conveniente quanto o MATLAB, faça interface com uma série de pacotes úteis que o MATLAB não possui e execute o mesmo código de fácil leitura em um supercomputador.
Editar : você também pode tentar a distribuição Anaconda Python do Continuum Analytics. Existe uma versão gratuita que inclui todos os pacotes acima e muito mais.
fonte
O GNU Octave é "compatível principalmente com o Matlab", certas sutilezas significam que nem todos os scripts são portáveis do MATLAB para o Octave.
Vale a pena ler a documentação do idioma e / ou notas de compatibilidade nas Perguntas frequentes ou nos wikilivros . Também existem notas de portabilidade .
Existem pacotes semelhantes às caixas de ferramentas MATLAB, mas você precisará vê-los para descobrir como eles são semelhantes. Também há tentativas de scripts de conversão que resolvem as diferenças entre os dois idiomas, mas que eu saiba, nenhum é perfeito.
fonte
Sim, você pode aprender MATLAB via Octave. Mas a sintaxe do Octave é menos restritiva e mais alinhada com as linguagens de script modernas. O MATLAB parece atrasado nesse aspecto. Veja este link wiki MATLAB Programação / Diferenças entre Octave e MATLAB
Outra grande diferença para mim foi a disponibilidade de determinadas bibliotecas para o MATLAB, mas não para o Octave.
fonte
Para aprender geralmente a programação em linguagem M e como o MATLAB funciona, sim, o Octave está bem. Porém, se você precisar de uma caixa de ferramentas específica como parte do seu trabalho, e ninguém implementou uma versão gratuita dela, estará sem sorte.
Uma edição para estudantes do MATLAB não é tão cara. Se você estiver em uma universidade, é possível que eles tenham uma licença de site. Você deve examinar as duas possibilidades.
fonte
Eu usei Octave e MATLAB de forma intercambiável nos mesmos trechos de código no passado; Não tive problemas com a compatibilidade. As principais diferenças, tanto quanto eu posso dizer, são:
#
ou mais%
comentários, o Matlab usa apenas%
fonte
É realmente possível, especialmente se você usar uma GUI, como GUIOctave . Outro idioma que você pode achar útil porque muitos pacotes foram escritos para ele é o R. Há também uma GUI para o idioma R, chamada RStudio, e um documento de tradução entre o R e o MatLab .
fonte
Em relação à sua pergunta:
eu diria que sim. Simplesmente porque os paradigmas e princípios são os mesmos. As diferenças na sintaxe são desprezíveis e podem ser resumidas em uma folha de dicas (caso você esteja trabalhando principalmente com o MATLAB um dia).
Outra sugestão para uma alternativa:
Como alternativa ao MATLAB, estou usando o SciLab . É gratuito como Octave, tem uma comunidade decente fornecendo ajuda e suporte e sua documentação é muito boa. A documentação incorporada e a ajuda para funções são semelhantes à do MATLAB. (O que eu mais gosto é a capacidade de executar os exemplos com um clique). A sintaxe também é semelhante ao MATLAB.
Com relação às semelhanças e diferenças entre o SciLab e o MATLAB, este documento pode ser do seu interesse: Uma introdução ao Scilab do ponto de vista do usuário do Matlab, Eike Rietsch, maio de 2010 (PDF) .
Outra vantagem do SciLab sobre o MATLAB: a inicialização e a GUI são muito mais rápidas. Ainda não experimentei o Octave.
fonte
Exemplo prático:
Eu uso o MATLAB no trabalho e tirei o Stanford's aula gratuita de aprendizado de máquina on-line de no semestre passado.
Eu fiz todo o dever de casa na oitava.
Eu só notei duas diferenças (eu estava usando apenas a funcionalidade principal):
fonte
Existem algumas diferenças sutis na interpretação do Octave da linguagem de programação do MATLAB. O Octave usa "
endif
" e "endwhile
" para fecharif
ewhile
instruções respectivamente. Oitava também permite que você declare funções na linha de comando. No entanto, ele deve analisar tudo o que o MATLAB analisa também; portanto, se você se ater à linguagem de programação do MATLAB, deverá ficar bem.Esteja ciente de que as maiores diferenças entre os dois programas estão nas funções internas que fazem a maior parte do trabalho pesado numérico, por exemplo, "
quad
", "ode15s
" e outras. Todas essas funções, no entanto, devem ser bem documentadas ao usar ohelp
comando " ". Também existem listas de discussão para o Octave, caso você tenha perguntas mais específicas que não são cobertas pela ajuda online.fonte
Sim, você absolutamente pode, eu fiz. Grande parte da energia do MATLAB, no entanto, vem com algumas de suas caixas de ferramentas e componentes extremamente fáceis de usar, que podem ou não ter equivalentes no Octave.
Lembre-se também de que, embora os próprios idiomas base sejam compatíveis (exceto os recursos OO do MATLAB), o Octave possui algumas 'adições' à sintaxe, como poder usar "! =" Para o NEQ e também possui alguns comportamentos padrão alternativos, como a análise de funções embutidas. Essas são pequenas coisas que farão com que o código do Octave não seja executado no MATLAB logo de cara, a menos que você tenha cuidado para evitar confiar nesse comportamento.
O MATLAB também é um ambiente de computação completo, e não apenas uma linguagem que faz interface com rotinas de álgebra linear otimizadas. Portanto, o que você aprendeu com o Oitava só vai tão longe. Você será funcional no MATLAB se tiver proficiência no Octave, mas não será tão produtivo com o MATLAB quanto poderia.
fonte
A melhor linguagem livre com sintaxe semelhante ao MATLAB é a Julia. Também é mais rápido e possui um sistema de pacotes mais extenso (entre outras razões pelas quais é melhor ...), mas a sintaxe da álgebra linear é quase exatamente a mesma (muitos algoritmos que você pode traduzir para o MATLAB alterando
A[i]
para indexar paraA(i)
). Acredito que seja o melhor idioma para aprender agora, e você "conhecerá acidentalmente o MATLAB" apenas usando-o.fonte
Sim, você pode aprender Matlab usando o Octave. Claro que existem algumas limitações.
Oitava e Matlab compartilham grande parte de sua sintaxe. Os dois são intercambiáveis nesse sentido. A experiência no Matlab é mais rica e fácil de usar, principalmente ao trabalhar com gráficos, embora o Octave tenha uma nova interface gráfica de usuário (GUI) que está na versão beta. Os dois sistemas provavelmente convergirão ainda mais à medida que o ambiente gráfico do Octave for aprimorado.
Existem muitos cursos gratuitos no Coursera que oferecem uma licença temporária gratuita para estudantes do Matlab durante a duração do curso. Pesquise cursos de aprendizado de máquina.
fonte