4 ms·
Paraphrasing the Greenspun's tenth rule of programming: "Any sufficiently complicated C or Fortran numerical program contains an ad hoc, informally-specified,
by ghsalazar 13y ago
Paraphrasing the Greenspun's tenth rule of programming:
"Any sufficiently complicated C or Fortran numerical program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of MATLAB/Octave/Scilab."
This could be called Gastón's corollary :-).
MATLAB, Octave and Scilab are like the UNIX shell but for matrices instead of text streams; this is they problem domain. If you can explain a problem with matrices and their operations, you can profit from MATLAB/Octave/Scilab. If you need more speed from your program, you should profile it and develop a mex-function in C or Fortran.
In academia and engineering most programs are developed to run at most thousands of times (<10,000), and this statement could be greatly exaggerated; the developing time must be reduced in order to work in other projects. The usual approach is brute force.
The greatest problem that I find with MATLAB is that doesn't allow multiprocessing. In my last project, I ended developing several interpreters in Bison/Flex/C that ran concurrently in order to control a robot, but the main program was developed in MATLAB because it was simpler that way.
- PeterisP 13y agoIn academia I'd say most programs are run (when finished) 2-3 times - once on a smallish testset when you decide that this version is correct, second time on the full data that you have to produce results for the paper (and you don't care how long it runs as long as it finishes before the submission date); and maybe a third time if you get a larger/better dataset somehow.
- ghsalazar 13y agoIt's sad, but you're right. In my field, I've found that there is little interest in experiment design when doing data analysis; you'd be asked to perform an analysis on eight or ten data sets, only because the people think that is exhaustive.