Beregninger for tunge ved to for løkker
HejJeg benytter to for-løkker i min kode til at tjekke, hvilke elementer i to vektorer (arrays) som er ens, men det tager dog lige lovlig langt tid. Kan man gøre noget mere effektivt? Programmet laves i matlab, men jeg håber ikke, dette afholder jer fra at kigge på det (det ligner trods alt de fleste andre sprog). Eneste funktion, som nogle af jer nok ikke kender er "find", men den finder blot de pladser i en matrix, hvis elementer er lig med noget. Men dette kan dog være ligegyldigt, da det blot er selve det at finde de værdier, som både er i den ene vektor (søjle rettere sagt) og den, som skal findes. Her er koden:
% Sætter Outputtet til at være en tom variabel.
MuligeSensorer = [];
% Går alle igennem i Kendt.
for i = 1:length(Kendt)
% Går for hver af disse alle igennem i Naboer.
for j = 1:length(Naboer)
% Tjekker at de to elementer er lig hinanden, og at elementet ikke svarer til et kendt
% punkt. Og tilføjer i så fald elementet (j,2) til output-matricen.
if Naboer(j,1) == Kendt(i,1) && ...
length(find(Kendt == Naboer(j,2))) == 0
MuligeSensorer = [MuligeSensorer; Naboer(j,2)];
end
end
end;