danieleb@3: function z = l1overl2(X) danieleb@3: %L1OVERL2 ratio between the l1 and the l2 norms. danieleb@3: % danieleb@3: % z = l1overl2(X) danieleb@3: % danieleb@3: % computes the ratio between the l1 and the l2 norm of the input X. If danieleb@3: % input is a matrix, the norms are calculated along the columns and a mean danieleb@3: % value is returned. If the input is a cell, the norms are calculated danieleb@3: % independently for each cell entry and a mean value is returned. danieleb@3: % danieleb@3: % ----------------------------------------------------------- % danieleb@3: % Daniele Barchiesi, daniele.barchiesi@eecs.qmul.ac.uk % danieleb@3: % Centre for Digital Music, Queen Mary University of London % danieleb@3: % Apr. 2011 % danieleb@3: % ----------------------------------------------------------- % danieleb@3: if iscell(X) danieleb@3: nCols = length(X); danieleb@3: z = zeros(nCols,1); danieleb@3: for i=1:nCols danieleb@3: z(i) = norm(X{:,i},1)/norm(X{:,i},2); danieleb@3: end danieleb@3: else danieleb@3: nCols = size(X,2); danieleb@3: z = zeros(nCols,1); danieleb@3: for i=1:nCols danieleb@3: z(i) = norm(X(:,i),1)/norm(X(:,i),2); danieleb@3: end danieleb@3: end danieleb@3: danieleb@3: z(isnan(z)) = []; danieleb@3: z = mean(z); danieleb@3: danieleb@3: %EOF