Определить, находится ли значение в пределах% от другого значения - PullRequest
0 голосов
/ 26 сентября 2018

Предположим, у меня есть два вектора:

a = [1,2,3]
b = [0.5,3,8]

Существует ли оператор if, который может проверить, находится ли a(i) в пределах 5% от b(i), а не отдельно проверять, что он большечем b(i) + 5% или меньше чем b(i) - 5%.

Я ищу что-то вроде:

if(a(i) = abs(5% of b(i)))
   do so and so
else 
   break;

1 Ответ

0 голосов
/ 26 сентября 2018

Чтобы определить, находятся ли значения в a в пределах 5% от значений в b, вы можете просто вычислить относительную разницу:

d = (a-b)./b;

и определить, меньше ли эта разница по величинечем 0,05 (== 5%):

index = abs(d) < 0.05;

Элементы index имеют значение true, если разница между a и b составляет менее 5% от значения b.Таким образом, index(i) истинно, если a(i) находится в пределах 5% от b(i).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...