How to iterate through an array to check for adjacent elements that are equal to one another using loops.
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
%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
1 Kommentar
Antworten (1)
KALYAN ACHARJYA
am 2 Okt. 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 Kommentare
Ron Fredericks
am 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
Siehe auch
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!