私は10×10の値の配列A
を持っています。これらの値のうち、中央値、M
が必要です。私は簡単に行に沿ってまたは列に沿って中央値を見つけることができます。MATLABの多次元配列(1次元ではない)の中央値
M = median(A,1) %or
M = median(A,2)
しかし、M = median(A)
も行に沿って中央値を返します。
どのようにすべての値の単一の中央値を見つけることができますか?私は非常に長いベクターに配列を変換することができますが、それは不愉快で非効率なようです。よりシンプルなソリューションはありますか?私は多次元配列に対してもこれを行うことができるようにしたいと考えています。
ありがとうございます!
行列を単一ベクトルに変換することは、MATLABで実行できる**最も高速な**演算の1つです。 MATLABのメモリはカラムメジャー順に並べられていますので、実際に複数のディメンションアクセスインデックスを使用して正しいメモリロケーションを取得することは、単一のインデックスを持つエレメントに多次元でアクセスするための構文上の砂糖です。下のLuisの提案は、行列を長いベクトルに展開して中央値を実行するというものです。それ以上の速度を得ることはできません。 – rayryeng
パーフェクト!私は変換に時間がかかることを過大評価しました。ありがとう! – Takver
Luisの回答を受け入れると、コミュニティはあなたにもう助けが必要ではないことを知らせてください。 – rayryeng