sum of a product with i differnt to j

5 views (last 30 days)
Hi All,
I want to calculate a sum of a product as following:
I think my problem is quite relative to this topic: Double sum of a product, but in my case I have j ~= i.
I think something like that should work:
t = 1:100;
n = 10;
a = randn(n,1);
P = [];
for i = 1:n
F = [];
for j = 1:n
if j~=i
f = (a(j)-a(i))^n*t;
F = [F,f'];
end
end
p = prod(F,2);
P = [P,p];
end
res = sum(P,2);
But I feel that this solution is not good and something easier should exist?
Thanks a lot,
M.

Accepted Answer

Matt J
Matt J on 7 Feb 2019
Edited: Matt J on 7 Feb 2019
Something like this, perhaps,
A=a(:)-a(:).';
A(1:n+1:n^2)=1; %nullify i==j
f=sum(prod(A,2).^n)*t;
  2 Comments
MichMichel
MichMichel on 7 Feb 2019
Great thanks a lot it is working well.
Matt J
Matt J on 7 Feb 2019
You're welcome, but please Accept-click the answer to certify that it addressed your question.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!