Attachment 'U02_test_pca.m'
Download 1 function U02_test_pca
2 %U02_TEST_PCA Test PCA.
3 %
4 %Your PCA function must *not* center the data!!!
5 %
6 %usage
7 % U02_test_pca
8 %
9 %author
10 % saputra@cs.tu-berlin.de
11
12 % filename of script to test
13 filename = 'PCA.m';
14
15 % data
16 X = [
17 0.620350139445525 0.135175444758437 1.183719539936857 -0.716428623725855 0.106814075934588 2.212554078989681 -1.680542777522645 0.008934115676568
18 5.079127388759098 -0.556160040161770 -0.061718647133300 -2.622237558015624 7.392864872075875 6.034103024384587 -2.294136536423504 3.347799563349179
19 0.634890923594887 -0.069520005020221 -0.007714830891663 -0.327779694751953 0.924108109009484 0.754262878048073 -0.286767067052938 0.418474945418647 ];
20
21 m = 2;
22
23 % correct results
24 correct_Z = [
25 0.000000000000001 -0.000000000000000 -0.000000000000000 -0.000000000000000 0.000000000000001 0.000000000000000 -0.000000000000000 0.000000000000000
26 0.241451624679969 -0.226701139502802 -1.177529274921587 0.265958918169822 1.136435832509665 -1.168077599461355 1.271697872161680 0.553510036896045 ];
27
28 correct_U = [
29 -0.166669742451379 -0.986012777275828 -0.000000000000000
30 -0.978398665047805 0.165382698152069 -0.124034734589208
31 -0.122299833130975 0.020672837269008 0.992277876713668 ];
32
33 correct_D = 1.0e+02 * [1.466203213045900 0.061464821519444 0.000000000000000];
34
35 % run test
36 if exist(filename, 'file')
37 fprintf(['Testing ' filename '...\n']);
38 [Z, U, D] = PCA(X, m);
39 assert_equal(size(correct_Z), size(Z), 'Size of matrix Z does not match.');
40 assert_equal(size(correct_U), size(U), 'Size of matrix U does not match.');
41 assert_equal(size(correct_D), size(D), 'Size of vector D does not match (is D maybe a column instead of a row vector?)');
42 assert_equal(correct_Z, Z, 'Matrix Z isn''t correct.', 'Matrix Z is correct.');
43 assert_equal(correct_U, U, 'Matrix U isn''t correct.', 'Matrix U is correct.');
44 assert_equal(correct_D, D, 'Matrix D isn''t correct.', 'Matrix D is correct.');
45 else
46 fprintf([filename 'not found.\n']);
47 end
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.