give number to sequence

1 回表示 (過去 30 日間)
Jay Hanuman
Jay Hanuman 2016 年 12 月 30 日
編集済み: Jay Hanuman 2016 年 12 月 30 日
I have sequence
a=[17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
I want to do that give numbering to sequence starting from 1 i.e.minimum value is 12 so give it 1 then next value greater than 12 is 17 so give it 2 likewise so
a = [17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
a1 = [2 7 5 1 1 10 11 6 8 8 4 10 1 5 7 2 8 9 12 13 3]
how to do this.

採用された回答

Image Analyst
Image Analyst 2016 年 12 月 30 日
Here's one semi-vectorized way:
a=[17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
uniquea = unique(a)
labels = 1 : length(uniquea)
for k = 1 : length(a)
index = find(a(k) == uniquea);
a1(k) = labels(index);
end
  3 件のコメント
Image Analyst
Image Analyst 2016 年 12 月 30 日
My code gives
a1 =
Columns 1 through 17
2 7 5 1 1 10 11 6 8 8 4 10 1 6 7 2 8
Columns 18 through 21
9 12 13 3
Tell me which elements are not in the same order as the a1 you gave, which is a1 = [2 7 5 1 1 10 11 6 8 8 4 10 1 5 7 2 8 9 12 13 3]
I'm just not seeing any difference between my output and yours so I need you to point it out to me. Which indexes are bad?
Jay Hanuman
Jay Hanuman 2016 年 12 月 30 日
編集済み: Jay Hanuman 2016 年 12 月 30 日
sorry, it gives right result, I didn't saw clearly, Thank You.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by