当前位置: 首页>>代码示例>>C#>>正文


C# SparseMatrix.GetColumn方法代码示例

本文整理汇总了C#中SparseMatrix.GetColumn方法的典型用法代码示例。如果您正苦于以下问题:C# SparseMatrix.GetColumn方法的具体用法?C# SparseMatrix.GetColumn怎么用?C# SparseMatrix.GetColumn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SparseMatrix的用法示例。


在下文中一共展示了SparseMatrix.GetColumn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateMatrixATA

        public static SparseMatrix CreateMatrixATA(ref SparseMatrix A,ref NonManifoldMesh mesh)
        {
            // assume A is sorted
            // assume values in parameter adj is in order

            if (A == null)
                throw new Exception("A matrix is null");

            int[][] adj = MeshOperators.BuildTwoRingVV(ref mesh).GetRowIndex();
            int n = A.ColumnSize;
            SparseMatrix ATA = new SparseMatrix(n, n);

            for (int i = 0; i < n; i++)
            {
                List<SparseMatrix.Element> col1 = A.GetColumn(i);
                foreach (int j in adj[i])
                {
                    List<SparseMatrix.Element> col2 = A.GetColumn(j);
                    int c1 = 0, c2 = 0;
                    double sum = 0.0;
                    bool used = false;

                    while (c1 < col1.Count && c2 < col2.Count)
                    {
                        if (col1[c1].i < col2[c2].i) { c1++; continue; }
                        if (col1[c1].i > col2[c2].i) { c2++; continue; }
                        sum += col1[c1].value * col2[c2].value;
                        used = true;
                        c1++;
                        c2++;
                    }

                    if (used)
                        ATA.AddElement(i, j, sum);
                }
            }

            if (ATA.IsSymmetric() == false) throw new Exception("ATA is not symmetric!!");
            return ATA;
        }      
开发者ID:meshdgp,项目名称:MeshDGP,代码行数:40,代码来源:MeshOperators.cs


注:本文中的SparseMatrix.GetColumn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。