The data consists of a subset of the entries of a low-rank matrix.  Your goal is to fill in the entries marked NaN with numerical values.  NaN stands for "Not-a-Number".  Type >> help NaN in Matlab to learn how to work with NaN values. In order to take the Kaggle data and put it into matrix form, use the Matlab program csvReadFromKaggle.m.  It is included in this kaggle as part of the "data".  It takes as input the name of the csv file. Example:  M =csvReadFromKaggle('Mobserved50by200'). The matrix M now consists of numerical values for observed entries and NaN's for unobserved entries.  Now (somehow) make a matrix Mhat which has as entry (i,j) your estimate of the corresponding entry the original matrix. In order to upload your estimate to Kaggle, use the Matlab function csvWriteForKaggle.  Upload the resulting .csv file to Kaggle. Example:  csvWriteForKaggle('mySubmission', Mhat)