     }
     
     //  train Neural Network for the misc action dataset
-    func trainNNMisc(nnet: NeuralNet, structure: NeuralNet.Structure, mTrain: [[Float]], mTest: [[Float]], actLog: [String], errorThreshold: Float){
+    func trainNNMisc(nnet: NeuralNet, structure: NeuralNet.Structure, dataSet: [[[Float]]], actLog: [String], errorThreshold: Float, nnInputNum: Int, bootTrainDataNum: Int, bootTestDataNum: Int, testStartPt: Int, bootStepSize: Int, ptsPerData: Int, rowNum: Int){
         
         //Create the output train and test answers
         var tmpTrainAns = [[Float]]()

    @IBAction func trainNNBPressed(_ sender: Any) {
        currentAppStatus.text = "Training NeuralNet"
        
        self.trainNN(nnet: nn, structure: structure, wTrainMatrix: walkTrainMatrix, wTestMatrix: walkTestMatrix, sTrainMatrix: standTrainMatrix, sTestMatrix: standTestMatrix)
    }
    
    @IBAction func guessActBPressed(_ sender: Any) {

        }
        return accel1D
    }
    
    // Three axis wrapper for the data bootstrapper
    //      Joins the bootstrapped data from each array into log segments
    //      The segements are x, y, z in that order.
    
    func triAxisBootWrapper(arr2D: [[Float]], setsNum: Int, startPt: Int, stride: Int, windowSize: Int, rowNums: Int) -> [[Float]] {
        var xArr: [[Float]] = Array(repeating: Array(repeating: 0.0, count: windowSize), count: setsNum)
        var yArr: [[Float]] = Array(repeating: Array(repeating: 0.0, count: windowSize), count: setsNum)
        var zArr: [[Float]] = Array(repeating: Array(repeating: 0.0, count: windowSize), count: setsNum)
        var returnArray: [[Float]] = Array(repeating: Array(repeating: 0.0, count: windowSize * 3), count: setsNum)
        
        xArr = self.bootStrapDataM(arr2D: arr2D, setsNum: setsNum, startPt: startPt, stride: stride, windowSize: windowSize, rowNums: rowNums, xyz: 1)
        yArr = self.bootStrapDataM(arr2D: arr2D, setsNum: setsNum, startPt: startPt, stride: stride, windowSize: windowSize, rowNums: rowNums, xyz: 2)
        zArr = self.bootStrapDataM(arr2D: arr2D, setsNum: setsNum, startPt: startPt, stride: stride, windowSize: windowSize, rowNums: rowNums, xyz: 3)
        
        for i in 0..<setsNum {
            returnArray[i] = xArr[i] + yArr[i] + zArr[i]
        }
        
        return returnArray
    }
    
    // MARK: NeuralNetwork Config
    //      Initialize a specific untrained NeuralNet
    //      that can handle more than 2 classifications.
