public static List <Matrix> ReadMatrixFromMultipleDyadicFile(string filename, int networkId) { BufferedFileReader reader = BufferedFileTable.GetFile(filename); lock (reader) { networkId = reader.JumpToNetworkId(networkId, true); Dictionary <string, int> labels = reader.GetDyadicLabels(networkId); int rows = labels.Count; // initialize the matrices List <Matrix> multipleMatrices = new List <Matrix>(); string[] topLabels = reader.TopLine.Split(','); //string[] labels = new string[reader.CountVarsInDyadicFile()]; for (int var = 0; var < reader.CountVarsInDyadicFile(); var++) { Matrix matrix = new Matrix(rows, rows); matrix.NetworkId = networkId; matrix.Name = topLabels[var + 3]; matrix.RowLabels.SetLabels(labels.Keys); matrix.ColLabels.SetLabels(labels.Keys); multipleMatrices.Add(matrix); } int totalLines = reader.CountLines(networkId); for (int i = 0; i < totalLines; ++i) { string s = reader.ReadLine(); string[] parts = s.Split(','); //if (parts.Length < 3 + reader.CountVarsInDyadicFile()) // throw new FileLoadException("Missing value for line: " + s); for (int var = 0; var < reader.CountVarsInDyadicFile(); var++) { multipleMatrices[var][labels[parts[1]], labels[parts[2]]] = ExtractDouble(parts[3 + var]); } } /* * if (networkId < 1000) * networkId = int.Parse("1" + networkId); * else * networkId = int.Parse("2" + networkId); */ return(multipleMatrices); } }
private static Matrix ReadMatrixFromDyadicFile(BufferedFileReader reader, int networkId, int dyadicVariable) { networkId = reader.JumpToNetworkId(networkId, true); Dictionary <string, int> labels = reader.GetDyadicLabels(networkId); int rows = labels.Count; Matrix matrix = new Matrix(rows, rows); //matrix.NetworkId = networkId; //matrix.NetworkId = int.Parse("1" + matrix.NetworkId); // new matrix.RowLabels.SetLabels(labels.Keys); matrix.ColLabels.SetLabels(labels.Keys); int totalLines = reader.CountLines(networkId); for (int i = 0; i < totalLines; ++i) { string s = reader.ReadLine(); string[] parts = s.Split(','); if (parts.Length < 3 + dyadicVariable) { throw new FileLoadException("Missing value for line: " + s); } matrix[labels[parts[1]], labels[parts[2]]] = ExtractDouble(parts[3 + dyadicVariable]); } /* * if (networkId < 1000) * networkId = int.Parse("1" + networkId); * else * networkId = int.Parse("2" + networkId); */ matrix.NetworkId = networkId; return(matrix); }
private static Matrix ReadMatrixFromDyadicFile(BufferedFileReader reader, int networkId, int dyadicVariable) { networkId = reader.JumpToNetworkId(networkId, true); Dictionary<string, int> labels = reader.GetDyadicLabels(networkId); int rows = labels.Count; Matrix matrix = new Matrix(rows, rows); //matrix.NetworkId = networkId; //matrix.NetworkId = int.Parse("1" + matrix.NetworkId); // new matrix.RowLabels.SetLabels(labels.Keys); matrix.ColLabels.SetLabels(labels.Keys); int totalLines = reader.CountLines(networkId); for (int i = 0; i < totalLines; ++i) { string s = reader.ReadLine(); string[] parts = s.Split(','); if (parts.Length < 3 + dyadicVariable) throw new FileLoadException("Missing value for line: " + s); matrix[labels[parts[1]], labels[parts[2]]] = ExtractDouble(parts[3 + dyadicVariable]); } /* if (networkId < 1000) networkId = int.Parse("1" + networkId); else networkId = int.Parse("2" + networkId); */ matrix.NetworkId = networkId; return matrix; }