+131
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
orig_labels = sort(unique(Y));
Y_new = Y;
new_labels = 1:length(orig_labels);
for i=1:length(orig_labels)
Y_new(find(Y==orig_labels(i)))=Inf;
Y_new(isinf(Y_new))=new_labels(i);
end
Y = Y_new;
Matlab. Масштабирование. То есть типа вектор [100 230 400 300 230] переводится в [1 2 4 3 2].
Можно было сделать внутри цикла "Y_new(Y == orig_labels(i)) = i".
Побочным эффектом стало то, что если Y имеет элементы с типом не double, а int32 к примеру, то Inf превращается в maxint32, проверка isinf() возвращает false и код внезапно не работает.
Запостил: burdakovd,
16 Декабря 2010
Lure Of Chaos 16.12.2010 15:03 # +2
burdakovd 16.12.2010 15:10 # 0
Боюсь как бы не оказаться постоянным поставщиком гк.
CkpunmoBbIu_nemyx 25.08.2021 17:55 # 0