# How to iterate through an array to check for adjacent elements that are equal to one another using loops.

48 views (last 30 days)
Serena Simpson on 2 Oct 2020
Edited: Serena Simpson on 2 Oct 2020
%This loads the file and allows us the work with the 'nr' varible
%Varible for vector one. This vector will display all the indices of the
%elements meeting the condition
%V1 = nr;
%position one and position two in the array 'nr'
p1 = sym(nr(:,1));
p2 = sym(nr(:,2));
%Varible for vector two. This vector will display all of the values of the
%elements that meet the condition
%V2 = nr;
%% Section 2: Processing
%Loop to find the values for V2
for i = 1:1:1000
if p1 == p2
disp(p1)
disp(p2)
end
p1 = sym(nr(:, +1)); %I want p1 and p2 to be reassinged to the next
%element in the array 'nr'. 'nr' contains 1000 elements. I want the loop to
%check if adjacent elements in my loop are equal. For example if nr was
%equal to [1, 2, 2, 3], I would want it to display: '2' '2', at indices 2
%and 3.
p2 = sym(nr(:, +1));
end
KALYAN ACHARJYA on 2 Oct 2020
Can you share sample example rather that the mat file?

KALYAN ACHARJYA on 2 Oct 2020
"How to iterate through an array to check for adjacent elements that are equal to one another using loops"
Here a is an 1D array here
idx=zeros(1,length(a));
for i=1:length(a)
switch i
case 1
if a(i)==a(i+1)
idx(i)=1;
end
case length(a)
if a(i)==a(i-1)
idx(i)=1;
end
otherwise
if a(i)==a(i-1) || a(i)==a(i+1)
idx(i)=1;
end
end
end
idx
##### 2 CommentsShowHide 1 older comment
Serena Simpson on 2 Oct 2020
Thank you! I used a case switch in my program and it did work. I was trying to force it with while and if then loops. A switch makes more sense.

### Community Treasure Hunt

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

Start Hunting!

Translated by