zoukankan      html  css  js  c++  java
  • 【C++学习】valarray函数库

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    做毕设时碰到了最小二乘法的直线拟合问题,发觉C++里有以下这么几个类在做这件事情、以及后续处理时挺不错的,其实用OpenCV的数据结构和方法也可以进行,稍后研究一下。

    valarray 类用法

    1. apply 将 valarray 数组的每一个值都用 apply 所接受到的函数进行计算

    2. cshift 将 valarray 数组的数据进行循环移动,参数为正者左移为负就右移

    3. max 返回 valarray 数组的最大值

    4. min 返回 valarray 数组的最小值

    5. resize 重新设置 valarray 数组大小,并对其进行初始化

    6. shift 将 valarray 数组移动,参数为正者左移,为负者右移,移动后由 0 填充剩余位

    7. size 得到数组的大小

    8. sum 数组求和

    构造函数

    valarray( );

    explicit valarray(size _ t _Count );

    valarray( const Type& _Val , size _ t _Count );

    valarray( const Type* _Ptr , size _ t _Count );

    valarray( const slice _ array<Type>& _SliceArray );

    valarray( const gslice _ array<Type>& _GsliceArray );

    valarray( const mask _ array<Type>& _MaskArray );

    valarray( const indirect _ array<Type>& _IndArray );

    slice 类用法

    该类主要配合 valarray 类使用,可以从 valarray 中提取子数组

    slice( );

    slice( size _ t _StartIndex ,// 截取数组的开始位置

    const valarray<size _ t> _Len , // 子数组的最大长度

    const valarray<size _ t> _Stride// 相隔多少个元素选中一个

    );

    用法:

    int main( )

    {

    using namespace std;

    int i;

    valarray<int> va ( 20 ), vaResult;

    for ( i = 0 ; i < 20 ; i+=1 )

    va [ i ] = 2 * (i + 1 );

    cout << "The operand valarray va is:/n( ";

    for ( i = 0 ; i < 20 ; i++ )

    cout << va [ i ] << " ";

    cout << ")." << endl;

    slice vaSlice ( 1 , 7 , 3 );

    vaResult = va [ vaSlice ];

    cout << "/nThe slice of valarray va is vaResult:"

    << "/nva[slice( 1, 7, 3)] = ( ";

    for ( i = 0 ; i < 7 ; i++ )

    cout << vaResult [ i ] << " ";

    cout << ")." << endl;

    }

    输出结果:

    The operand valarray va is:

    ( 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 ).

    The slice of valarray va is vaResult:

    va[slice( 1, 7, 3)] = ( 4 10 16 22 28 34 40 )

    Gslice 类用法

    Gslice 类的用法和slice 基本相同,只是它截取的是循环子串,当母串进行一次提取后的字串元素数目达不到要求时,gslice 会将提取后的母串继续组合进行提取直到满足要求或者母串被提取完了

    公共函数( 对数组的操作)

    1.abs 对数组的每一个元素取绝对值

    2.acos 返回每个元素的反余弦值

    3.asin  返回每个元素的反正弦值

    4.atan  返回每个元素的正切值

    5.atan2 笛卡尔正切值

    6.cos 余弦值

    7.cosh  双曲线余弦值

    8.exp 返回自然指数E^x

    9.log 返回自然对数

    10.log10 返回以10 为底的返回自然对数

    11.exp 返回x^y

    12.sin 正弦值

    13.sinh 双曲线正弦值

    14.sqrt 开方

    15.tan 正切值

    16.tanh 反正切值

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/


                   作者:gnuhpc
                   出处:http://www.cnblogs.com/gnuhpc/
                   除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


    分享到:

  • 相关阅读:
    从通胀说起
    科技见欲迷人眼
    吃货在西安 之 粉丝羊血泡馍
    祝母亲大人福如东海长流水,寿比南山不老松
    久违的蓝调北京
    调和生活前的问题
    《N2CMS实例教程》第四讲:Article Template Page
    《N2CMS实例教程》前言
    《N2CMS实例教程》第一讲:开发环境
    Microsoft Sync Framework 学习实例1文件同步
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2809997.html
Copyright © 2011-2022 走看看