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

17 views (last 30 days)
%This loads the file and allows us the work with the 'nr' varible
load("m05.mat")
%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

Answers (1)

KALYAN ACHARJYA
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
  3 Comments
Serena Simpson
Serena Simpson on 2 Oct 2020
Edited: 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.
Ron Fredericks
Ron Fredericks on 10 Aug 2024
Fun fact: if numbers to compare were floats instead of integers. The if statements could use ismembertol function instead of equals comparison. I reused this nice bit of code shared by @KALYAN ACHARJYA for graphics zoom error test. Sample code change :
if ismembertol(a(1), a(2))
% ...
end

Sign in to comment.

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!