How to find the index of the variable in my For Loop when a condition is met
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Serena Simpson
am 2 Okt. 2020
Bearbeitet: Asad (Mehrzad) Khoddam
am 2 Okt. 2020
I wrote code that itterates element by element of the array 'nr'. Nr has 1000 random numbers. I want to display when two of those random numbers are of the same value, and adjacent. I think that works. I then tried to find the index of the value when it meets the condtion, but it doesnt work. I'm pretty stuck, does anyone have any tips?
for i = 1:length(nr)
if (nr(i)==nr(i+1)) %if a element in the array nr is equal to the
% element above it, then it meets the condition
fprintf("%d is adjacent to a number of equal value", i)
find(nr == i)
end
if i == 1000
break
end
end
0 Kommentare
Akzeptierte Antwort
Asad (Mehrzad) Khoddam
am 2 Okt. 2020
[~,ind] = find(diff(nr)==0)
% print indices
for i = ind
fprintf("%d is adjacent to a number of equal value\n", i)
end
0 Kommentare
Weitere Antworten (1)
Asad (Mehrzad) Khoddam
am 2 Okt. 2020
Use
[nf, ind] = find(nr == i);
ind contains the index with the given condition
2 Kommentare
Asad (Mehrzad) Khoddam
am 2 Okt. 2020
Bearbeitet: Asad (Mehrzad) Khoddam
am 2 Okt. 2020
inseat of loop use:
[~, ind] = find(diff(nr)== 0);
disp(ind)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!