Я пытался энтропии для каждого столбца, матрица выглядит следующим образом:Как можно векторизовать расчет энтропии?
0.5 0.3333 0.2
0 0.3333 0.4
0.5 0.3333 0.4
Каждый столбец добавить к одному, однако, есть некоторые нули в матрице, так что если я просто log2 (обр (я , :)), в результате будет -Inf, поэтому все это не сработает
На практике у меня огромная матрица, поэтому я хочу, чтобы программа работала быстро, есть ли работа вокруг?
Вот мое решение, работает ли оно так же быстро, как p. * Log2 (p)?
log2p = log2(p);
log2p(log2p==-Inf)=0;
entropy = entropy - p .* log2p;
Я не понял, что именно вы хотите сделать, но вы можете добавить эпсилон (0,001) к матрице, поэтому он не будет содержать нулей. – Adiel
@Adiel Я хочу рассчитать энтропию для каждого столбца, что вы сказали, это работа вокруг – cloudyFan
@cloudyFan ваш вопрос не ясен, что вы пытаетесь прорисовать? и как '-inf 'связано с вашей проблемой векторизации? – Shai