matlab - 确定一个值是否在另一个值的某个百分比范围内
问题描述
假设我有两个向量:
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;
解决方案
要确定 中的值是否在a
中的值的 5% 以内b
,您可以简单地计算相对差:
d = (a-b)./b;
并确定该差异的大小是否小于 0.05 (== 5%):
index = abs(d) < 0.05;
的元素index
在a
和的差b
小于 的值的 5% 时为真b
。也就是说,index(i)
如果a(i)
在 的 5% 以内,则为真b(i)
。
推荐阅读
- regex - 特定字符串的正则表达式,后跟一个数字
- jackson - GSON有没有办法将空和缺失的属性引入GSON中的“”并将“”/空返回到缺失的属性?
- git - Git push origin master to remote repo 要求输入密码三次,但什么也没做
- node.js - 使用 Axios 从 Firestore 获取实时数据
- javascript - 将类函数绑定到 HTML DOM 元素
- c++ - 如何在mac os上用c ++连接到MySQL?
- python - 分组相同的值python
- javascript - 等到 Cypress 中的响应体发生变化
- android - 无法创建 Firebase 实时数据库
- lucene - Lucene 正则表达式查询