ако имам даден масив, кажете:
a = 0.1333
0.2667
0.0667
0.5333
и искам да намеря стойността, която е най-близка до, но все пак по-малка от:
b = 0.29
какъв е най-добрият начин да направите това? начинът, по който го правя досега, е:
% add extra column for indices and sort by values
A = [(1:length(a))', a];
A = sortrows(A, 2);
% iterate along value column of A
for ii = 1:length(A)
if A(ii,2) < b
continue
else
ii = ii - 1;
break
end
end
% get corresponding value from index column in this case 2
idx = A(ii,1);
това ми дава резултата, който търся, но ми се струва малко "хакерски" и изобщо не "matlabby".. може ли някой да предложи как мога да подобря този код?