var point=new Array();
var a=new Array();
function myFunction() {
for(s=1;s<13;s++){
point[s]=new Array();
}
id="1u0H7Y--FCYAs50wsqyzhGNBMzLS39F9TwSKaXQEzkNU";
ex = SpreadsheetApp.openById(id);
var sheet = ex.getSheetByName("data");
var v=sheet.getRange(1, 1,13,8).getValues();
for(s=1;s<13;s++){
for(sx=1;sx<8;sx++){
point[s][sx]=v[s][sx];
}
}
var avg=new Array();
for(tr=1;tr<8;tr++){
a1=0;
for(s=1;s<13;s++){
a1=a1+point[s][tr];
}
avg[tr]=a1/12;
}
var sig=new Array();
for(s=1;s<8;s++){
sig[s]=new Array();
}
for(s1=1;s1<8;s1++){
for(s2=1;s2<8;s2++){
a1=0;
for(sx=1;sx<13;sx++){
a1=a1+(point[sx][s1]-avg[s1])* (point[sx][s2]-avg[s2]);
}
sig[s1][s2]=a1/12;
}
}
for(s=0;s<7;s++){
a[s]=new Array();
}
for(s1=1;s1<8;s1++){
for(s2=1;s2<8;s2++){
z=sig[s1][s2]/Math.sqrt(sig[s1][s1]);
a[s1-1][s2-1]= z/ Math.sqrt(sig[s2][s2]);
}}
var sub=numeric;
ev = sub.numeric.eig(a);
var xx=ev.lambda.x;
var yy=ev.E.x;
var lam=new Array();
var v=new Array();
for(s=1;s<8;s++){
v[s]=new Array();
}
for(s=1;s<8;s++){
lam[s]=xx[s-1];
}
for(s=1;s<8;s++){
for(sx=1;sx<8;sx++){
v[s][sx]=yy[s-1][sx-1];
}}
Logger.log(lam[1]);
for(sx=1;sx<8;sx++){
Logger.log(v[1][sx]);
}
var delta=new Array();
for(s=1;s<13;s++){
p1=0;
for(sx=1;sx<8;sx++){
p1=p1+v[1][sx]*(point[s][sx]-avg[sx]);
}
delta[s]=p1;
}
}
最終更新:2017年04月19日 06:26