我遇到了这个问题,即这些数字的传播没有在 matlab 中返回正确的值。
https://docs.google.com/spreadsheets/d/1jOPRVZR_XJ-v1nEEvuMfzoJOh702A4wg/edit#gid=1868814066
=MEDIAN (A1:A34)
告诉我-.380905
哪个是正确的。
A=[-0.264, 0.4459, -0.49781, 1.77666,-0.55638,0.87174,-0.68504,0.92835,-0.80581,-0.87505,0.39111,-0.76054,-0.68987,1.60776,-0.19637,1.13956,1.53606,-0.08254,0.12186,0.08428,0.61663,-1.47958,2.28422,-0.80891,-0.55738,0.2238,-0.93291,0.3791,-0.63074,2.14683,-1.49948,1.21954,-0.79734,-0.51303,-1.0687,-0.61345,-1.02592,-0.87653,0.444]
M = median(A)
返回
M = -0.2640
。我在 MATLAB 中做了这个计算,但结果是错误的。
编辑:我发现这个计算在 excel 中是正确的,但在 Matlab 中是错误的。看来 Matlab 只会在偶数数组中选取两个中间数字中的一个。
答案1
返回 M = -0.2640 我在 matlab 中做了这个计算。
您的值有偶数个,因此中位数可能会有不同的解释
- Excel 只取中间两个项的平均值(这也是我在其他工具中看到的做法)
- matlab 会给出一个中间值,但由于有偶数值,所以不存在确切的中间值
答案2
为了扩展@Máté Juhász 的答案,这里使用 Median 函数时的注意事项之一:
如果集合中的数字个数为偶数,则
MEDIAN
计算中间两个数字的平均值。请参阅示例中的第二个公式。
你有 34 个数字。按顺序排列后,中间的两个数字是-0.49781
和-0.264
。它们的平均数是:
(-0.49781-0.264)/2=-0.380905
因此,Excel 给出了备注中所述的正确答案。
正如@Máté Juhász 所说,使用 Matlab 时,您只能得到中间一个数字作为答案。
答案3
您的示例有 39 个值,因此排序后中间的值是 -0.2640。Matlab 犯了如此严重的错误,真是太糟糕了。