【发布时间】:2016-09-26 09:02:09
【问题描述】:
我有一个 10 x 10 的值数组,A。我需要所有这些值的中位数M。我可以很容易地找到沿行或沿列的中位数:
M = median(A,1) %or
M = median(A,2)
但是,M = median(A) 也返回沿行的中位数。
如何找到所有值的单个中值?我知道我可以将数组转换为一个非常长的向量,但这似乎令人不快且效率低下。有没有更简单的解决方案?我也希望能够对多维数组执行此操作。
谢谢!
【问题讨论】:
-
将矩阵转换为单个向量是您可以在 MATLAB 中执行的最快操作之一。请记住,MATLAB 中的内存是按列优先顺序排列的,因此实际上使用多维访问索引来获取正确的内存位置是多维访问具有单个索引的元素的语法糖。 Luis 的以下建议是将矩阵展开成一个长向量并执行中位数......你不能更快地得到它。
-
完美!我高估了转换的耗时。谢谢!
-
请接受 Luis 的回答,让社区知道您不再需要帮助。
标签: arrays matlab multidimensional-array median