4 ms·
I was surprised to learn, given the inelegance of much of Matlab, that it was explicitly influenced by APL. See the blue callout box at http://www.mathworks.c
by mturmon 15y ago
I was surprised to learn, given the inelegance of much of Matlab, that it was explicitly influenced by APL. See the blue callout box at
http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf http://www.mathworks.com/company/newsletters/news_notes/clev...
which shows part of a 1983 plan for Matlab:
"Combining the technology of 1) mice and windows, 2) matrix and APL environments, and 3) direct manipulation, will do for engineers what Lotus 1-2-3 has done for the business world."
Ulf Grenander, the Brown University mathematician who invented statistical pattern theory, once used APL, but moved to Matlab for his expository book on pattern theory:
http://books.google.com/books?id=lxBDcFvFFvsC&pg=PA146&lpg=PA146&dq=grenander+apl+matlab&source=bl&ots=xKNsRtuh7W&sig=SeiNk3jjJa3QR3ZGgyNwrPaulaM&hl=en&ei=KbSbToX9HtHRiAL59_zlDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBoQ6AEwAA#v=onepage&q=grenander%20apl%20matlab&f=false http://books.google.com/books?id=lxBDcFvFFvsC&pg=PA146&#...
I agree that the vectorized operations in Matlab are good at lifting computational ideas out of the fog of nested for loops. It is more compact to represent some matrix algebra in Matlab notation than in ordinary matrix notation, as anyone who has read Golub and van Loan knows.
It's weird to proclaim, but this concise notation can be as freeing for certain problems as Prolog's declarative transformations, and functional composition in Lisp.
- forkandwait 15y agoI think "the inelegance of Matlab" is MUCH overstated. It has some weirdnesses, some of which are fixed in Octave (it's gnu cousin). But some apparent bad choices (anything to do with cell arrays, especially) are really quite powerful when you get to know them. (If you ask me, R/SPLUS is the inelegant language, especially when doing serious matrix -- yuck! But it's trendy....) Matlab is a lot like SQL -- people love to hate on it because it isn't perfect and they know it really well (because it is ubiquitous and pragmatic).
- mturmon 15y agoIt has improved a lot. In the late 1990s it was decidedly behind the scripting languages of the time, and that's partly what I was referring to. And, the weird lack-of-speed issues. It used to be that you could implement a matrix multiply, in an m-file, that would be faster than the builtin *. I benchmarked this myself.