MATLAB and Python are both rather popular languages. Real Python has an overview of the two with an eye towards encouraging use of Python. There is a lot to say when comparing languages, so this is a long read.
MATLABĀ® is widely known as a high-quality environment for any work that involves arrays, matrices, or linear algebra. Python is newer to this arena but is becoming increasingly popular for similar tasks. As you’ll see in this article, Python has all of the computational power of MATLAB for science tasks and makes it fast and easy to develop robust applications. However, there are some important differences when comparing MATLAB vs Python that you’ll need to learn about to effectively switch over.
In this article, you’ll learn how to:
- Evaluate the differences of using MATLAB vs Python
- Set up an environment for Python that duplicates the majority of MATLAB functions
- Convert scripts from MATLAB to Python
- Avoid common issues you might have when switching from MATLAB to Python
- Write code that looks and feels like Python
Earlier on SN:
Python's Guido van Rossum Steps Down (2018)
What's Today's Top Language? Python... no, Wait, Java... no, C (2017)
GNU Octave - Open Source Answer to Matlab - Hits 4.0.0 (2015)
You Want MatLab on Your Resume to Get a Job at Google (2014)
Why Python is Slow: Looking Under the Hood (2014)
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @07:34AM (8 children)
Make sure you migrate to Python 2.7 so you can re-write everything when it goes away [soylentnews.org].
And since the Python guys seem to want to obsolete stuff all the time, you'll probably get to re-write it again in a few years too.
Talk about self-serving drivel. Sigh.
(Score: 1, Funny) by Anonymous Coward on Thursday September 12 2019, @08:10AM (4 children)
Javascript. It will be around when COBOL and Perl have long died. Or at least when they are only running on a JS engine.
Python and Ruby have already died and are legacy.
(Score: 2, Insightful) by Anonymous Coward on Thursday September 12 2019, @01:47PM (3 children)
Realmen(tm) use Fortran.
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @03:13PM (1 child)
Realmen enter in their code by front panel switches
(Score: 2) by Thexalon on Thursday September 12 2019, @03:35PM
No, they use butterflies [xkcd.com]
The only thing that stops a bad guy with a compiler is a good guy with a compiler.
(Score: 2) by UncleSlacky on Thursday September 12 2019, @08:20PM
I can write Fortran in any language!
(Score: 1, Informative) by Anonymous Coward on Thursday September 12 2019, @12:53PM (1 child)
While Matlab has never "gone away", Mathworks do change things around and break older code by removing or changing functionality. Another annoying thing Mathworks does is take perfectly good functions out of the mainstream Matlab and move them into specialized toolboxes, clearly a money grab.
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @06:29PM
They also allow single precision and complex numbers, however 1/2 the functions barf if you use those types. Any they will not fix it - just template the underlying C++ for CHRISSAKES.
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @05:26PM
"All the time"
Python 3 was introduced in 2008, so you should have at least a good solid 12 years before it goes EOL after they release Python 4 (for which there aren't yet plans).
Are we going to be upset that they aren't still supporting Python 1 as well?
(Score: 2) by corey on Thursday September 12 2019, @07:48AM (8 children)
Just reading through it and it goes into using Anaconda and conda and then IDEs and all this other junk.
When I used to write in python, it was make a text file in whatever editor and then python blah.py
I guess now everyone and his dog are pythonistas, judging by all the ads on LinkedIn and online courses and blah blah.
(Score: 3, Interesting) by corey on Thursday September 12 2019, @08:00AM
Forgot to mention, despite my criticism above, the article is pretty good in achieving its aims.
(Score: 2) by Freeman on Thursday September 12 2019, @03:04PM (4 children)
You can still use notepad++ / notepad, then do python blah.py to run your program, but you're missing out on some very nice things. I went hunting for a decent IDE for Python a couple years ago and settled on PyCharm. It has a dark color theme, syntax highlighting, auto-indentation, code completion (auto-complete for code), and a few more bells and whistles. You get all that in the free community edition. You can also upgrade to the professional version for a few extra bells and whistles that are much more useful for large productions. As far as I remember, the professional edition, isn't obscenely expensive, either.
Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
(Score: 2) by Freeman on Thursday September 12 2019, @03:08PM (1 child)
Ahh.., I forgot to mention, projects. It's easy to be working on multiple projects, with multiple versions of python, and various packages when using something like PyCharm. It just makes your life easier, so you can get to coding, instead of managing your code / project.
Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
(Score: 2) by corey on Thursday September 12 2019, @10:54PM
Thanks, that sounds like a good reason to use an ide.
(Score: 2) by toddestan on Friday September 13 2019, @01:49AM (1 child)
PyCharm can be a bit overwhelming for new users. One of the things I see people who are trying to learn Python and jump into PyCharm struggle with is how PyCharm sets up all kinds of virtual environments behind the scenes with every project, and if you aren't used to Python's versioning headaches then you may not know what it is doing, or why.
The other issue I had with PyCharm is that it is written in Java and the performance is about what you would expect. Though today with 8 cores and 32 GB of ram, it may not matter.
If you are used to Matlab, Spyder is probably a better choice.
(Score: 2) by Freeman on Friday September 13 2019, @02:25PM
Spyder+Anaconda is definitely geared towards the same things as MATLAB. Yet, Python is much more popular and has better community support. Spyder's home page shows off their white theme, which leaves much to be desired. Also, you essentially need to use their Spyder+Anaconda package. I prefer sticking with plain-old Python with a decent IDE. Thus, why I settled on using PyCharm. I may have made a different decision, if I was using Python strictly as a Scientific tool.
Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
(Score: 2) by Thexalon on Thursday September 12 2019, @03:39PM (1 child)
Emacs is the closest thing to an IDE I've used in ages. Whether we're talking Python or other languages.
I understand why they use IDEs in articles like this though: A lot of programmers not only like them but also think that means their language is "modern", whatever that means.
The only thing that stops a bad guy with a compiler is a good guy with a compiler.
(Score: 2) by sgleysti on Thursday September 12 2019, @11:48PM
Good support for structured programming ;)
(Score: 1, Informative) by Anonymous Coward on Thursday September 12 2019, @10:53AM
Certain reductions in numpy discards singleton dimensions when they are needed further down the line. For example, batched inner products might be needed for calculating certain quantities to be matrix-multiplied further down the line, so you would use `sum' across some axis e.g. to get a column vector [n,1]. This can't be done unless you also pass keepdims=True to the reduction, or reshape. In octave, you'd get the correct dimension directly.
Painful lesson is never use shapes of type (n,) in numpy and always keep singleton dimensions unless you know explicitly that you will never need them.
(Score: 4, Insightful) by VLM on Thursday September 12 2019, @11:44AM (3 children)
My experience with Matlab / Octave / R is you can show a script to a non-CS person and they won't (immediately) vomit.
On the other hand, show them some Python and they'll WTF and yeet you right outta their office. Its like taking a DnD spellbook into an evangelical Christian's office, its just not gonna work no matter what you say.
Non-CS people LOVE their excel spreadsheets.
MAYBE taking all of the above into consideration, IF there exists an open source or SAAS implementation of a spreadsheet that also understands embedded python... Python can be encourages to talk to google sheets or read some SS file formats, but I'm talking about a direct embed into the spreadsheet itself. Likely some performance issues as some moron will try to prove the TSP in a cell or P=NP or something and the calc will hang or timeout, but a guy can dream, I guess.
(Score: 3, Informative) by sgleysti on Thursday September 12 2019, @01:53PM
Microsoft has your back. Enter HPC Services for Excel:
https://docs.microsoft.com/en-us/powershell/high-performance-computing/hpcpack-excel-vba?view=hpc16-ps [microsoft.com]
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @05:32PM
You mean something like this:
https://help.libreoffice.org/6.3/en-US/text/sbasic/python/main0000.html [libreoffice.org]
(Score: 2) by sgleysti on Thursday September 12 2019, @11:55PM
I wrote a monte carlo simulation for estimating the worst-case measurement error of an electronic circuit given a bunch of input parameters in C++ and showed it to a coworker who jokingly replied, "Why are you messing around with C++? Everyone knows math is done in spreadsheets."
I did a lot of MATLAB/Octave at my last job, but Octave was very slow for some routines, so I rewrote the critical bits as C++ modules against the Octave API. That worked pretty well. I used numpy to compute analytic derivatives for Jacobian matrices in various nonlinear solvers. It was super handy. At my present job, I used to use Octave for plotting, but it's pretty glitchy on Windows, so I learned enough python to use matplotlib, which can produce some beautiful graphs.
Anymore, if I need to write a numerical routine, my default is C++ with Eigen.
(Score: 5, Funny) by DeathMonkey on Thursday September 12 2019, @05:21PM
I've got some math for you!
expensive and proprietary
vs
free and Free
(Score: 5, Informative) by rylyeh on Thursday September 12 2019, @05:59PM (1 child)
Those wanting an excellent Python replacement for Matlab need look no further - http://www.sagemath.org/ [sagemath.org]
"a vast crenulate shell wherein rode the grey and awful form of primal Nodens, Lord of the Great Abyss."
(Score: 2) by Freeman on Friday September 13 2019, @02:33PM
The color scheme on that website hurts my eyes.
Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
(Score: -1, Spam) by Anonymous Coward on Thursday September 12 2019, @09:23PM (2 children)
APK annihilated that STUPID lying deluding itself it is a real woman (when it never can be) "TrAnSteSticLe" monstrosity aberration abomination of desolation https://soylentnews.org/comments.pl?noupdate=1&sid=33430&page=1&cid=889582#commentwrap [soylentnews.org] that made technical errors galore vs. him and lied saying apk started it when proof quoted proves otherwise!
(Score: 0) by Anonymous Coward on Thursday September 12 2019, @09:57PM (1 child)
Whoops! Looks like you posted this to the wrong site. I think you want that green site, not this one!
(Score: 2) by corey on Thursday September 12 2019, @10:59PM
He just posted exactly that to another article. Sounds like a cryptic field spook message back to headquarters as reported in another article a while back.
(Score: 1, Funny) by Anonymous Coward on Friday September 13 2019, @02:34AM
I have 2 python t-shirts.