📜  定义一个向量 c# (1)

📅  最后修改于: 2023-12-03 15:09:26.408000             🧑  作者: Mango

定义一个向量 C#

在 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}$。

向量类还提供了许多方法,比如 AddSubtractLength 等,可以方便地进行向量计算:

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}$。

总结

以上两种方法都可以用来定义向量,具体使用哪种方法取决于具体情况。如果只需要简单的计算,可以使用数组;如果要进行复杂的向量计算,可以使用向量类。