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);
        }
Exemple #4
0
        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);
        }