MatLab перемножить матрицы

ANATOL54

 помогите плиз..
суть проблемы:
есть 2-е матрицы А и В.. нада от каждого элемента А отнять каждый элемент В, по отдельности это возвести в квадрат и сложить..
нечто вроде Инт(ИнтА. - В.)^2

okunek

Сообщение удалил

ANATOL54

спасиба.. ща попробую..:)

lipid107

неа...
не так..
я только что матрицу в эксэле посчитал..
не получается..

Neo69

Что сложить и что возвести в квадрат?

ANATOL54

есть матрица А(m,n) и B(i,j)..
нада каждый элеменент А отнять каждый элемент В..
возвести в квадрат каждую такую разность и сложить все такие квадраты разности..

Neo69

sum=0;
for m=1:M
for n=1:N
for i=1:I
for j=1:J
sum=sum+(A(m,n)-B(i,j^2;
end
end
end
end

Neo69

Тупо, но по моему работает.

ANATOL54


да... теперь хорошо...
спасиба!

Neo69

Пажалуста.

Vladu

sum=0;
for m=1:M
for n=1:N
for i=1:I
for j=1:J
sum=sum+(A(m,n)-B(i,j^2;
end
end
end
end
Так немножко лучше
s = 0.0;
for q=1:numel(A)
s = s + sum( reshapeA(q) - B).^2, [], 1) );
end

Но риал Matlab вей, думаю, это

sum( (A( kron(1:numel(A ones(1,numel(B - ...
B(repmat(1:numel(B 1, numel(A.^2 )

Но, к сожалению, тут создаются очень большие матрицы индексов, зато векторизовано

Vladu

есть матрица А(m,n) и B(i,j)..
нада каждый элеменент А отнять каждый элемент В..
возвести в квадрат каждую такую разность и сложить все такие квадраты разности..
Хм...Всилу очевидного факта

можно посчитать так

A = magic(5);
B = magic(6);
s = numel(B)*sum(A(:).^2) - 2*sum(A(.*sum(B( + numel(A)*sum(B(:).^2)
Оставить комментарий
Имя или ник:
Комментарий: