I have a 296×1 column vector called Sscore. Each row represents the score for a node, ie row 1 represents the score for node 1.
I want to return another column vector with the rank of each row, for example, if node 5 has the 10th highest score, i want the 5th row of that new vector to have a value of 10.
My code leading up to Sscore is below. Thanks!
% weight the matrix, giving a weight to each column
weights = [0.1666667, 0.1666667, 0.1666667, 0.1666667, 0.1666667, 0.1666667];normalimpactw = bsxfun(@times, normalimpact, weights);max_vals = max(normalimpactw); % maximum values of each colum(1 to 6 )
Dplus = zeros(size(normalimpactw,1), 1); % initialize
for ii =1: size(normalimpactw, 1 ) Dplus(ii, :) = sqrt(sum([normalimpactw(ii,:)-max_vals].^2 )); end Dplus; % column matrix after calculation
min_vals = min(normalimpactw); % minimim values of each colum(1 to 6 )
Dminus = zeros(size(normalimpactw,1), 1); % initialize for ii =1: size(normalimpactw, 1 ) Dminus(ii, :) = sqrt(sum([normalimpactw(ii,:)-min_vals].^2 )); end Dminus; % column matrix after calculation Sscore = zeros(size(Dminus,1),1);for n=1:296 Sscore(n,:) = Dminus(n,:)/(Dminus(n,:)+Dplus(n,:));endSscore;
Best Answer