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


C# FloatMatrix.Transpose方法代码示例

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


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

示例1: TransposeLong

		public void TransposeLong()
		{
			FloatMatrix a = new FloatMatrix(3, 2);
			a[0, 0] = 1;
			a[0, 1] = 2;
			a[1, 0] = 3;
			a[1, 1] = 4;
			a[2, 0] = 5;
			a[2, 1] = 6;
			a.Transpose();
			Assert.AreEqual(a[0, 0], 1);
			Assert.AreEqual(a[0, 1], 3);
			Assert.AreEqual(a[0, 2], 5);
			Assert.AreEqual(a[1, 0], 2);
			Assert.AreEqual(a[1, 1], 4);
			Assert.AreEqual(a[1, 2], 6);
			Assert.AreEqual(a.RowLength, 2);
			Assert.AreEqual(a.ColumnLength, 3);
		}
开发者ID:Altaxo,项目名称:Altaxo,代码行数:19,代码来源:FloatMatrixTest.cs

示例2: InternalCompute


//.........这里部分代码省略.........
							if (computeVectors)
							{
								drot(v, k, k + 1, cs, sn);
							}
							drotg(ref f, ref g, ref cs, ref sn);
							s[k] = f;
							f = cs * e[k] + sn * s[k + 1];
							s[k + 1] = -sn * e[k] + cs * s[k + 1];
							g = sn * e[k + 1];
							e[k + 1] = cs * e[k + 1];
							if (computeVectors && k < rows)
							{
								drot(u, k, k + 1, cs, sn);
							}
						}
						e[m - 2] = f;
						iter = iter + 1;
						break;

					// convergence.
					case 4:
						// make the singular value  positive
						if (s[l] < 0.0f)
						{
							s[l] = -s[l];
							if (computeVectors)
							{
								dscalColumn(v, l, 0, -1.0f);
							}
						}

						// order the singular value.
						while (l != mm - 1)
						{
							if (s[l] >= s[l + 1])
							{
								break;
							}
							t = s[l];
							s[l] = s[l + 1];
							s[l + 1] = t;
							if (computeVectors && l < cols)
							{
								dswap(v, l, l + 1);
							}
							if (computeVectors && l < rows)
							{
								dswap(u, l, l + 1);
							}
							l = l + 1;
						}
						iter = 0;
						m = m - 1;
						break;
				}
			}

			// make matrix w from vector s
			// there is no constructor, creating diagonal matrix from vector
			// doing it ourselves
			mm = System.Math.Min(matrix.RowLength, matrix.ColumnLength);
#else
      u = new FloatMatrix(rows);
      v = new FloatMatrix(cols);
      float[] a = new float[matrix.data.Length];
      Array.Copy(matrix.data, a, matrix.data.Length);
      Lapack.Gesvd.Compute(rows, cols, a, s.data, u.data, v.data );
      v.Transpose();
#endif
			w = new FloatMatrix(matrix.RowLength, matrix.ColumnLength);
			for (int ii = 0; ii < matrix.RowLength; ii++)
			{
				for (int jj = 0; jj < matrix.ColumnLength; jj++)
				{
					if (ii == jj)
					{
						w[ii, ii] = s[ii];
					}
				}
			}

			float eps = (float)System.Math.Pow(2.0, -52.0);
			float tol = (float)System.Math.Max(matrix.RowLength, matrix.ColumnLength) * s[0] * eps;
			rank = 0;

			for (int h = 0; h < mm; h++)
			{
				if (s[h] > tol)
				{
					rank++;
				}
			}

			if (!computeVectors)
			{
				u = null;
				v = null;
			}
			matrix = null;
		}
开发者ID:Altaxo,项目名称:Altaxo,代码行数:101,代码来源:FloatSVDDecomp.cs

示例3: TransposeSquare

		public void TransposeSquare()
		{
			FloatMatrix a = new FloatMatrix(2, 2);
			a[0, 0] = 1;
			a[0, 1] = 2;
			a[1, 0] = 3;
			a[1, 1] = 4;
			a.Transpose();
			Assert.AreEqual(a[0, 0], 1);
			Assert.AreEqual(a[0, 1], 3);
			Assert.AreEqual(a[1, 0], 2);
			Assert.AreEqual(a[1, 1], 4);
		}
开发者ID:Altaxo,项目名称:Altaxo,代码行数:13,代码来源:FloatMatrixTest.cs


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