Math 表示双向量元素之间的紧密性

Math 表示双向量元素之间的紧密性,math,Math,我有一个双向量: r = -50 + (50+50)*rand(10,1) 现在我希望理想情况下,向量中的所有数字都等于1e-4。我想用一个标量来表示每个r,比如说sr,这样它的值就给出了向量质量的概念。如果向量中的所有元素都相等,则该向量是高质量的。我可以像这样轻松地运行for循环 for i=1:10 for j=i+1:10 check equality upto the tolerance end end 但即使这样,我也无法计算在嵌套for循环中如何分配表示质量的标量。有没

我有一个双向量:

r = -50 + (50+50)*rand(10,1)
现在我希望理想情况下,向量中的所有数字都等于1e-4。我想用一个标量来表示每个r,比如说sr,这样它的值就给出了向量质量的概念。如果向量中的所有元素都相等,则该向量是高质量的。我可以像这样轻松地运行for循环

for i=1:10
 for j=i+1:10
  check equality upto the tolerance
 end
end

但即使这样,我也无法计算在嵌套for循环中如何分配表示质量的标量。有没有更好的方法,在给定任何向量r长度n的情况下,我可以快速计算表示向量质量的标量。

您的双循环算法有点慢,顺序是**2,其中n是向量的维数。这里有一个快速的方法来找到向量元素的接近度,这可以按顺序进行,只需通过元素一次

求向量元素的最大值和最小值。只需使用两个变量来存储到目前为止的最大值和最小值,并在所有元素中运行一次。最大值和最小值之间的差值称为值的最大值,这是一种普遍接受的值。如果值完全相等,则范围为零,显示完美的质量。如果范围低于1e-4,则矢量质量可接受。范围越大,平等性越差

代码对于任何给定的语言都是显而易见的,所以我将把它留给您。如果范围仅考虑向量的两个极值这一事实让您感到困扰,您可以使用其他变量度量,如四分位范围、方差或标准偏差。但是这个范围似乎最适合你的要求