[logo] bootstrap-software.org

psignifit -> download | publications | FAQ


The toolbox is in two parts:

  • Most important is the engine, which is a mex-file (a compiled binary plug-in to Matlab). This does all the serious number-crunching, fitting functions to a large number of simulated data sets. The engine works with Matlab versions 4 and up. On its own, the functionality of the engine is similar to that of the standalone application, except that its input/output interface uses Matlab matrices rather than text streams.
  • The rest of the toolbox consists of m-files (text files) which carry out many of the peripheral tasks involved in fitting psychophysical data, and provide a convenient input/output interface with the engine, including graphics functions.

The toolbox m-files and pre-compiled versions of the engine can be obtained on the download page. Release notes and version history can be found here.


Most of the m-files require Matlab version 5 and up (they were developed on versions 5.2, 5.3 and 6.1). They are text files written in the Matlab script language so they should, in theory, work on Matlab on any platform. The mex-file has to be compiled from the C source for your particular platform: pre-compiled versions for some platforms can be found on are already included in the download - otherwise, consult the instructions for compiling from the source code.

Matlab 5.1 users: many highly useful functions are lacking in Matlab 5.1, having only been introduced in version 5.2. I have programmed around these where I can, and released m-file patches in the few cases where this was too inconvenient. I have never tested the toolbox on Matlab version 5.0.


Download the toolbox archive and unpack it - this should give you a directory called . Ensure that this directory is listed on the Matlab path, so that Matlab can find it (typing pathtool at the Matlab command prompt gives you a dialog for adding directories to your path - click save in order to preserve the new setting for future sessions). When installing a new Matlab toolbox, it is a good idea to ensure that it is listed first on the path. This will ensure that, in the case of any name conflicts with other third-party toolboxes, the newly installed functions are called in preference to the old. (Later, if you discover a name conflict and wish to continue using both toolboxes, you will either have to start renaming functions, or add and remove one of the toolboxes from the path each time the need arises. There is no way for third-party developers to know whether they are conflicting with each other in this way, and unfortunately Matlab has no direct or easy way to resolve conflicts.)

Next, you need to ensure you have the mex-file: it is a binary file called psignifit.dll on Windows, psignifit.mexglx on Linux, psignifit.mexsol on SunOS, psignifit.mexmac on MacOS X, or just psignifit.mex on Matlab 5.x and earlier (e.g. on the old MacOS). If the mex file for your platform is not already included in the downloaded archive, either download a precompiled older version and unpack it, or compile the new version it from the C source code, which is included in the toolbox. The newly downloaded or compiled mex file also needs to go into one of the directories on the path (for example, the toolbox directory) so that Matlab can find it.


The engine on its own does not interface in a very convenient way with Matlab. The function pfit is designed to be a front-end to the engine, preparing the inputs and collecting and structuring the outputs. To get started, start Matlab and try the following:
	dat = readdata('example_data.txt')
Additional options may be specified on the command line, e.g.:
	pfit(dat, 'shape', 'weibull', 'n_intervals', 1, 'runs', 999, ...)

See the documentation psych_options.m for a list of available options, and refer to psych_glossary.m for definitions and explanations where necessary. The tutorial script psych_tool_demo.m begins to break down the operation of pfit, demonstrating the use of some of the toolbox functions.

Refer to psignifit/contents.m for a full list of available functions (type helpwin psignifit to browse the toolbox from within Matlab).