MATLAB learning resources for software engineers
I'm starting grad school in neuroscience/biomedical engineering soon, and one of my most dreaded parts of it is inevitably having to develop Matlab code. I understand why people use it -- it's...
I'm starting grad school in neuroscience/biomedical engineering soon, and one of my most dreaded parts of it is inevitably having to develop Matlab code. I understand why people use it -- it's arguably best in class at a lot of engineering tasks, and the matrix-first approach of the language makes it very fast to prototype things if you think like a mathematician/engineer.
However, the language also seems to actively discourage good software practices, and many frequently used scientific projects have atrocious code. Think python dependency management is bad? How about NO DEPENDENCY MANAGEMENT? Yes, that's right, the way you share code in matlab is by importing collections of loose files from github/matlab file exchange. The Matlab neuroimaging code that I have worked has also frequently abused the workspace to share state implicitly between scripts, which makes the code virtually incomprehensible. Instead of using packages to create namespaces, common practice is give function names a prefix and import them into the global namespace.
I know there's multiple large companies that rely on Matlab for their products, so it must be doable; I just haven't seen it for myself yet.
Do you guys have any experience developing in Matlab, and if so, are there any good resources to learn how to build robust software in it? What are some open source projects that have good Matlab code?