private void updateDgvMatrix(src.Matrix.BaseMatrix matrix) { tabControl1.SelectedIndex = 0; dgvMatrix.Rows.Clear(); dgvMatrix.Columns.Clear(); if (matrix.Size > maxDrawSize) { dgvMatrix.Columns.Add("", ""); dgvMatrix.Rows.Add("Matrix is too big to draw"); return; } for (var i = 0; i < matrix.Size; i++) { dgvMatrix.Columns.Add("", ""); } string[][] strs = new string[matrix.Size][]; for (int i = 0; i < matrix.Size; i++) { strs[i] = new string[matrix.Size]; } matrix.Run((i, j, u) => strs[i][j] = u.ToString()); for (int i = 0; i < matrix.Size; i++) { dgvMatrix.Rows.Add(strs[i]); } }
public static void OutputGenericMatrix(string fileName, BaseMatrix matrix) { Logger log = Logger.Instance; try { using (StreamWriter streamWriter = new StreamWriter(fileName)) { log.Info("Вывод матрицы в файл в обобщенном формате" + fileName + "..."); int n = 0; matrix.Run((i, j, u) => {if (u != 0) n++;}); streamWriter.WriteLine(n); matrix.Run((i, j, u) => {if (u != 0) streamWriter.WriteLine(String.Format("{0} {1} {2}", i, j, u));}); log.Info("Вывод матрицы в файл завершен."); } } catch (Exception e) { log.Error(e.Message); log.Error("Аварийное завершение вывода матрицы."); } }