Write a MATLAB/Octave script for readling in the linear least squares problem
diff --git a/internal/ceres/linear_least_squares_problems.cc b/internal/ceres/linear_least_squares_problems.cc
index da3ed8c..05cb7aa 100644
--- a/internal/ceres/linear_least_squares_problems.cc
+++ b/internal/ceres/linear_least_squares_problems.cc
@@ -680,30 +680,58 @@
   string filename_prefix =
       StringPrintf(format_string.c_str(), iteration);
 
+  LOG(INFO) << "writing to: " << filename_prefix << "*";
+
+  string matlab_script;
+  StringAppendF(&matlab_script,
+                "function lsqp = lm_iteration_%03d()\n",
+                iteration,
+                iteration);
+
+  StringAppendF(&matlab_script,
+                "lsqp.num_rows = %d;\n", A->num_rows());
+  StringAppendF(&matlab_script,
+                "lsqp.num_cols = %d;\n", A->num_cols());
+
   {
     string filename = filename_prefix + "_A.txt";
-    LOG(INFO) << "writing to: " << filename;
     FILE* fptr = fopen(filename.c_str(), "w");
     CHECK_NOTNULL(fptr);
     A->ToTextFile(fptr);
     fclose(fptr);
+    StringAppendF(&matlab_script,
+                  "tmp = load('%s', '-ascii');\n", filename.c_str());
+    StringAppendF(
+        &matlab_script,
+        "lsqp.A = sparse(tmp(:, 1) + 1, tmp(:, 2) + 1, tmp(:, 3), %d, %d);\n",
+        A->num_rows(),
+        A->num_cols());
   }
 
+
   if (D != NULL) {
     string filename = filename_prefix + "_D.txt";
     WriteArrayToFileOrDie(filename, D, A->num_cols());
+    StringAppendF(&matlab_script,
+                  "lsqp.D = load('%s', '-ascii');\n", filename.c_str());
   }
 
   if (b != NULL) {
     string filename = filename_prefix + "_b.txt";
     WriteArrayToFileOrDie(filename, b, A->num_rows());
+    StringAppendF(&matlab_script,
+                  "lsqp.b = load('%s', '-ascii');\n", filename.c_str());
   }
 
   if (x != NULL) {
     string filename = filename_prefix + "_x.txt";
     WriteArrayToFileOrDie(filename, x, A->num_cols());
+    StringAppendF(&matlab_script,
+                  "lsqp.x = load('%s', '-ascii');\n", filename.c_str());
   }
 
+  string matlab_filename = filename_prefix + ".m";
+  WriteStringToFileOrDie(matlab_script, matlab_filename);
   return true;
 }