天软金融分析.NET函数大全 > TSL函数 > 数学函数 > 常用数学函数

简单函数对数组支持    

  •   以前平台多数基本函数(比如sin)都不支持数组的输入,升级之后的函数不仅支持了数组,还加入了对于异常值的处理。func(In1,In2...InN[,Out1,...OutN]),In参数除支持数组外,还增加了两个可选参数func(In1,In2...InN[,Out1,...OutN][,Opt1,Opt2])
      Opt1:异常值处理,为0表示不做处理(默认情况);为1表示计算跳过nil值;为2表示跳过所有的异常值;
      Opt2: 报错填充值,当某单元报错的时候,使用该参数填充。
    单参数输入,以SIN函数为例,多个参数输入,以LogN为例:
    正常的二维数组的处理
    a := rand(10,array("a","b","c"));
    return sin(a);

    当出现nil值的时候,计算跳过:
    a := rand(10,10);
    a[0,1] := nil;
    return sin(a,1); //得到的结果nil位置的值还是nil

    当出现nil值,字符串的时候,计算跳过:
    a := rand(10,10);
    a[0,1] := nil;
    a[0,2] := "a";
    return sin(a,2); //得到的结果nil位置的值还是nil,”a”位置还是”a”

    当出现nil值,字符串的时候,结果填入替换值:
    a := rand(10,10);
    a[0,1] := nil;
    a[0,2] := "a";
    return sin(a,0,"替换值");

    只当出现nil值的时候跳过,出现字符串的时候替换为设置值:
    a := rand(10,10);
    a[0,1] := nil;
    a[0,2] := "a";
    return sin(a,1,"替换值");

    多个参数(不包括输出变参)输入,以LogN为例:
    LogN(Base,X:Real Or Array of Real;[varOpt1: Integer;[Opt2:Any]]:Real Or Array of Real;
    这类函数需要注意X,Y在维度不一致的时候,比如X是一个二维数组,Y是一个一维数组:
    X := 2*ones(10,10);
    Base := 2->11;
    return LogN(Base,X);

      这里最直观的的理解是把二维数组看成一维数据(其每一个元素是一维数组),所以,这个问题也就简化为两个等大小的一维数组在做计算了。超过两个以上主要参数的操作是类似的
    支持这项操作的函数包括:
    单参数输入:
    常用数学函数:Odd,Abs,Sqr,Sqrt
    三角函数:Sin,Cos,Tan,Cot,CoTan,Sec,Csc,Secant,Cosecant,ArcSin,ArcCos,ArcTan,ArcCot,ArcSec,ArcCsc,SinCos
    角度转换函数,双曲线函数
    指数对数函数:Ln,LnXP1,Log10,Log2,Exp
    精度设置及取整函数:Int,Ceil,Ceil32,Ceil64,Floor,Floor32,Floor64,Trunc,Trunc32,Trunc64,Frac,Round,Round32,Round64,SimpleRound,SimpleRound32,SimpleRound64
    比较判断函数:IsNan,IsInfinite,Sign
    多个参数输入:
    DivMod,Frexp,Ldexp,Poly,ArcTan2,Hypot,LogN,IntPower,Power,RoundTo,SimpleRoundTo,IsZero,Min,Max,CompareValue,SameValue,RandomRange,InRange,EnsureRange,RandG,财务函数等