博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NMath应用教程:如何通过代码访问底层数据和应用函数
阅读量:7107 次
发布时间:2019-06-28

本文共 1015 字,大约阅读时间需要 3 分钟。

hot3.png

本文主要通过示例代码,讲述原生C#数学函数库,如何编写代码以访问底层数据和应用函数。

访问底层数据

  针对需要原生和遗留代码接口的应用程序,NMath向量和矩阵的类可用作一个指针来获取底层数据。这些类拥有一个叫DataBlock的属性,这个属性可以返回<Type>DataBlock对象。<Type>DataBlock包括一个数组和一个偏移量,让你可以通过其获取底层数据,例如:

1
2
3
4
5
6
7
8
DoubleVector v =
new
DoubleVector( 12, 0, 1 );
DoubleDataBlock dataBlock = v.DataBlock;
unsafe
{
  
double
*ptr = &(dataBlock.Data[dataBlock.Offset]);
   
  
// Do with *ptr something here
}

应用函数

  NMath提供了方便的方法把一元和二元函数应用到向量或矩阵对象的元素中。通过Apply()返回一个新的对象,其内容是给定函数应用于矩阵或向量元素的结果。Transform()能够修改矩阵或向量对象中应用的函数元素。根据这个原理,我们可以来看以下例子。假设MyFunc是一个函数:

1
2
3
4
5
6
7
8
9
// Construct a delegate for MyFunc
Func<
double
,
double
> MyFuncDelegate =
   
new
Func<
double
,
double
>( MyFunc );
// Construct a new vector whose values are the result of applying
// MyFunc to the values in vector v. v remains unchanged.
DoubleVector w = v.Apply( MyFuncDelegate );
// Transform the contents of v.
v.Transform( MyFuncDelegate );
v == w;
// true!

  NMath在NMathFunctions类提供了许多常用的数学函数。接下来会详细介绍,敬请关注。

转载于:https://my.oschina.net/u/2003526/blog/371770

你可能感兴趣的文章
CentOS6.5 升级 Python 2.7 版本
查看>>
lvs -dr
查看>>
亚马逊S3 - The difference between the request time and the current time is too large.
查看>>
问答:制造业转运营
查看>>
as3+java+mysql(mybatis) 数据自动工具(二)
查看>>
Hdu 4864(Task 贪心)(Java实现)
查看>>
畅通工程
查看>>
inline-block右侧空白间隙去除
查看>>
ubuntu环境部署项目
查看>>
面向对象的一些概念
查看>>
让人沉思的五个问题。
查看>>
web 项目手机页面不允许缩放
查看>>
Atcoder 1973:こだわり者いろはちゃん / Iroha's Obsession
查看>>
访问修饰符protected
查看>>
WPA2-PSK无线密码破解
查看>>
模块的封装之无伤大雅的形式主义
查看>>
dubbo学习(zz)
查看>>
Mybatis(一)
查看>>
react中prop-types的使用
查看>>
C# HttpDirect
查看>>