Matlab, or: Where you need a license to move the mouse pointer.
Their biggest crime is not making it clear in online documentation if a function is part of a toolbox or not.
So many times I have wasted time on this. It's insane that there isn't even an error message saying that the function you are trying to call is in a toolbox you don't have. For me it has always been some weird message implying that I am using the function incorrectly, rather than trying to use one I'm not permitted to use.
Hmm, I do at least usually get an error message that mentions a toolbox. Still super fucking annoying though since I'll have spent time reading documentation by the time I call the function.
Isn’t it quite clear in the left bar which toolbox the function is from?
Actually I just checked and you're right. Fair enough. Still not clear/obvious. But now I know where to look at least.
MATLAB lost me at the point where they expect me to pay extra just to use another library. Just numpy and scipy cover like 95% of basically all matlab libraries. For free
Do people still use Matlab? And simulink?
University classes 😩
My university was using pirated version 😂
That’s pretty based haha
way back in the day we either had a university license if we needed big-boy matlab, or the coursework was such that it could be done in octave
Same. Professor even provided a gdrive link to download the specific version he was teaching with.
We get pendrive to copy ;)
Same, mine was using everything pirated, Matlab, Solidworks, Autocad, and many more lol
Literally first thing our matlab lab guy said was "I've got this magical thumb drive here with some of the goodies specially licensed, if you know what I mean, now be so kind to rotate this through the group and get it back to me at the end of class." Not hygienic? For sure. Based? AF.
It was two decades ago and I guess having enough of matlab bullshit is the constant.
Stuff I've done after uni was in either Pyton or Octave.
Is this satire?
Haha, yes it is, wrote it making fun of the opioid settlement a few years ago
I think last time i've seen it has indeed been in the college environment, but i did work with it in the real world at some point, intermittently.
jokes aside I think it's well suited for DSP/waveform analysis but I dont work in that field so idk rly
Last time i touched anything DSP was in college, i think. Or maybe not... What i do remember, everything neural networks related has been done on Matlab 20+ or so years ago, now - I don't think so.
Despite doing a lot of DSP I refuse to use it anyway because the licensing is so shit.
Still? That was a thing back in my day, didn't think they would still do it these days.
They do though.
Everyone in the automotive industry
It really depends on the field. I work in RF/comms engineering and it's absolutely inescapable, but most of the engineers I know outside of my field never have to touch it
Aerospace does
Yeah I work with implementing DSP algos on FPGAs and they have great tools for that
use octave
Yep unfortunatly, we do embedded development using simulink codegen at my work
Very big in aerospace
Yes and it's actually really awesome for a lot of engineering stuff. Although I'm hoping that Julia will eventually grow to challenge it
It's the dominating language in automation, like robotics and wind turbines. There's really no competitor when it comes to control implementation. Also the license cost is negligible compared to how much you save on implementation cost (engineering hours).
Do you think when you left school people just stopped doing university math? Some of those old goats bring up Fortran daily and you expect them to change their lesson plans for what reason exactly?
I get podcast ads about Matlab. It’s nostalgic.
Know of one place, mainly due to the vast existing code base in matlab
Simulink, now that's a trip down memory lane
Older engineers
It was an incredibly powerful tool back at the times. But it did cost a fortune, and to me it feels everyone has abandoned it and most of what it could do has been slowly ported over to Python libs, and is 100% free to use. I:d fully expect Matlab to kick the bucket, TBH.
Side note - you can pretty much call me an "old engineer", i've been using it before, but that was well over 20 years ago.
Still no good simulink replacement afaik. Base MATLAB isn't worth it but if you need one of the packages you don't have much of a choice.
I remember rewriting some Fourier or wavelet stuff in C#, because python took several minutes to process data.
Too bad that there's no good science infrastructure in C#, I had to do many things manually, and Python has a really great ecosystem of ready to use libraries.
Python I’ve noticed is getting a lot quicker than what it was +10 years ago when I first learned it. I started using it again in the last 3 years heavily and it’s very capable especially in this respect. But that’s just my opinion and I don’t care for Python all that much.
Python definitely gets better. But it will never be faster than c++.
Python actually uses C++, but only for available libraries and functions. If you make custom algorithms it is slow. C# for loop is tons faster, and C++ for loop is even more fast. But I use C# because it has nice/safer threading and is cross platform.
I completely agree C# libraries are much safer. Are you comfortable with C++, if so why not make your own Python wrapper? Im working on a project right now making light weight scripting interface for my company’s simulator that’s written in C#. I’ve noticed with C#’s DLLs they aren’t quiet the same as C/C++.
I personally prefer raw C over all as a language it’s stupidly simple. However, C/C++ need to come to the 21 century with some of the project management tools like C# and other modern languages bring to the table.
I like c# because it's dead simple, fast enough and it's very easy to use dlls using dllimport.
But I avoid c++ because of problems with windows libraries. Cmake and vcpkg just don't work. So every time I need c++ I use my MacBook Pro because g++ works well there.
My lab mates use Octave now
Octave is good for research - not good for development
Okay, I am genuinely curious what is the use case of matlab in actual software development?
I mean what can matlab do in development that a normal opensource high level language can't.
I mean it's easy to use. I can't think of an idea why will anyone choose matlab instead of anything else....
First, think of the typical user of Matlab as someone who only has superficial introduction to programming, but have to do a lot of mathematical programming. We're talking 10-30 engineers continually upgrading/expanding a codebase compiled to optimize loads/power on a machine.
The focus of Matlab programming is not on optimal code or just getting something to work - it is more investigative. Usually, you don't know the form of the solution until you have something that works. And getting there requires multiple iterations and tests, sometimes billions in order to optimize parameters. Or you might need a quick analysis of pole-zero points in the code you wrote. How many programming languages has a button to export the entire function as a linear set?
And then there's Simulink, which allows for large application programming visually. Usually we have multiple loops in the code. Simple example: PID controller. For school projects it's fairly straight-forward, and you don't need Simulink. But for industrial development you need all kinds of safeguards, careful management of resets, possible to insert noise at the right place. In c (or similar) this would be hundreds of codelines, but in Simulink you can have a simple overview on the screen.
Generally speaking, Matlab is the best there is for control development - but it's absolutely horrible for something like game development.
Everything you said is again for prototyping a very very niche field (which is again mostly research) which could be again done by something like Octave (at this point you might think I am arguing, I am not really trying to understand) except probably simulink.
This is not a niche field. It's robotics, wind turbines, segway, brewery automation - anything that requires control theory as the core part of operation. And sure Octave can do much of the same, but not everything, and it's worse at many other tasks. We actually have a group of programmers here which try to implement Octave development. I've been helping them convert some of our Matlab data-analysis functions into Octave, but it's missing a lot of functions. E.g. we have a pending task with implementing a bode plot function for discrete domain in Octave.
I just asked Chatgpt with your previous comment and I got it now. Was about to comment.
Basically anyone who needs a large number of number crunching but doesn't want to write system code.
Used mostly for simulating real life environment for control systems that are used in niche fields like robotics.
Used by engineers (not the software engineers) for simulating or prototyping design before actually building the design.
Stop using the damn robot to do your thinking for you
I use those damn robots as a search engine to understand things that I wasn't aware of them. Like the zeros and poles concept. I know what it is but wasn't aware that it is called the said terms.
It's not thinking for me it's explaining me things....
Why not SciLab though? The language is the same but at least it has a Simulink replacement.
All the downsides of MATLAB without any of the benefits
I had a professor and he wanted to know why didn't research papers use MATLAB for machine learning since it was so easy to do. I had to explain and demonstrate how far behind MATLAB was compared to PyTorch. At this point, MATLAB is like a toy compared to Python for science and engineering.
Depends on the kind of engineering, I work on DSP and it is still very heavily used. I try to use Python/numpy/scipy when possible, but there are not always great replacements available.
Octave
whats with the downvotes? (i dont know what octave is)
Can you test your code with a noisy sine wave input and check output in 30 s? Can you setup a template harness for serial testing of alarm handler files in a few minutes?
Ofc.
MatLab is not a bad language/environment, it's just highly application specific. Outside of some extremely niche engineering applications, python is generally the better and easier choice (and it's always cheaper). Between matplotlib and numpy, most of MatLab's more broadly useful features are available in Python.
Also, MatLab is taught in a lot of EE degrees so there are lots of very poorly written MatLab scripts floating around. I say this as a former EE who has transitioned to software and now ports very messy EE MatLab scripts to python for my company 🤣
I had to use Matlab for one of my university assignments, it was to do with image processing / recognition. I hated everything about it. To Matlab: Kindly and unequivocally, fuck off.
Completely agree. The only thing Matlab was good for - it cured my aversion of Python. Absolutely everything is better than Matlab. How can something be THIS bad and fucking expensive and still get used?
Don't know for scientific usage, but Simulink and the ability to autocode embedded software is hard to beat in the industry.
Although I would wish it would be.
We had to use it "for historical reasons" aka they bought the licence and didn't have the time to change it to something else yet. At least it was only for one course.
But you were so close to a bunch of free shit!
Have you tried developing in ABAP? You need to purchase a separate license for the Runtime, the Language Server and the IDE
Any programming language that starts with index 1 should be excised from this planet
Haven’t heard Julia in years. Do people actually use it?
I know one engineer personally, otherwise nah
There are plenty of projects that benefit from Julia. Gmsh (a C++ mesh generation tool) has three supported languages: C++, Python and Julia. People who say that Julia isn't used just don't know Julia that much. Go see the funding the language gets for yourself.
Well you can just write a custom container in pretty much any language, just like what that example does, so this isn't really Julia specific, is it?
That seems even worse.
It is, it's actively bad you now have zero confidence in any array that some jackass didn't give it a wild ass index
Matlab <<< Julia
Julia ftw!
Use gnu octave. Open source and near one-to-one compatibility with matlab.
Bask in the warm glow of Octave superiority.Â
If it's good enough for my numerical methods instructor and her bajillion dollar research, it's good enough for me.Â
I loved using it
Something even worse happened to the Matlab license? Am I missing something?
It only really works well with itself --Someone who translates a lot of Matlab code to C++
Matlab is actually super easy to use in python
Great, that will be super handy if I need to do any data analysis in Python. Oh, wait.
what am I missing
Data analysis is usually done in python
Exactly. Python already has a massive suite of data tools, so there's not much need for Matlab integration most of the time.
Ahh I see, I see
Yeah, that's kind of the point
Probably because some madlad made a C++ wrapper to make python easier to use
I tried that but did not succeed, do you have some pointers/resources for me?
Do not do it. Just use Python.
Totally agree, but I am currently migrating a workflow from Matlab to Python and wanted to make the transition easier for some colleagues (so they can use their old Matlab scripts and can rewrite them one by one)
Yea man, you are telling me, our company probably spent a few hundred thousand dollars rewriting our MATLAB scripts into proper Python software. It's working well, now, a decade later. And we still have some legacy servers sitting there for if we need to run MATLAB again.
Embedded coder too expensive as well? ðŸ˜
Why don't you generate c++ code?