2013-02-11 7 views
-1

Я новичок в MATLAB. Я хочу решить следующее двойное суммирование, обозначенное как «A».Двойная сумма серии в Matlab

A= sigma(j=1..n)sigma(k=1..m)x1_ik((x2_ijk - x3_ij(k-1))^2) 

Я не понимаю, что цикл - это хороший способ решить решение или что-то еще. Кажется, что Matlab не имеет встроенной функции для двойного суммирования. Что я использую для двойного суммирования:

sum2=0; 
    for i=1:10 
     for j=1:10 
     sum2=sum2+(i*j); 
     end 
    end 

Спасибо за помощь.

ответ

1

Векторизованный код часто быстрее в Matlab. Ваша петля может быть пронумерована так:

vec1 = 1:10; 
vec2 = 1:10; 

mat1 = repmat(vec1',1,length(vec2)); 
mat2 = repmat(vec2,length(vec1),1); 

sum(sum(mat1.*mat2)) 
Смежные вопросы