EXCELまたはMATLABで、配列を[1 2 6 12 13 15 20 83031]の範囲[123 4 5 6 7 8910]に変換します。それを行う機能はありますか?このタイプの任意の範囲を明確な範囲に変換するための提案はありますか?
質問する
298 次
2 に答える
0
MATLABのソリューション
MATLABではunique
、トリックを行うことができます。例えば:
A = [1 1 1 1 4 4 5 3 3 6 6 6 6 8]
[C, ia, ic] = unique(A);
ic
これで、探している値が保持されます。
ic =
1 1 1 1 3 3 4 2 2 5 5 5 5 6
ic
また、必要に応じて、新しい注文に再マッピングすることもできます。たとえば、あなたが提案したものと同様の新しい注文があります:
new_order = [1 3 2 4 6 5];
ic_new = new_order(ic);
これにより、次のようになります。
ic_new =
1 1 1 1 2 2 4 3 3 6 6 6 6 5
お役に立てば幸いです。
于 2012-10-31T09:03:44.663 に答える
0
Matlabの場合:
v = [1 2 6 12 13 15 20 8 30 31];
v_index = 1:length(v);
于 2012-10-30T23:52:04.243 に答える