public static void scatterRandomOutputsByHL(String filename, int epochs, int printFrequency, int pointsPrinted, ANN ann, int[] hlsizes) throws IOException {
		File file = new File(filename);
		FileWriter f = new FileWriter(file.getAbsolutePath());
		createRandomDataSet("src/ann/temprandomin.txt", "src/ann/temprandomout.txt", 500);
		Random r = new Random();
		double[][] inputs = ANN.readPattern("src/ann/temprandomin.txt", "\\s\\s");
		double[][] outputs = ANN.readPattern("src/ann/temprandomout.txt", "\\s\\s");
		
		double[][] trainin = new double[inputs.length/3][inputs[0].length];
		double[][] trainout = new double[outputs.length/3][outputs[0].length];
		double[][] testin = new double[inputs.length-trainin.length][inputs[0].length];
		double[][] testout = new double[outputs.length-trainout.length][outputs[0].length];
		
		ANN.randomTrainPopulation(inputs, trainin, testin, outputs, trainout, testout);
		int numDataPoints = epochs/printFrequency;
		f.write("0\t");
		for (int ndp = 0; ndp < numDataPoints; ndp++) {
			for (int pp = 0; pp < pointsPrinted; pp++) {
				f.write(ndp + "\t");
			}
		}
		f.write("\n");
		for (int hlsize = 0; hlsize < hlsizes.length; hlsize++) {
			f.write(hlsizes[hlsize] + "\t");
			ann = new ANN(1, ann.learningSpeed, ann.momentum, ann.layerSize(0), hlsizes[hlsize], ann.layerSize(2));
			System.err.println(ann.layerSize(1));
			for (int i = 0; i < epochs; i++) {
				ANN.permute(trainin, trainout);
				for (int j = 0; j < trainin.length; j++) {
					Pattern trial = new Pattern(trainin[j], trainout[j]);
					ann.pass(trial);
					ann.updateAllWeights(trial);
				}
				double[][] outs = ann.outputs(testin);
				if (i%printFrequency == 0) {
					for (int kk = 0; kk < pointsPrinted; kk++) {
						f.write(outs[r.nextInt(outs.length)][0] + "\t");
					}
				}
			}
			f.write("\n");
			
		}
		f.close();
		
	}