0001 function [y,abscissa]=nt_mmx(x,N)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 if nargin<2; N=1000; end
0013
0014 if ndims(x)==3;
0015 y=nt_mmx(x(:,1,1));
0016 y=zeros(size(y,1),size(x,2),size(x,3));
0017 for k=1:size(x,3)
0018 [y(:,:,k),abscissa]=nt_mmx(x(:,:,k),N);
0019 end
0020 return
0021 end
0022
0023 [m,n]=size(x);
0024
0025 if m<2*N
0026 y=zeros(2*m,n);
0027 for k=1:n
0028 xx=x(:,k);
0029 xx=[xx,xx]';
0030 xx=xx(:);
0031 y(:,k)=xx;
0032 end
0033 else
0034 N=ceil(m/floor(m/N));
0035 K=ceil(m/N);
0036 y=zeros(2*N,n);
0037 for k=1:n
0038 xx=x(:,k);
0039 xx(m:K*N)=xx(m);
0040 xx=reshape(xx,K,N);
0041 xx=[min(xx,[],1);max(xx,[],1)];
0042 xx=xx(:);
0043 y(:,k)=xx;
0044 end
0045 end
0046
0047 abscissa=linspace(0, m, 2*N);
0048