private void calPrincipalCols(int depth){
	if(depth<=0 || depth>colNum)
		depth = colNum;
	
	ArrayList<Integer> pcs = new ArrayList<Integer>();
	for(int i=0;i<principalComponentNum;i++){//for each principal component
		for(int j=0;j<depth;j++){	 //find depth index related to the depth-th biggest elements
			double max = -1;
			int maxIndex = -1;
			for(int k=0;k<colNum;k++){//find the biggest
				if(Math.abs(eigenvectors[i][k])>max && !pcs.contains(k)){
					max = Math.abs(eigenvectors[i][k]);
					maxIndex = k;
				}
			}
			if(maxIndex>=0)
				pcs.add(maxIndex);
		}
	}
	principalCols = new int[pcs.size()];
	for(int i=0;i<pcs.size();i++)
		principalCols[i]=pcs.get(i);
}