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

时间:2016-05-27 22:50:49

标签: arrays matlab multidimensional-array median

我有一个10 x 10的值数组M。我需要所有这些值的中位数M = median(A,1) %or M = median(A,2) 。我可以轻松地沿着行或沿着列找到中位数:

M = median(A)

但是,{{1}}也会沿着行返回中位数。

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

谢谢!

1 个答案:

答案 0 :(得分:6)

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

M = median(A(:));

我不认为使用(:)进行索引需要任何内存重新分配。它只是以column-major顺序读取数组。