если у меня есть данный массив, скажем:
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);
это дает мне результат, который я ищу, однако он кажется немного «хакерским», а вовсе не «матлабби».. может кто-нибудь предложить, как я могу улучшить этот код?