2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 [Matlab] Оптимизация кода
Сообщение11.05.2013, 10:51 
Здравствуйте.

Написал код в Matlab, где надо вычислять начальные моменты матрицы $G = [g_1,g_2,...,g_m]$, где $g_i$ - столбцы. Для этих столбцов необходимо вычислить такую штуку:

Код:
K = zeros(m,m,m,m);
for l = 1:m
    for k = 1:m
        for i = 1:m
            for j = 1:m
                K(i,j,k,l) = sum(g(:,i) .* g(:,j) .* g(:,l) .* g(:,k));
            end
        end
    end
end


Можно это как-то векторизировать, так как работает медленно для больших векторов $g$? Спасибо!

 
 
 
 Re: [Matlab] Оптимизация кода
Сообщение06.08.2013, 09:25 
Аватара пользователя
1) Вероятно, вместо поэлементного перемножения быстрее будет отрабатывать prod()
2) Конечно, можно потом и векторизировать - главное не запутаться в порядке индексов. Честно говоря, отлаживать с четырёхмерным массивом лень
3) Не используйте в качестве индексов $i, j$ (они зарезервированы для мнимой единицы) и $l$ - она визуально неотличима от $1$

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group