Multiple Matlab licenses are usually expensive. Therefore to continue working or share files in different computers, I consider that open software could be a useful alternative, even in different platforms, (Windows, Linux macOS).
I have used Matlab and Octave in different operating systems (OS) and I must say that in my experience I prefer to use Octave in the GNU \ Linux OS because of its ease and simplicity. Matlab is great for very large projects, but in my case as I used it for small operations it is more feasible to use Octave since it complies with most of Matlab's features and functionalities.
Octave and Scilab are good options to replace Matlab for some mathematical problems with matrices operations and numerical analysis. However, pyhton language is the best replace for matlab even in statistic, numerical simulation and image processing. During my PhD studies I mixed the pyhton language with C++ code for CFD simulation as you can see in:
I agree with Victor. Unless you need simulink or something very Matlab specific, I'd always advise to give Python a try. Combined with a nice IDE (for example Spyder, for Windows have a look at the anaconda distribution) you get a Matlab-like experience, but a programming language also suitable for many more general problems.
Ummm ! Interesting your suggestions about using Python, Victor & Karel. I have heard about it. However, I recognise that learning a programming language from the scratch (in my case) takes time compared to learn software commands that already have implemented complex operations.
Learning a new language from scratch is indeed a time investment. However, I have to say the creators of the scientific packages have taken extra time to make the syntax almost Matlab-like. Scipy contains the 'complex operations', Numpy all the vector calculus, and matplotlib provides Matlab-like plot tools. Me and a few colleagues made the Matlab Python switch a while ago and haven't looked back.
Unfortunately I have little experience with Octave, so I can't advise you on that part.
Great answers above. Still I would like to share my opinion since I am working on all the three since last 2 years. Octave is similar to Matlab and hence I can call it almost identical. But Scilab is meant to perform similar function like Matlab and Octave does but the syntax and inbuilt functions are different. Still one can use few Matlab command in Scilab but it's irritating switching from Matlab to Scilab. In open source I would recommend Octave to be the best choice. Once working on octave, one need to install all the required packages to use the inbuilt functions.
Octave interprets most MATLAB commands, except for a few of the newest toolboxes (and even in those cases there is usually a workaround). Octave is slower than MATLAB, so that's an important factor if you do large-scale analyses. Scilab is a different beast all together, because the language is different.
Octave is cross-platform. It used to be better on linux, but with version 4, I think the windows version is now quite good. In general, my advice is to go for MATLAB if you have access to it, otherwise Octave.
And if you want to learn about MATLAB/Octave programming, then feel free to meander to my website, where I have lots of relevant educational resources (books, lectures, online courses, etc).
In my experience Octave does 99% of what Matlab does, except nice graphs and IDE; for graphs Linux always has GNUPlot; for a nice IDE, unfortunately there were two past projects for it that were both dropped, if I remember correctly (around 2014-2015)