andshav

MatrixParFor

Apr 29th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.91 KB | None | 0 0
  1. using System;
  2. using System.Globalization;
  3. using System.IO;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Matrix
  8. {
  9.     class Program
  10.     {
  11.         static double[,] Mult(double[,] a, double[,] b)
  12.         {
  13.             int c = a.GetLength(0);
  14.             double[,] ans = new double[c, c];
  15.  
  16.             Parallel.For(0, c, i =>
  17.             {
  18.                 for (int j = 0; j < c; j++)
  19.                 {
  20.                     for (int k = 0; k < c; k++)
  21.                     {
  22.                         ans[i, j] += a[i, k] * b[k, j];
  23.                     }
  24.                 }
  25.             }
  26.             );
  27.            return ans;
  28.         }
  29.  
  30.         static void Main(string[] args)
  31.         {
  32.             Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en");
  33.             var lines = File.ReadAllLines("matrix.csv");
  34.             var matrix = new double[lines.Length, lines.Length];
  35.             var i = 0;
  36.             foreach (string line in lines)
  37.             {
  38.                 string[] elements = line.Split(',');
  39.                 int j = 0;
  40.                 foreach (string str in elements)
  41.                 {
  42.                     matrix[i, j] = Double.Parse(str, CultureInfo.InvariantCulture);
  43.                     j++;
  44.                 }
  45.                 i++;
  46.             }
  47.  
  48.  
  49.             Console.WriteLine(matrix[0, 0]);
  50.  
  51.             matrix = Mult(matrix, matrix);
  52.  
  53.  
  54.             var stringArr = new string[lines.Length];
  55.  
  56.             for (int j = 0; j < lines.Length; j++)
  57.             {
  58.                 var matrValue = matrix[0, 0].ToString();
  59.                 for (int k = 1; k < lines.Length; k++)
  60.                 {
  61.                     matrValue += "," + matrix[j, k];
  62.                 }
  63.  
  64.                 stringArr[j] = matrValue;
  65.             }
  66.  
  67.            File.WriteAllLines("colomn.csv", stringArr);
  68.  
  69.  
  70.  
  71.  
  72.             Console.ReadKey();
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment