Мне нужно нормализовать вектор из N целых чисел так, чтобы:
Например:
Если у меня есть вектор
V = [2,2,1,0]
, нормализованный вектор должен быть:
V_norm = [0.4,0.4,0.2,0] % 0.4+0.4+0.2 = 1
Я попробовал многие решения, найденные в этом сообществе и в Интернете, и, наконец, я сделал это с помощью этого кода:
part = norm(V);
if part > 0
V_norm = V/part;
else % part = 0 --> avoid "divide by 0"
V_norm = part;
end
Эта проблема работает, если:
, но если у меня другой случай, хотя результат пропорционален, сумма не равна 0. Например:
V = [1,0,1]
V_norm = [0.74,0,0.74]
V = [1,1,1]
V_norm = [0.54,0.54,0.54]
(я не уверен, что число правильное, потому что я не могу использовать Matlab прямо сейчас, но я уверен, что сумма > 1 )
А подсказка?
Заранее спасибо