一、中位數介紹
中位數,顧名思義,即為一組數據中的中間值,它可以表示為將一組數據從小到大進行排序後,位於中間位置的數。在統計學中,中位數是劃分數據為兩部分的一個值。在實際應用中,中位數更加穩健,即更能夠代表一組數據的中心值。
二、MATLAB中求中位數的函數
1、median函數
arr = [1 3 5 7 9];
med = median(arr);
上述代碼中,median函數可以直接對一個數組求中位數,返回結果為5。
2、prctile函數
arr = [1 3 5 7 9];
med = prctile(arr,50);
prctile函數可以求出一個數組中指定百分位的數值,其中50表示中位數。
3、sort函數
arr = [1 3 5 7 9];
sort_arr = sort(arr);
med = sort_arr(floor((length(sort_arr)+1)/2));
sort函數可以將一個數組排序,而我們可以通過排序後數組的中間位置求出中位數。
三、求解方法講解
以上三種函數均能求解中位數,但其實現原理不同,對於數據量更大的情況,其處理效率也不盡相同。本節就這三種函數的實現方法進行講解。
1、median函數的實現方法
median函數是MATLAB自帶的函數,其實現原理是將輸入的數組排序,並返回排序後的中間位置的元素值。如果數組長度為奇數,則直接返回中間元素的值;如果數組長度為偶數,則返回兩個中間元素的平均值。
2、prctile函數的實現方法
prctile函數是MATLAB自帶的求百分位值的函數,其實現原理是先對數組排序,然後通過下標位置來計算百分位值。對於中位數,其百分位排名為50%。
3、sort函數的實現方法
sort函數的實現方法比較簡單,即將輸入的數組進行排序,然後返回排序後中位置的數值。需要注意的是,如果數組長度為偶數,則需要取中間位置相鄰的兩個數再求平均值。
四、總結
在MATLAB中,通過median、prctile、sort三種函數都可以求解中位數,這三種函數的實現方法不同,適用於不同數據的處理場景。相應地,在實際應用中,應該根據數據量和處理效率來選擇不同的方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185956.html