我有一个像x的数组,我想做一些工作并将结果放入新数组y。然后我应该比较这两个。如果它们是相同的(即它们可能有点不同)那就没问题,算法结束,否则我应该继续迭代 问题是比较这两个。 它们是一个带有未知元素的两个二维数组。 我做了两种不同的方式,但没有一种方法可以: 第一种方式:
d = x - y
if d < 5
disp('end')
end
等等 但它不能很好地运作,老实说它根本不起作用 我使用的另一种方式是:
isequal(x,y)
虽然它们是相同的但它会返回0但是如果它们不是,即使有一点差别,结果将是1并且它不正确因为我说算法应该考虑litlle差异并停止迭代 我该怎么办?
答案 0 :(得分:2)
如果5
是一个OK阈值,那么这应该有效:
d=abs(x-y);
if all(d<5)
disp('end')
end
如果您不知道阈值是多少,那么这是一个非常不同的问题。确定合理的阈值取决于您的应用程序,并且通常需要权衡 - 如果您的数据是可变的,则可能没有“正确”的答案。查看一些基本统计信息 - zscore
命令可能是一个有用的开始。
答案 1 :(得分:0)
检查差异向量的另一种方法是在MATLAB中使用“find()”函数。作为诺兰,我认为你最好使用差异的绝对值。
idx = find(abs(a-b)>threshold)
将为您提供超过阈值的指数。如果为null,则终止迭代。