MATLAB Functions

Various MATLAB functions available for public use
  1. Before using...
  2. Mohr-Coulomb Failure Envelope Solver
  3. Boneplot: Bone Orientation Analysis
  4. Plot SAC Data for Analysis
  5. Bonus Functions

Before using...

These are functions that I have either written, composed or altered in MATLAB. Some use other functions or pieces of other functions that others have written. Proper credit should be given in the M-file itself if this is the case. I make no promises toward the usability, efficiency, or accuracy of any of the following functions. Many still have obsolete comments and code in them and will require modification to meet your specific needs. They are all free to use and alter as long as attribution is properly given in the altered function. If there are questions or comments please email me at the address found on the main page of this site.

Mohr-Coulomb Failure Envelope Solver

There are three functions available for the Mohr-Coulomb failure envelope solver. The first function coulomb_approx() solves for the failure envelope for only two stress samples (two Mohr circles) and can act as a standalone function. The second function coulomb_series() will solve for a series of stress samples and relies on the coulomb_approx_values() function.


Boneplot: Bone Orientation Analysis


The boneplot() function provides a method to analyze the in situ orientation of bones, bone fragments and other fossilized fragments. It accepts E-N and Z data (x,y,z) along with the path to an image preview of the specimen. After plotting all of the relative locations the function performs a 3-dimensional regression using the fit_3d_data() function which I did not write. The regression works by minimizing orthogonal distances to either a plane or a line. The two methods differ slightly and will give minimally different answers for large datasets. I recommend running both and taking an average.

Plot SAC Data for Analysis


Bonus Functions

Below are other functions that either complement those above or are deemed not important enough to receive their own section. Some I did not write and are referenced since they are used by the functions above.