首页 > 解决方案 > 确定一个值是否在另一个值的某个百分比范围内

问题描述

假设我有两个向量:

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;

标签: matlabif-statement

解决方案


要确定 中的值是否在a中的值的 5% 以内b,您可以简单地计算相对差:

d = (a-b)./b;

并确定该差异的大小是否小于 0.05 (== 5%):

index = abs(d) < 0.05;

的元素indexa和的差b小于 的值的 5% 时为真b。也就是说,index(i)如果a(i)在 的 5% 以内,则为真b(i)


推荐阅读