MATLAB: How we can program ring topology

MATLAB

hi.
i want to write a program in which i have a series of variables
x=[x1 x2 x3 x4 x5]
the neighbors of x1 are x2 and x5, for x2 (x1 and x3) for x3 (x2 and x4) for x4 (x3 and x5) for x5 (x4 and x1).
how i program this for sharing of information. means every variable compare its value to its adjacent variable. if any of both have larger value then replaced larger value with by its own value kindly help me.

Best Answer

Mudsair - it seems that you just need some kind of "sliding window" to operate on your array. For example, you could do the following assuming that that x is your input array
for k=1:length(x)
% get the left and right indices of k to do the comparison
if k==1
idxLeft = length(x);
idxRight = k+1;
else if k==length(x)
idxLeft = k-1;
idxRight = 1;
else
idxLeft = k-1;
idxRight = k+1;
end
% now compare
if x(k) > x(idxLeft)
% do something

end
if x(k) > x(idxRight)
% do something
end
end
The do something part is up to you. Should x be updated directly, or should you update a copy of x?