PRTools
PRTools is the software package used in the book:
Classification, parameter estimation and state estimation,
an engineering approach using Matlab
by Ferdi van der Heijden, Robert P.W. Duin, Dick de Ridder and David M.J. Tax, John Wiley & Sons, 424 pages, ISBN 0470090138, 2004.The PRTools version used in the book is PRTools 4 (download). This version is, however, not fully compatible with later distributions of Matlab. It is better to use the most recent version of PRTools, which can be can be found here. In relation with that a new version of the datasets should be used.
Code and data
The listings in the book can be downloaded as a ZIP archive, by following this link:
- listings.zip (28 Kb)
The data used in these listings can be downloaded as three separate ZIP archives:
- data.zip or data_new.zip (102 Kb)
- license_plates.zip or license_plates_new.zip (3530 Kb)
- tofdata.zip or tofdata_new.zip (9583 Kb)
The latter two files are distributed separately due to their size. The license plates data is needed only to run Listing 6.3; the time-of-flight data only for Listing 9.8.
Installation of the listings and the accompanying data is simple. Unpack (using, for example, WinZIP) the archives in a single directory, for example C:CPESE
. Start up Matlab and type:
>> addpath('C:CPESE');
replacing C:CPESE
by the directory name you chose.
You can add this path permanently by editing your startup.m
script. On Windows, this is stored in a subdirectory work
of the directory you installed Matlab in. On Unix, it is usually stored in $HOME/matlab
.
Projects
Three different projects have been defined, covering most of the topics in the book.
-
A supervised classification problem. The distinction between rings, nuts and bolts.
- An extended explanation in PDF: proj_class1.pdf
- Data required in this exercise: proj_class1.zip
-
A clustering problem. The segmentation of images.
- An extended explanation in PDF: proj_class2.pdf
- Data required in this exercise: proj_class2.zip
-
A parameter estimation problem. The resistance of carbon film resistors.
- An extended explanation in PDF: proj_parm1.pdf
- Data required in this exercise: proj_parm1.zip
Errata
-
Page 23, Listing 2.2:
w2 = w1*classc*costm([],cost); % Take cost into account
should read:
w2 = w1*classc*costm([],cost'); % Take cost into account
-
Page 202, Listing 6.1:
title(['forward: ' num2str(+w{2})]);
should read:
title(['forward: ' num2str(+w)]);
title(['backward: ' num2str(+w{2})]);
should read:
title(['backward: ' num2str(+w)]);
title(['b&b: ' num2str(+w{2})]);
should read:
title(['b&b: ' num2str(+w)]);
-
Page 278, Listing 8.3 and Page 290, Listing 8.4:
z = acquire_measurement_vector();
should read:
z = acquire_measurement_vector;
u = get_control_vector();
should read:
u = get_control_vector;