MATLAB中整个多维数组(不仅仅是一维)的中位数

Tak*_*ver 2 arrays matlab median multidimensional-array

我有一个10 x 10的值数组,A.我需要M所有这些值的中位数.我可以轻松找到沿行或沿列的中位数:

M = median(A,1) %or
M = median(A,2)
Run Code Online (Sandbox Code Playgroud)

但是,M = median(A)也会沿着行返回中位数.

如何找到所有值的单个中位数?我知道我可以将数组转换为一个非常长的向量,但这似乎令人不快和低效.有更简单的解决方案吗?我希望能够为多维数组做到这一点.

谢谢!

Lui*_*ndo 6

首先通过索引进行线性化(:).这会将任何数组转换为列数组.然后计算中位数:

M = median(A(:));
Run Code Online (Sandbox Code Playgroud)

我不认为索引(:)需要任何内存重新分配.它只是按列主要顺序读取数组.