在统计函数中,目前复数版本和实数版本是分开的,不支持混合运算
原因是,全支持的代价较大,且意义不大,因为复数本身使用少,不能因复数影响实数计算。因此,用户在使用时,应该将数据处理成全实数或全复数。目前的假设,实数当复数可用,复数当实数需要满足虚部为0。
即,不支持运算如sum(array(1,1+2j)) 这种操作,会报错。用户在使用时,应该将所有值转成复数后再处理,如将1转成1+0j即可。
在实际应用中,当数组中既有实数,又有复数时,我们可以将数组中的实数批量转换成复数,方法如下:
第一种:循环遍历方式
t:=array(1,1+2j);
t::=ifComplex(mcell)?mcell:complex(mcell,0);
return t;
第二种:复数重构
t:=array(1,1+2j);
return complex(real(t),imag(t));
转换后结果如下:
转换完成后,就可以进行sum(t)的操作了。