如何在C#中获取System.Numerics.Vector的元素?

马塞尔·冈威施(Marcel Gangwisch)

我想访问System.Numerics.Vector<T>C#中的元素我正在关注官方文档:https : //docs.microsoft.com/zh-cn/dotnet/api/system.numerics.vector-1?view=netcore-2.2

我能够创建具有不同数据类型的不同向量。例如:var test = new Vector<double>(new double[] { 1.0, 2.0, 1.0 });

但是现在我有一个问题,我无法调用test.Count; 无法在类型的实例上调用Count System.Numerics.Vector<T>

我可以使用来访问单个元素access operator [],但是我不知道向量中有多少个元素。

根据文档,应该有公共财产:

public static int Count { get; }

但我无法调用的实例System.Numerics.Vector<T>相反,我只能以静态方式调用它,如下所示:

Vector<double>.Count

等于2。

我也可以致电:

Vector<Int32>.Count

返回:4和

Vector<Int16>.Count

返回8。

现在,我对于如何使用此静态属性确实有些困惑。起初,我认为该属性将返回存储在向量中的元素数量(如文档中所述)。其次,我认为该属性返回内存中向量的大小,但是此数字从double增大到Int32到Int16。

有趣的是,我无法从以下实例创建的实例中调用此静态属性:

var test = new Vector<double>(new double[] { 1.0, 2.0, 1.0 });

我不能打电话test.Count

您知道如何访问的元素System.Numerics.Vector<T>吗?

丹尼尔·怀特

没有办法做到这一点。Vector<T>具有固定大小,因为它正在尝试针对硬件加速进行优化。文档状态:

Vector<T>实例的数量是固定的,但其上限取决于CPU寄存器。它旨在用作向量化大型算法的基础。

https://source.dot.net/#System.Private.CoreLib/shared/System/Numerics/Vector.cs上阅读源代码

显示如果需要传递的数据较少,它将抛出该异常,并且仅占用Count传递的项中的最大值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

缺少System.Numerics.Vectors.Vector <T>

System.Numerics.Vector.GreaterThan and bool结果

C#中包含System.Numerics.Vector <double>的结构的指针

System.Numerics.Vector.ConditionalSelect用来做什么?

大数据集上的System.Numerics.Vector <T>

System.Numerics.Vector <int>仅部分初始化

C#SIMD使用System.Numerics.Vector进行排序/中位数

我如何在MonoDevelop中的Mono C#中使用System.Numerics?

System.Numerics.Vectors'Vector <T>':基本上只是System.UInt128吗?

在System.Numerics.Vector <T>中使用F#度量单位

.NET Framework上System.Numerics.Vector <T>的初始化性能

C#哪里可以下载System.Numerics

.NET Framework中的MathNet.Numerics.LinearAlgebra

错误:不支持元素numerics.length

如何在C#中的元素中获取XML属性

如何在C#枚举中获取元素的Display属性

LINQ to XML:如何在 C# 中获取元素值?

Protobuff序列化System.Numerics.BigInteger

包装昂贵的System.Numerics.VectorX-为什么?

使用System.Numerics.Vectors旋转2D点

如何使用MathNET.Numerics获得矢量幅度?

MathNET.Numerics中Matlab sortrows()的等效功能吗?

MathNET.Numerics中Matlab unique()的等效功能吗?

从vector <object *> * object获取元素

如何在C ++中获取某些元素

为什么System.Numerics命名空间中没有Matrix3x3?C#

在C ++中通过迭代器从vector获取相邻的元素对

如何在C#中获取列表的前N个元素?

如何在C#中获取一系列包含某些“价格”的XML元素