1. Куча / Говнокод #4946

    +131

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 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

    Комментарии (3) RSS

    • Matlab это свежо. Наверное, еще на гк.ру не было = )
      Ответить
      • Дык вот начал знакомиться с языком и "набором исследовательских библиотек".
        Боюсь как бы не оказаться постоянным поставщиком гк.
        Ответить
    • vanished
      Ответить

    Добавить комментарий