private void btnProject_Click(object sender, EventArgs e) { if (pls == null || dgvProjectionSourceX.DataSource == null || dgvProjectionSourceY.DataSource == null) { MessageBox.Show("Please compute the analysis first."); return; } int components = (int)numComponents.Value; double[,] sourceInput = Matrix.ToMatrix(dgvProjectionSourceX.DataSource as DataTable); double[,] sourceOutput = Matrix.ToMatrix(dgvProjectionSourceY.DataSource as DataTable); double[,] input = pls.Transform(sourceInput, components); double[,] output = pls.TransformOutput(sourceOutput, components); dgvProjectionX.DataSource = new ArrayDataView(input); dgvProjectionY.DataSource = new ArrayDataView(output); }