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


C# SparseMatrix.Last方法代码示例

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


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

示例1: Transfer_Matrix_Explicit_Alpha


//.........这里部分代码省略.........
                        {
                            //Biot Porous absorbers
                            I[i] = Explicit_TMM.Interfacepf_Fluid(LayerList[i + 1].porosity) as SparseMatrix;
                            J[i] = Explicit_TMM.Interfacepf_Porous(LayerList[i + 1].porosity);
                        }
                        else
                        {
                            //Solid Layer
                            I[i] = SparseMatrix.CreateIdentity(4);
                            J[i] = SparseMatrix.CreateIdentity(4);
                        }
                    }
                    else if ((int)LayerList[i].T == 15 || (int)LayerList[i + 1].T == 16)
                    {
                        //Biot Porous absorbers
                        if ((int)LayerList[i + 1].T <= 10)
                        {
                            //Fluid Layer
                            I[i] = Explicit_TMM.Interfacepf_Porous(LayerList[i].porosity);
                            J[i] = Explicit_TMM.Interfacepf_Fluid(LayerList[i].porosity);
                        }
                        else if ((int)LayerList[i + 1].T == 15 || (int)LayerList[i + 1].T == 16)
                        {
                            //Biot Porous absorbers
                            I[i] = Explicit_TMM.InterfacePP(LayerList[i].porosity, LayerList[i + 1].porosity);//TODO: Check that we have the right porosities in the right places...
                            J[i] = SparseMatrix.CreateIdentity(6);
                        }
                        else
                        {
                            //Solid Layer
                            I[i] = Explicit_TMM.Interfacesp_Porous();
                            J[i] = Explicit_TMM.Interfacesp_Solid();
                        }

                    }
                    else
                    {
                        //Solid Layer
                        if ((int)LayerList[i + 1].T <= 10)
                        {
                            //Fluid Layer
                            I[i] = Explicit_TMM.InterfaceSF_Solid();
                            J[i] = Explicit_TMM.InterfaceSF_Fluid();
                        }
                        else if ((int)LayerList[i + 1].T == 15 || (int)LayerList[i + 1].T == 16)
                        {
                            //Biot Porous absorbers
                            I[i] = Explicit_TMM.Interfacesp_Solid();
                            J[i] = Explicit_TMM.Interfacesp_Porous();
                        }
                        else
                        {
                            //Solid Layer
                            I[i] = Explicit_TMM.InterfaceSF_Fluid() as SparseMatrix;
                            J[i] = Explicit_TMM.InterfaceSF_Solid();
                        }
                    }
                }
                //List<SparseMatrix[][]> T = Layer(LayerList.Count - 1, LayerList, K_Air, sintheta_inc, K_Air, c_sound, frequency);

                Complex[][] Z = new Complex[sintheta_inc.Length][];
                for (int a = 0; a < sintheta_inc.Length; a++)
                {
                    Z[a] = new Complex[sintheta_inc[a].Length];
                    for(int f = 0; f < sintheta_inc[a].Length; f++)
                    {
                        SparseMatrix V;
                        if (T.First()[a][f].RowCount == 2)
                        {
                            V = new SparseMatrix(2, 1);
                            V[0, 0] = 1;
                        }
                        else if (T.First()[a][f].RowCount == 4)
                        {
                            V = new SparseMatrix(4, 1);
                            V[0, 0] = 1;
                            V[1, 0] = 1;
                        }
                        else
                        {
                            V = new SparseMatrix(6, 1);
                            V[0, 0] = 1;
                            V[1, 0] = 1;
                            V[2, 0] = 1;
                        }

                        for (int i = 0; i < T.Length; i++)
                        {
                            V = -((J[i] * T[i][a][f]) * I[i].Inverse() as SparseMatrix) * V;
                            //V = T[i][a][f] * V;
                        }

                        V = -(J.Last() * I.Last().Inverse() as SparseMatrix) * V;

                        Z[a][f] = V[0, 0] * 100000 / V[1, 0];
                    }
                }

                return Z;
            }
开发者ID:philrob22,项目名称:PachydermAcoustic_Rhinoceros,代码行数:101,代码来源:Classes_Absorption_Analytics.cs


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