Matlab问题 - 找到最接近平均值的值

时间:2016-06-22 08:49:27

标签: matlab

我目前在大学时必须做的一些Matlab练习有些问题。也许你可以帮忙。

有一个大约100个数字的数组x,我现在必须找到一个最接近数组平均值的数字。 我不知道怎么做 - 你能帮助我吗?

3 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题,首先要说你有一个长度为100的向量:

 A = randi(100,1,100); %generate 100 random ints
 Mu = mean(A) %mean of A

 %for example - subtract by mean and take abs
 B = abs(A-Mu); 
 [C idx] = min(B); %index of closest value
 result = A(idx);  %closest value


 %Another method perhaps:
 [sortA indA]= sort(A); %sort A
 [N,bin]=histc(Mu,sortA); %use histc to find the bin closest
 index=bin+1; 
  if abs(Mu-sortA(bin))<abs(Mu-sortA(bin+1))

    fclosest=sortA(bin)
    index=bin;
  else
    fclosest=sortA(index)

  end

答案 1 :(得分:1)

  1. 定义阵列A
  2. 对定义的数组A
  3. 求和
  4. 求平均值=总和(A)/长度(A)
  5. 找出差异=平均值 - A(i)%使用循环
  6. 找出差异的最小值= min(差异)
  7. 在数组中找到上面第5步的位置会给你答案..
  8. 这是一个非常简单的问题!希望这会有所帮助,......

答案 2 :(得分:0)

这不是一个很难的问题,现在是吗?使用mean - 命令搜索平均值。现在计算数组和均值之间的差异,并使用

确定最小值
    [min_value, index] = min(abs(difference));