如何在matlab中比较两个数组?

时间:2013-07-16 14:40:11

标签: arrays matlab comparison

我有一个像x的数组,我想做一些工作并将结果放入新数组y。然后我应该比较这两个。如果它们是相同的(即它们可能有点不同)那就没问题,算法结束,否则我应该继续迭代 问题是比较这两个。 它们是一个带有未知元素的两个二维数组。 我做了两种不同的方式,但没有一种方法可以: 第一种方式:

d = x - y
if d < 5 
   disp('end')
end

等等 但它不能很好地运作,老实说它根本不起作用 我使用的另一种方式是:

isequal(x,y)

虽然它们是相同的但它会返回0但是如果它们不是,即使有一点差别,结果将是1并且它不正确因为我说算法应该考虑litlle差异并停止迭代 我该怎么办?

2 个答案:

答案 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,则终止迭代。