我使用的是带有Kohana框架v2.3.4的PHP版本5.2.13,我想要计算标准偏差。
我在PHP手册中找到了一个函数:stats_standard_deviation
问题是,当我尝试的时候,我得到了这个错误:
Fatal error: Call to undefined function stats_standard_deviation() in /folder/test.php on line 1799这是我使用的代码:
function std_dev ($attr, $test1,$test2,$test3,$test4,$test5,$test6) {
$items[] = array();
if (isset($test1) && $test1->$attr != 9 && $test1->$attr != 0) {
$items[] = $test1->$attr;
}
if (isset($test2) && $test2->$attr != 9 && $test2->$attr != 0) {
$items[] = $test2->$attr;
}
if (isset($test3) && $test3->$attr != 9 && $test3->$attr != 0) {
$items[] = $test3->$attr;
}
if (isset($test4) && $test4->$attr != 9 && $test4->$attr != 0) {
$items[] = $test4->$attr;
}
if (isset($test5) && $test5->$attr != 9 && $test5->$attr != 0) {
$items[] = $test5->$attr;
}
if (isset($test6) && $test6->$attr != 9 && $test6->$attr != 0) {
$items[] = $test6->$attr;
}
$standard_deviation = stats_standard_deviation($items);
return round($standard_deviation,2);
}所有的帮助都将不胜感激。
谢谢!
发布于 2016-09-18 07:08:58
正如评论所说,您的系统中没有安装PECL包,请查看here进行安装。
但是,如果您无法安装,或者您不想安装,您可以使用此功能
function std_deviation($arr){
$arr_size=count($arr);
$mu=array_sum($arr)/$arr_size;
$ans=0;
foreach($arr as $elem){
$ans+=pow(($elem-$mu),2);
}
return sqrt($ans/$arr_size);
}https://stackoverflow.com/questions/21885150
复制相似问题