📅  最后修改于: 2023-12-03 15:09:26.408000             🧑  作者: Mango
在 C# 中,要定义一个向量,可以使用数组或封装好的向量类。本文将介绍两种方法。
我们可以使用一维数组来表示一个向量:
double[] v = new double[] { 1.0, 2.0, 3.0 };
这表示一个三维向量 $\begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}$。
类似地,我们可以使用二维数组来表示一个二维向量:
double[,] v = new double[,] { { 1.0, 2.0 }, { 3.0, 4.0 } };
这表示一个二维向量 $\begin{pmatrix} 1 \ 3 \end{pmatrix}$。
当然,我们也可以使用多维数组来表示一个多维向量:
double[,,] v = new double[,,] { { { 1.0, 2.0, 3.0 }, { -1.0, -2.0, -3.0 } }, { { 4.0, 5.0, 6.0 }, { -4.0, -5.0, -6.0 } } };
这表示一个 $2\times 2\times 3$ 的三维向量。
如果不想手动计算向量的长度、相加、相减等操作,可以使用 .NET Framework 已经封装好的向量类:System.Numerics.Vector<T>
。
我们可以使用向量的构造函数来创建向量对象:
System.Numerics.Vector<double> v = new System.Numerics.Vector<double>(new double[] { 1.0, 2.0, 3.0 });
这表示一个三维向量 $\begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}$。
向量类还提供了许多方法,比如 Add
,Subtract
,Length
等,可以方便地进行向量计算:
System.Numerics.Vector<double> v1 = new System.Numerics.Vector<double>(new double[] { 1.0, 2.0, 3.0 });
System.Numerics.Vector<double> v2 = new System.Numerics.Vector<double>(new double[] { 4.0, 5.0, 6.0 });
System.Numerics.Vector<double> result = System.Numerics.Vector.Add(v1, v2);
double length = result.Length();
本例中,result
表示 $\begin{pmatrix} 5 \ 7 \ 9 \end{pmatrix}$,length
表示 $|\begin{pmatrix} 5 \ 7 \ 9 \end{pmatrix}|= \sqrt{5^2+7^2+9^2}= \sqrt{155}$。
以上两种方法都可以用来定义向量,具体使用哪种方法取决于具体情况。如果只需要简单的计算,可以使用数组;如果要进行复杂的向量计算,可以使用向量类。