Поскольку я слышал, что в Matlab зацикливается общее плохое, я пытаюсь процитировать мой код.Как «векторизовать» corrcoeff в Matlab?
У меня есть следующий код:
for dp_point = 1:useDPs
cc = corrcoef(Traces(:,dp_point), hws(:,dp_point));
delta(dp_point) = cc(2);
end;
Это создает матрицу дельты с размером 1 х useDPs, где useDPs идет до 1.000.000
Он вычисляет коэффициент корреляции для каждого столбца и сохраняет его в delta, поэтому его очень длинный цикл, и я бы хотел его оптимизировать для Matlab.
Что я пробовал:
delta = corrcoef(Traces(:,1:useDPs), hws(:,1:useDPs));
Но это создает 2 х 2 матрицы (она вычисляет корбанк коэфф из целых матриц, а не для каждого столбца). Таким образом, это, очевидно, неправильная попытка.
Так что мой вопрос в том, можно ли «векторизовать» (или иным образом оптимизировать) этот цикл вообще?
Попробуйте на небольшом подмножестве и сообщите нам, как это происходит. –
Это также может помочь прочитать документы. Например, введите 'doc corrcoeff' в командной строке. –
Что мне делать? Мой «могу я написать что-то подобное», очевидно, не работает. –