Mercurial > hg > camir-ismir2012
view toolboxes/FullBNT-1.0.7/KPMtools/max_mult.m @ 0:cc4b1211e677 tip
initial commit to HG from
Changeset:
646 (e263d8a21543) added further path and more save "camirversion.m"
author | Daniel Wolff |
---|---|
date | Fri, 19 Aug 2016 13:07:06 +0200 |
parents | |
children |
line wrap: on
line source
function y=max_mult(A,x) % MAX_MULT Like matrix multiplication, but sum gets replaced by max % function y=max_mult(A,x) y(i) = max_j A(i,j) x(j) %X=ones(size(A,1),1) * x(:)'; % X(j,i) = x(i) %y=max(A.*X, [], 2); % This is faster if size(x,2)==1 X=x*ones(1,size(A,1)); % X(i,j) = x(i) y=max(A'.*X)'; else %this works for arbitrarily sized A and x (but is ugly, and slower than above) X=repmat(x, [1 1 size(A,1)]); B=repmat(A, [1 1 size(x,2)]); C=permute(B,[2 3 1]); y=permute(max(C.*X),[3 2 1]); % this is even slower, as is using squeeze instead of permute % Y=permute(X, [3 1 2]); % y=permute(max(Y.*B, [], 2), [1 3 2]); end