1function [w1]=optwmc(zWin,n,w,mcAdapt,mu,order,beta,y)
 2    
 3% If mcAdapt specified columns requested only adapt  
 4 if isempty(mcAdapt)
 5        normvec = sum(zWin.^2);  % Norm of each column
 6        normvec(normvec<1e-10) = 1e-10;  % Ensure norm is nonzero
 7        normmat = ones(order,1)*normvec;  % Expand to matrix
 8        w = beta*w + mu*y(n)*zWin ./ normmat;  % Tap update
 9    else
10        amcInds = find(mcAdapt(n,:));
11        normvec = sum(zWin(:, amcInds).^2);  % Norm of each column
12        normvec(normvec<1e-10) = 1e-10;  % Ensure norm is nonzero
13        normmat = ones(order,1)*normvec; 
14        w(:,amcInds) = beta*w(:,amcInds) + ...
15            mu*y(n)*zWin(:,amcInds) ./ normmat;  % Tap update
16 end
17  w1=w;
18end