Free code I've written. Mostly Matlab. My "Best Of" examples are probably the camera and sonar control software. Recent and "well-written" is the LERA code. The Mandlebrot inspector was written in an enjoyable afternoon.
I'm not bad at shell scripting. Many visitors to this site are arriving via code or analysis search queries and landing on this page. Feel free to ask questions or leave comments below, or contact me directly.
Matlab
imagenex_matlab_v8 : control software for Imagenex imaging sonars
image_logging_v18 : control software for image acquisition
\LERA
receive : audio receive via unix util -> FIFO -> Matlab
transfer : evaluates sound card transfer function via output->input
mandelbrot : interactive inspector for the Mandlebrot fractal
\Aquadopp
aqdCellPositions : precisely where in physical space the sonar is measuring
aqdprfConvert : reads Aquadopp prf file format. Efficient parsing with Quality Control.
\CDIP
mem2 : maximum entropy method for directional wave spectra
readCDIPsp : reads CDIP buoy spectral data files
readCDIPxy : reads CDIP buoy spatial data files
\general
bytes : variable or workspace memory usage
catStruct : concatenate structures
collapseStruct : collapses array structure into scalar along constant dimensions
dataSlider : gui scrollbar for inspection of data. arbitrary callback
findFiles : unix "ls" with optional recursion for Matlab
free : unix "free" for Matlab. use with bytes.m
gaps : identify gaps in a non-regularly sampled set
gifMovie : {3,4}-D array to animated GIF
ioFile : reference for any batch i/o file operations. try-catch protected
l2cmap : 2-sided linear color map
normalize : normalizes data to a specified dynamic range. yes, compression
parseFields : parses fields of structure to variables in workspace
quiverColor : unique color for Matlab quiver plots
randstr : random string generator. using a-Z,0-9
regress2 : simple extension of matlab "regress" to N-dimensional arrays
rotationMatrix : 3-D rotation matrix for given angles
wrap : wraps angles to 2*pi. Inverse of matlab "unwrap", and better than matlab "wrapToPi" (which has redundant [-pi,pi]. Optional center angle
A note on Matlab and memory usage:
Hitting swap (virtual memory) with Matlab makes it defunct slow. AFAIK, the OS manages swap, so there is no guaranteed method to keep an application on physical memory. But this helps:
ulimit -v 2500000; matlab
Assuming I have a unix system with ~3 GB of free ram. This limits Matlab to a smaller virtual memory space. More likely to throw "out of memory" errors than hitting swap. Anyone know of a Windows equivalent to ulimit?
|