私はMatlab 2012aを使用しています。配列のn個の最小値を見つける
私はk個のセル(たとえば1000個)の配列を持っています。この配列の5つの最低値を見つける必要があり、XとYの値の平均値を計算する必要があります。
誰でも知っていますか?あなたは配列XとYを持っている、とあなたは5つの、最も低いY値を見つけたいと仮定すると、
私はMatlab 2012aを使用しています。配列のn個の最小値を見つける
私はk個のセル(たとえば1000個)の配列を持っています。この配列の5つの最低値を見つける必要があり、XとYの値の平均値を計算する必要があります。
誰でも知っていますか?あなたは配列XとYを持っている、とあなたは5つの、最も低いY値を見つけたいと仮定すると、
:
[m mi] = sort(Y);
lowest5index = mi(1:5);
lowest5Y = Y(lowest5index);
lowest5X = X(lowest5index);
meanYlowest5 = mean(lowest5Y);
meanXlowest5 = mean(lowest5X);
説明:二つの出力パラメータを持つ
sort
コマンドは、ソートされた配列(中の両方を返しますm
)と、元の配列のインデックス(mi
)を使用します。最初の5つのインデックスmi(1:5)
は5つの最低値に対応します。 XとYの両方についてこれらの値のmean
を取ることは、私たちが望むことをするでしょう。私があなたの問題の声明を理解できなかった場合は、あなたの質問を明確にしてください。
配列のsort
を最低値から最高値にして5つの最初の値を選択する方法はどうですか?それらは配列の5分の値になります。その後、これらの5つの値の平均を実行します。
これはメモリを効率的に使用する方法ではないかもしれませんが、1000個の値を入力するとジョブが完了します。
希望すると助かります!
使用に特別にこの問題のために最適化されていminmaxselection
MATLAB MEXパッケージ、:
a = [2,3,4,7,56,4,21, 64, -2];
mink(a, 2)
<< ans =
<< -2 2
mink(a,4)
<< ans =
<< -2 2 3 4
はそれを行うためのアルゴリズムについてのご質問はありますか?どのようなプログラミング言語を使用していますか? – Alex
私は編集しました。私はMatlab 2012aを使用しています – Vissenbot
あなたのデータの構造は何ですか?あなたは "配列"と "細胞"と "X"と "Y"と言います。私はあなたが配列XとYを持っていると仮定して答えを作成しましたが、あなたの質問を再読します。私は実際にあなたが何を持っているのかわかりません。 – Floris