我想將0
內的數組重新縮放到n-1
,其中n
是數組中唯一元素的數量。例如,如果陣列有4個這樣的獨特的元素:如何根據其獨特元素重新縮放數組?
array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6]
那麼輸出將被內0
重新縮放到3
。因此,對於上述陣列,它將是:
output =[0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 3; 3]
如何做到這一點?
我想將0
內的數組重新縮放到n-1
,其中n
是數組中唯一元素的數量。例如,如果陣列有4個這樣的獨特的元素:如何根據其獨特元素重新縮放數組?
array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6]
那麼輸出將被內0
重新縮放到3
。因此,對於上述陣列,它將是:
output =[0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 3; 3]
如何做到這一點?
如果要將每個唯一值從0替換爲唯一值的總數減1,並按它們首次出現在數組中的順序進行標記,則可以使用函數的第三個輸出unique
像這樣:
array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6];
[~, ~, label] = unique(array, 'stable');
label = label-1;
label =
0
0
0
1
1
1
1
2
2
2
3
3
親愛的@gnovice我有這個錯誤!錯誤使用單元格/唯一(第85行) 輸入A必須是字符串的單元數組。 Error(in line 68) [〜,〜,index] = unique(array,'stable'); –
你真棒!謝了哥們 –
你只想把每個元素除以2? – gnovice
從'0'到***' 2' ***?究竟如何?例如,如果我的數組是[0; 0; 0; 0],那麼你期望的數組的最後3個元素是***'3' ***(不是從0到2) –
親愛的@ gnovice。 3; 3; 7; 7; 7; 7]。期望的輸出將是0 0 0 1 1 2 2 2 2只是重新排列陣列 –