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

17 visualizzazioni (ultimi 30 giorni)
%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

Risposte (1)

KALYAN ACHARJYA
KALYAN ACHARJYA il 2 Ott 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 Commenti
Serena Simpson
Serena Simpson il 2 Ott 2020
Modificato: Serena Simpson il 2 Ott 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 il 10 Ago 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

Accedi per commentare.

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by