Вы можете хранить входную информацию вдоль полученного вектора.
a = zeros(45, 1);
pair = 1;
I = a;
J = a;
for i = 1:9
for j = (i+1):10
I(pair) = i;
J(pair) =j;
a(pair) = i * j;
pair = pair + 1;
end
end
res=[a,I,J];
Затем с помощью функции сопоставьте входные значения с данной парой, используя допуск для значений с плавающей запятой.
function Val = findVal(res,pair)
#pair = [i,j]
pairs = res(:,2:3);
ind = sum(abs(pairs-pair)<1e-6,2)==2;
if sum(ind) == 0
disp('No match found')
Val = NaN
else
Val = res(ind,1);
disp('pair')
disp(pair)
disp('value')
disp(Val)
end
endfunction
Теперь я генерирую две пары, одна из которых находится в набореи другой, который не показывает использование функции.
testpair = res(8,2:3)
badpair = [20,20]
findVal(res,testpair)
findVal(res,badpair)