sum within the elements of a vector

2 次查看(过去 30 天)
Hello,
Suppose you have the following 1xn vector:
v=[(1,1),(1,2),...,(1,n)]
How the sum of the elements (each other) is calculated?
For example,
The sum of first element with the others
{[(1,1)+(1,2)} {(1,1)+(1,3)} {(1,1)+(1,4)} . . . {(1,1)+(1,n)}
The sum of second element with the others
{(1,2)+(1,3)} {(1,3)+(1,4)} . . . {(1,2)+(1,n)}
and so on.
The sum {(1,1)+(1,2)} is the same with the {(1,2)+(1,1)} and should only considered once.
Also the sum of an element with itself, shouldn`t be taken into account.
Thank you.
Best,
Pavlos

采纳的回答

Oleg Komarov
Oleg Komarov 2012-2-29
v = 1:10;
out = bsxfun(@plus,v,v');
EDIT make diagonal elements = 0
[r,c] = size(out);
out(1:r+1:r*c) = 0;
  1 个评论
pavlos
pavlos 2012-2-29
Thank you for your response.
My mistake: The sum between {(1,1)+(1,2)} and {(1,2)+(1,1)} should be considered,
while the sum of an element with itself should not .
That means that only the main diagonal of the matrix has zeros.
Any help please?
Thank you.
Best,
Pavlos

请先登录,再进行评论。

更多回答(1 个)

Sean de Wolski
Sean de Wolski 2012-2-29
Edit
x = 1:5;
M = bsxfun(@plus,x',x);
M(1:size(M,1)+1:end) = 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