Я пытаюсь выполнить стандартное отклонение с помощью PHP.
Я использовал эту функцию, которую я основал там, потому что stats_standard_deviation не кажется надежным
<?php
class TestController extends \BaseController {
function MyFunction() {
$array = array('1','2','3','4');
function sd_square($x, $mean) { return pow($x - $mean,2); }
function sd($array) {
return sqrt(array_sum(array_map("sd_square", $array, array_fill(0,count($array), (array_sum($array) / count($array)) ) ) ) / (count($array)) );
}
} return sd($array)
} ?>
Проблема в том, что он возвращает мне array_map() expects parameter 1 to be a valid callback, function 'sd_square' not found or invalid function name
, когда я пытаюсь его использовать.
Глядя на какой-то пост здесь, я попытался изменить "sd_square"
на "self::sd_square"
или array($this, "sq_square")
.
sd_square()
на самом делеTestController::sd_square()
, и поэтому вы должны использовать его как обратный вызов, например:array_map(array('TestController', 'sd_square'), ....)
Дополнительные примеры находятся в Документация PHP по обратным вызовам - person Michael Berkowski   schedule 09.12.2013sd_square
тоже находится внутриMyFunction
. Я не думаю, чтоTestController::sd_square()
прав - person jon_darkstar   schedule 09.12.2013array($this, "sd_square")
? Вы написали, что пробовалиarray($this, "sq_square")
!? - person l-x   schedule 09.12.2013()
в конце, может быть? =П - person jon_darkstar   schedule 09.12.2013array($this, "sd_square")
, и это возвращает мне неопределенную переменную. - person Wistar   schedule 09.12.2013MyFunction
- person Wistar   schedule 09.12.2013