Mercurial > hg > lots
annotate l1overl2.m @ 3:ee2a86d7ec07
Added support functions
author | danieleb@code.soundsoftware.ac.uk |
---|---|
date | Wed, 15 Jun 2011 11:26:03 +0100 |
parents | |
children | e23a23349e31 |
rev | line source |
---|---|
danieleb@3 | 1 function z = l1overl2(X) |
danieleb@3 | 2 %L1OVERL2 ratio between the l1 and the l2 norms. |
danieleb@3 | 3 % |
danieleb@3 | 4 % z = l1overl2(X) |
danieleb@3 | 5 % |
danieleb@3 | 6 % computes the ratio between the l1 and the l2 norm of the input X. If |
danieleb@3 | 7 % input is a matrix, the norms are calculated along the columns and a mean |
danieleb@3 | 8 % value is returned. If the input is a cell, the norms are calculated |
danieleb@3 | 9 % independently for each cell entry and a mean value is returned. |
danieleb@3 | 10 % |
danieleb@3 | 11 % ----------------------------------------------------------- % |
danieleb@3 | 12 % Daniele Barchiesi, daniele.barchiesi@eecs.qmul.ac.uk % |
danieleb@3 | 13 % Centre for Digital Music, Queen Mary University of London % |
danieleb@3 | 14 % Apr. 2011 % |
danieleb@3 | 15 % ----------------------------------------------------------- % |
danieleb@3 | 16 if iscell(X) |
danieleb@3 | 17 nCols = length(X); |
danieleb@3 | 18 z = zeros(nCols,1); |
danieleb@3 | 19 for i=1:nCols |
danieleb@3 | 20 z(i) = norm(X{:,i},1)/norm(X{:,i},2); |
danieleb@3 | 21 end |
danieleb@3 | 22 else |
danieleb@3 | 23 nCols = size(X,2); |
danieleb@3 | 24 z = zeros(nCols,1); |
danieleb@3 | 25 for i=1:nCols |
danieleb@3 | 26 z(i) = norm(X(:,i),1)/norm(X(:,i),2); |
danieleb@3 | 27 end |
danieleb@3 | 28 end |
danieleb@3 | 29 |
danieleb@3 | 30 z(isnan(z)) = []; |
danieleb@3 | 31 z = mean(z); |
danieleb@3 | 32 |
danieleb@3 | 33 %EOF |