原創|其它|編輯:郝浩|2012-12-24 15:30:25.000|閱讀 394 次
概述:本文主要通過示例代碼,講述原生C#數學函數庫NMath,如何編寫代碼以訪問底層數據和應用函數。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本文主要通過示例代碼,講述原生C#數學函數庫NMath,如何編寫代碼以訪問底層數據和應用函數。
針對需要原生和遺留代碼接口的應用程序,NMath向量和矩陣的類可用作一個指針來獲取底層數據。這些類擁有一個叫DataBlock的屬性,這個屬性可以返回<Type>DataBlock對象。<Type>DataBlock包括一個數組和一個偏移量,讓你可以通過其獲取底層數據,例如:
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是一個函數:
// 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類提供了許多常用的數學函數。接下來會詳細介紹,敬請關注。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網