我有一個非遞減資料向量。這是一個示例:
1
1
1
2
2
2
2
2
2
2
2
3
3
4
4
6
顯然有重復和缺失的數字。我可以使用 洗掉重復項unique,因此我的唯一值是:
uniqueVals = unique(sortedData);
到目前為止,一切都很好。現在,我想更改資料,以便將 中的值sortedData替換為 中的索引號uniqueVals。例如,uniqueVals前 5 個元素是1,2,3,4,6, 和 indices 1,2,3,4,5。我想更改sortedData以便 1 映射到 1、2 映射到 2、3 到 3、4 到4、6 到 5等等。
我知道我可以創建一個“地圖”物件,但這似乎只是用來映射uniqueVals到它的索引。如何應用該映射以sortedData更改其中的條目?
我不需要這是一個特別快速的操作。sortedData只包含幾十萬行,只需要執行一次。
uj5u.com熱心網友回復:
您可以使用unique的第三個輸出
[uniqueVals,~,yourOutput] = unique(sortedData);
你的輸出 =
1 1 1 2 2 2 2 2 2 2 2 3 3 4 4 5
uj5u.com熱心網友回復:
您也可以使用g = findgroups(sortedData);,它將為您提供組索引,其中每個唯一值有一個組。這個的第二個輸出告訴你值本身
[g, gValue] = findgroups( sortedData );
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/522624.html
標籤:数组matlab
下一篇:Kaiser視窗中的Beta范圍
