I’ve imported some data from a CSV file in matlab. They are time series that are all aligned (the fact that they are time series is not important, just that each column represents a single entity, and the rows are observations for that entity). This give me say, a 2500×50 matrix of doubles called data and a 1×50 cell array called colheaders.
What I am trying to do is use the Neural Network toolset to predict each entity (i.e., column) from all the others. The Neural Network tool takes as input a “target” (a single column of the matrix) and “input” (the original matrix but with the same column used as “target” removed from the matrix).
Suppose the entries in colheaders are of the form Col1, Col2, Col3, etc. I’d like to automate the process of training the model and making predictions for each column of the original matrix so that I have as output a bunch of prediction columns labeled Predicted_Col1, Predicted_Col2, etc.
I think I can figure out the Neural Network part but I just don’t know how to begin on the matrix manipulation and cross-referencing to the colheaders array. This seems like a common thing to want to do so I am guessing that someone knows an easy, straight-forward way to do it that is computationally efficient. Thanks.
Assuming colheaders is a cell of strings and data is your 2500×50 input array, the code below goes through all columns of data, separates target from input, feeds it into a pseudo-code for NN, and gradually builds the predicted matrix while creating custom column headers separately in out_colheaders: