Saya ingin belajar pemrograman MATLAB sehingga saya dapat melakukan beberapa penelitian / analisis saya sendiri dan juga, sehingga saya dapat mempelajari / memodifikasi beberapa skrip MATLAB yang telah saya temukan online dll.
Namun, masalahnya adalah saya tidak mampu membeli MATLAB. GNU Octave, dari apa yang saya dengar, cukup cocok untuk MATLAB. Tantangan dengan Octave adalah dokumentasinya sangat jarang.
Jadi MATLAB di satu sisi, sangat mahal (-ve), tetapi memiliki banyak dokumentasi, tutorial, dan skrip yang bagus secara online (+), sedangkan Oktaf gratis (seperti bir), walaupun (dapat dimengerti) ia tidak memiliki dokumentasi yang komprehensif, dll. .
Saya berpikir untuk mengunduh dan menginstal Octave, tetapi menggunakan dokumentasi MATLAB (dan skrip) untuk membantu saya melanjutkan. Saya menyadari bahwa ada beberapa perbedaan antara Oktaf dan MATLAB - yang saya coba selesaikan adalah apakah perbedaannya cukup besar untuk menggagalkan upaya saya untuk (secara efektif) "mempelajari MATLAB dengan menggunakan Oktaf".
Setiap umpan balik konstruktif diterima.
Jawaban:
Penafian: Saya terkadang merasa kesal ketika seseorang mencoba memberi tahu saya apa yang menurut mereka harus saya lakukan daripada menjawab pertanyaan yang saya tanyakan. Tetapi saya akan mengambil risiko dan menyarankan alternatif bagi Anda.
Saya akan menyarankan melihat paket komputasi ilmiah Python: numpy , matplotlib , dan scipy . Bersama-sama, mereka memberikan Anda sebagian besar fungsi inti dari MATLAB (dalam beberapa kasus mereka memberi Anda lebih dari MATLAB). Mereka gratis dan open source, dan saat ini mungkin memiliki basis pengguna yang lebih luas daripada Octave. Sebagian besar infrastruktur komputasi ilmiah di Python didukung oleh Enthought Inc. , dan saya akan merekomendasikan agar Anda menginstal Distribusi Python Enthought gratis mereka , yang mencakup ketiga paket yang saya sebutkan dan banyak lagi.
Tentu saja, ada fitur MATLAB (terutama di kotak alat, tetapi Oktaf tidak memilikinya) yang tidak dimiliki Python. Tapi saya menggunakan Python dalam kombinasi dengan bahasa tingkat rendah untuk sebagian besar pekerjaan saya, dan itu memungkinkan saya untuk memprogram dalam bahasa yang hampir sama nyamannya dengan MATLAB, antarmuka dengan sejumlah paket berguna yang tidak dimiliki MATLAB, dan untuk menjalankan kode yang mudah dibaca sama pada superkomputer.
Sunting : Anda mungkin juga ingin mencoba distribusi Anaconda Python dari Continuum Analytics. Ada versi gratis yang mencakup semua paket di atas dan banyak lagi.
sumber
GNU Octave "sebagian besar kompatibel dengan Matlab", seluk-beluk tertentu berarti tidak semua skrip portabel dari MATLAB ke Oktaf.
Sebaiknya baca dokumentasi untuk bahasa dan / atau catatan kompatibilitas di FAQ atau di wikibooks . Ada juga porting note .
Paket yang mirip dengan kotak alat MATLAB ada, tetapi Anda harus memeriksanya untuk mengetahui seberapa miripnya. Juga ada upaya skrip konversi yang menangani perbedaan antara kedua bahasa, tetapi setahu saya tidak ada yang sempurna.
sumber
Ya, Anda dapat mempelajari MATLAB melalui Oktaf. Tetapi sintaksis Oktaf kurang membatasi dan lebih sejalan dengan bahasa skrip modern. MATLAB tampaknya ketinggalan dalam hal ini. Lihat tautan wiki ini Pemrograman MATLAB / Perbedaan antara Oktaf dan MATLAB
Perbedaan besar lainnya bagi saya adalah ketersediaan perpustakaan tertentu untuk MATLAB tetapi tidak untuk Oktaf.
sumber
Untuk mempelajari pemrograman bahasa-M secara umum dan cara kerja MATLAB, ya, Oktaf baik-baik saja. Jika Anda memerlukan kotak alat tertentu sebagai bagian dari pekerjaan Anda, dan tidak ada yang menerapkan versi gratisnya, maka Anda kurang beruntung.
MATLAB edisi siswa tidak terlalu mahal. Jika Anda berada di universitas, bahkan mungkin mereka memiliki lisensi situs. Anda harus melihat kedua kemungkinan tersebut.
sumber
Saya telah menggunakan Oktaf dan MATLAB secara bergantian pada potongan kode yang sama di masa lalu; Saya tidak punya masalah dengan kompatibilitas. Perbedaan utama sejauh yang saya tahu adalah:
#
atau%
untuk komentar, Matlab hanya menggunakan%
sumber
Memang mungkin, terutama jika Anda menggunakan GUI, seperti GUIOctave . Bahasa lain yang mungkin berguna bagi Anda karena banyak paket telah ditulis untuk itu adalah R. Ada juga GUI untuk bahasa R, yang disebut RStudio, dan dokumen terjemahan antara R dan MatLab .
sumber
Mengenai pertanyaan Anda:
Saya akan menjawab ya. Hanya karena paradigma dan prinsipnya sama. Perbedaan dalam sintaksis diabaikan dan dapat diringkas dalam lembar contekan (jika Anda bekerja terutama dengan MATLAB satu hari).
Saran lain untuk alternatif:
Sebagai alternatif MATLAB, saya menggunakan SciLab . Ini gratis karena Octave, memiliki komunitas yang layak memberikan bantuan dan dukungan dan dokumentasinya cukup bagus. Dokumentasi built-in dan bantuan untuk fungsi mirip dengan yang MATLAB. (Yang paling saya sukai adalah kemampuan untuk mengeksekusi contoh dengan satu klik). Sintaksnya juga mirip dengan MATLAB.
Mengenai persamaan dan perbedaan antara SciLab dan MATLAB, dokumen ini mungkin menarik bagi Anda: Pengantar Scilab dari Sudut Pandang Pengguna Matlab, Eike Rietsch, Mei 2010 (PDF) .
Kelebihan lainnya untuk SciLab daripada MATLAB: Start-up dan GUI jauh lebih cepat. Saya belum mencoba Oktaf.
sumber
Contoh praktis:
Saya menggunakan MATLAB di tempat kerja, dan saya mengambil kelas pembelajaran mesin online Stanford semester lalu.
Saya melakukan semua pekerjaan rumah di oktaf.
Saya hanya memperhatikan 2 perbedaan (saya hanya menggunakan fungsionalitas inti):
sumber
Ada beberapa perbedaan halus dalam interpretasi Octave tentang bahasa pemrograman MATLAB. Oktaf menggunakan "
endif
" dan "endwhile
" masing-masing untuk menutupif
danwhile
pernyataan. Oktaf juga memungkinkan Anda untuk mendeklarasikan fungsi pada baris perintah. Namun, ia harus mem-parsing apa pun yang juga di-parsing oleh MATLAB, jadi jika Anda tetap menggunakan bahasa pemrograman MATLAB, Anda harus baik-baik saja.Ketahuilah bahwa perbedaan terbesar antara kedua program ini adalah fungsi bawaan yang melakukan sebagian besar pengangkatan angka secara numerik, misalnya "
quad
", "ode15s
" dan semacamnya. Namun, semua fungsi ini harus didokumentasikan dengan baik ketika menggunakan perintah "help
". Ada juga milis untuk Oktaf jika Anda memiliki pertanyaan yang lebih spesifik yang tidak dicakup oleh bantuan online.sumber
Ya Anda benar-benar bisa, saya lakukan. Namun, sebagian besar daya MATLAB hadir dengan beberapa kotak alat dan bawaannya yang sangat mudah digunakan yang mungkin memiliki atau mungkin tidak memiliki padanan dalam Oktaf.
Perlu diketahui juga bahwa sementara bahasa dasar itu sendiri kompatibel (kecuali untuk fitur OO yang baru di MATLAB), Oktaf memiliki beberapa 'tambahan' pada sintaks, seperti dapat menggunakan "! =" Untuk NEQ, dan juga memiliki beberapa alternatif perilaku default seperti bagaimana mem-parsing fungsi sebaris. Ini adalah hal-hal kecil yang akan menyebabkan kode Oktaf tidak berjalan di MATLAB langsung, kecuali Anda sudah berhati-hati untuk tidak mengandalkan perilaku itu.
Juga MATLAB adalah lingkungan komputasi penuh, dan bukan hanya bahasa yang berinteraksi dengan rutinitas aljabar linier yang dioptimalkan. Jadi apa yang Anda pelajari dari Oktaf hanya akan sejauh ini. Anda akan berfungsi dalam MATLAB jika Anda mahir dengan Oktaf, tetapi Anda tidak akan seproduktif mungkin dengan MATLAB.
sumber
Bahasa gratis terbaik yang memiliki sintaks seperti MATLAB adalah Julia. Ini juga lebih cepat dan memiliki sistem paket yang lebih luas (di antara alasan lain mengapa itu lebih baik ...), tetapi sintaks aljabar linier hampir persis sama (banyak algoritma yang dapat Anda terjemahkan ke MATLAB dengan mengubah
A[i]
pengindeksan keA(i)
). Saya percaya ini adalah bahasa terbaik untuk dipelajari saat ini, dan Anda akan "secara tidak sengaja mengenal MATLAB" hanya dengan menggunakannya.sumber
Ya, Anda dapat mempelajari Matlab menggunakan Oktaf. Tentu ada beberapa batasan.
Oktaf dan Matlab membagikan banyak sintaks mereka. Keduanya bisa dipertukarkan dalam hal itu. Pengalaman di Matlab lebih kaya dan ramah pengguna, terutama ketika bekerja dengan grafis, meskipun Octave memiliki antarmuka pengguna grafis (GUI) baru yang dalam versi beta. Kedua sistem kemungkinan akan bertemu lebih lanjut karena lingkungan grafis untuk Oktaf meningkat.
Ada banyak kursus gratis di Coursera yang memberi Anda lisensi siswa Matlab sementara gratis selama kursus berlangsung. Cari kursus pembelajaran mesin.
sumber