sum of a product with i differnt to j

4 次查看(过去 30 天)
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.

采纳的回答

Matt J
Matt J 2019-2-7
编辑:Matt J 2019-2-7
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 个评论
MichMichel
MichMichel 2019-2-7
Great thanks a lot it is working well.
Matt J
Matt J 2019-2-7
You're welcome, but please Accept-click the answer to certify that it addressed your question.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by