public static GaNumMatlabSparseMatrixData TermsToMatlabArray(this IEnumerable <GaPoTNumBiversorTerm> termsList, int rowsCount) { var termsArray = termsList .OrderBy(t => t.TermId1) .ThenBy(t => t.TermId2) .ToArray(); var result = GaNumMatlabSparseMatrixData.CreateSquareMatrix( rowsCount, termsArray.Length ); var sparseIndex = 0; foreach (var term in termsArray) { result.SetItem( sparseIndex, term.TermId1 + 1, term.TermId2 + 1, term.Value ); sparseIndex++; } return(result); }
public static GaNumMatlabSparseMatrixData TermsToMatlabArray(this GaPoTNumVector[] vectorsList, int rowsCount) { var columnsCount = vectorsList.Length; var termsList = vectorsList .Select(v => v.GetTerms() .OrderBy(t => t.TermId) .ToArray() ).ToArray(); var result = GaNumMatlabSparseMatrixData.CreateMatrix( rowsCount, columnsCount, termsList.Sum(t => t.Length) ); var sparseIndex = 0; for (var j = 0; j < columnsCount; j++) { var termsArray = termsList[j]; foreach (var term in termsArray) { result.SetItem(sparseIndex, term.TermId, j + 1, term.Value); sparseIndex++; } } return(result); }
public static GaNumMatlabSparseMatrixData RectPhasorsToMatlabArray(this IEnumerable <GaPoTNumRectPhasor> phasorsList, int rowsCount) { var termsArray = phasorsList .OrderBy(t => t.Id) .ToArray(); var result = GaNumMatlabSparseMatrixData.CreateMatrix( rowsCount, 2, termsArray.Length * 2 ); var sparseIndex = 0; foreach (var term in termsArray) { var row = (term.Id - 1) / 2 + 1; result.SetItem(sparseIndex, row, 1, term.XValue); result.SetItem(sparseIndex + 1, row, 2, term.YValue); sparseIndex += 2; } return(result); }
public static GaPoTNumVector TermsArrayToVector(int rowsCount, int columnsCount, int[] rowIndicesArray, int[] columnIndicesArray, double[] valuesArray) { var matrixData = GaNumMatlabSparseMatrixData.CreateMatrix(rowsCount, columnsCount, rowIndicesArray, columnIndicesArray, valuesArray); var mv = new GaPoTNumVector(); mv.AddTerms(matrixData); return(mv); }
public GaPoTNumVector AddTerms(GaNumMatlabSparseMatrixData matlabArray) { for (var sparseIndex = 0; sparseIndex < matlabArray.ItemsCount; sparseIndex++) { AddTerm( matlabArray.RowIndicesArray[sparseIndex], matlabArray.ValuesArray[sparseIndex] ); } return(this); }
public GaPoTNumVector AddRectPhasors(GaNumMatlabSparseMatrixData matlabArray) { var array = matlabArray.GetArray(); for (var i = 0; i < matlabArray.RowsCount; i++) { AddRectPhasor( i * 2 + 1, array[i, 0], array[i, 1] ); } return(this); }