Daniel@0: function Y = scale_ratings(Y, max_weight) Daniel@0: % [Yout, Xout] = scale_ratings(Y, max_weight) Daniel@0: Daniel@0: Daniel@0: % get maximal weight Daniel@0: weights = cell2mat(Y(:,3)); Daniel@0: max_dataweight = max(weights); Daniel@0: Daniel@0: valid = ~(cellfun(@isempty, Y(:,1)) | cellfun(@isempty, Y(:,2))); Daniel@0: Daniel@0: % scale weights to a maximal value of max_weight Daniel@0: for i = 1:size(Y, 1) Daniel@0: if valid(i) && Y{i,3} > 0 Daniel@0: Y{i,3} = min(max_weight, max(1, round((Y{i,3} / max_dataweight) * max_weight))); Daniel@0: end Daniel@0: end