Мне трудно решить 2 ^ (- 7,8), почему бы не построить график на линейной оси? В моих экспериментах 2-й и 3-й методы были примерно одинаковыми, а последние два - примерно вдвое медленнее, чем методы, на которых они основаны. Интересно посмотреть, как эти сроки меняются от машины к машине. Может также потому, что я использовал больший массив, чем вы имели в вопросе? Бьюсь об заклад, разница во времени зависит от размера данных! В любом случае, спасибо за публикацию этого резюме!

ел бы оптимизировать этот кусок кода Matlab, но пока что мне это не удалось. Я пробовал разные комбинации repmat, sums и cumsums, но все мои попытки, похоже, не дают правильного результата. Я был бы признателен за квалифицированное руководство по этой сложной проблеме.

S=1000; T=10;
X=rand(T,S),
X=sort(X,1,'ascend');
Result=zeros(S,1);
for c=1:T-1
    for cc=c+1:T
        d=(X(cc,:)-X(c,:))-(cc-c)/T;
        Result=Result+abs(d');
    end
end

В основном я создаю 1000 векторов из 10 случайных чисел, и для каждого вектора я рассчитываю для каждой пары значений (скажем,mй иnth) разница между ними, минус разница (н-м). Я суммирую возможные пары и возвращаю результат для каждого вектора.

Я надеюсь, что это объяснение понятно,

Заранее большое спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос