下面程序
data score;
input num x1-x5@;
label x1='政治' x2='语文' x3='外语' x4='数学' x5='物理';
cards;
1 99 94 93 100 100
2 99 88 96 99 97
3 100 98 81 96 100
4 93 88 88 99 96
5 100 91 72 96 78
6 90 78 82 75 97
7 75 73 88 97 89
8 93 84 83 68 88
9 87 73 60 76 84
10 95 82 90 62 39
11 76 72 43 67 78
12 85 75 50 34 37
;
proc iml data=score;
n=12;p=5;
xx={x4 x5};
use score;
read all var xx into x;
e={[12] 1};
x0=(e*x)/n;
mm=i(12)-j(12,12,1)/n;
a=x`*mm*x;
s=a/(n-1);
si=inv(s);print x0 s si;
use score(obs=1);
read all var xx into xx1;
d1=(xx1-x0)*si*(xx1-x0)`; /*d 为马氏距离*/
(我不会从矩阵xx中读取每行数据,所以用use score(obs=1);read all var xx into xx1;来得到第一行数据,下面要读取其它行同样要计算马氏距离,请高手指点!!!!!谢谢啊!急用!)