You would use Octave instead of Matlab because it is free as opposed to $1000 for a basic license plus additional $$ for every time you sneeze and need a toolbox.
You would use Octave/ Matlab instead of Julia, R or Python because Matlab syntax is the cleanest and most succinct way currently to articulate complex (in both senses) matrix algorithms. It isn't nearly as good for general programming, but it is much better than anything else for its niche. While some of that is obviously just fuzzy opinion, I am pretty sure you need fewer characters or LOC to say the same thing in Matlab than in the other scientific languages mentioned.
Matlab (and thus Octave) also has a HUGE installed base of engineers who don't really care that HN thinks the language du jour is X, Y, or Z and continue to use Matlab to get their work done (and will for the next 20 years). If you are working with them, you use Matlab. If you are working with them and don't have $1000 for a license, you use Octave.
Octave also has some syntactical improvements like "+=" that are missing in Matlab.
> You would use Octave/ Matlab instead of Julia, R or Python because Matlab syntax is the cleanest and most succinct way currently to articulate complex (in both senses) matrix algorithms...I am pretty sure you need fewer characters or LOC to say the same thing in Matlab than in the other scientific languages mentioned.
Julia syntax is mostly Matlab syntax with the parens-for-array-indexing replaced with square brackets. Its main shortcoming WRT Matlab is that it's a new language and a lot of things still need to be implemented, but the built-in linalg support is pretty good.
Python is also not that bad with pylab, which eliminates most of the verbosity of calling numpy/scipy functions directly, although it might still end up being more LOC than Matlab in some cases. I have only minimal experience with R, so I can't comment there.
I have used Julia, R, and Numpy/Python, the latter two extensively (10,000s of lines, if you count all the scratch work). What turned me off from Julia is that it encourages looping instead of vectorization; looping is both more verbose and farther away from the way a mathematician would articulate a problem. R is ... well, really really ugly in that 1970s way that makes me want to choke whenever I read SAS. Pylab etc is nice, but (1) I have come to detest syntactical indentation, (2) I hate zero indexing almost as badly, and (3) it can be a bit brittle in its type hierarchy -- and it is still more verbose (slightly).
So, I am back to Old Faithful. Really, I hate all languages, I just find Octave the least annoying in the mathematical programming space. (I used to love all languages, now I am old and bitter ;) )
Don't get me wrong -- lots of great ideas in all of the above languages. If Julia were to make vector / matrix thinking natural, I would switch.