function mnloglog( x,y,varargin ) %mnloglog - plot log-log scale %mnloglog(x1,y1,x2,y2,...) %This function has some options % X,YTic, X,YLim, Legend, Location (of Legend),title nargin=length(varargin); xval{1}=x; yval{1}=y; linewidth{1}=2; linestyle{1} = '-'; fontsize = 16; ii = 1; jj = 1; maxx = max(x); minx = min(x); maxy = max(y); miny = min(y); if nargin ~= 0 while ~ischar(varargin{ii}) xval{jj+1} = varargin{ii}; yval{jj+1} = varargin{ii+1}; linewidth{jj+1} = 2; linestyle{jj+1} = '-'; tempmaxx = max(varargin{ii}); tempmaxy = max(varargin{ii+1}); tempminx = min(varargin{ii}); tempminy = min(varargin{ii+1}); maxx = max(tempmaxx,maxx); maxy = max(tempmaxy,maxy); minx = min(tempminx,minx); miny = min(tempminy,miny); ii = ii + 2; jj = jj + 1; if ii > nargin break; end end end xtickflag = false; ytickflag = false; xlimvar = [minx maxx]; ylimvar = [miny maxy] for i=ii:2:nargin; if strcmp(varargin{i},'YTic')||strcmp(varargin{i},'ytic') var = varargin{i+1}; set(gca,'YTick',var); ytickflag = true; elseif strcmp(varargin{i},'XTic')||strcmp(varargin{i},'xtic') var = varargin{i+1}; set(gca,'XTick',var); xtickflag = true; elseif strcmp(varargin{i},'YLim')||strcmp(varargin{i},'ylim') ylimvar = varargin{i+1}; miny = ylimvar(1); maxy = ylimvar(2); elseif strcmp(varargin{i},'XLim')||strcmp(varargin{i},'xlim') xlimvar = varargin{i+1}; minx = xlimvar(1); maxx = xlimvar(2); elseif strcmp(varargin{i},'Legend')||strcmp(varargin{i},'legend') varlegend = varargin{i+1}; elseif strcmp(varargin{i},'Location')||strcmp(varargin{i},'location') position = varargin{i+1}; elseif strcmp(varargin{i},'Title')||strcmp(varargin{i},'title') titlevar = varargin{i+1}; elseif strcmp(varargin{i},'YLabel')||strcmp(varargin{i},'ylabel')||strcmp(varargin{i},'Ylabel') ylabelvar = varargin{i+1}; elseif strcmp(varargin{i},'XLabel')||strcmp(varargin{i},'xlabel')||strcmp(varargin{i},'Xlabel') xlabelvar = varargin{i+1}; elseif strcmp(varargin{i},'linestyle')||strcmp(varargin{i},'Linestyle')|| strcmp(varargin{i},'LineStyle') jj = 1; for var = varargin{i+1} linestyle{jj} = var{1}; jj = jj+1; end elseif strcmp(varargin{i},'linewidth')||strcmp(varargin{i},'Linewidth')|| strcmp(varargin{i},'LineWidth') jj = 1; for var = varargin{i+1} linewidth{jj} = var; jj = jj+1; end end end loglog(xval{1},yval{1},linestyle{1},'LineWidth',linewidth{1}); for i = 2:length(xval) hold all loglog(xval{i},yval{i},linestyle{i},'LineWidth',linewidth{i}); end set(gca,'FontSize',fontsize); xlim(xlimvar); ylim(ylimvar); xlabel(xlabelvar); ylabel(ylabelvar); if exist('varlegend','var') && exist('position','var') if ischar(varlegend) legend(varlegend,'Location',position) else nlegend = length(varlegend); for i = 1:nlegend legend(varlegend,'Location',position) end end elseif exist('varlegend','var') if ischar(varlegend) legend(varlegend) else nlegend = length(varlegend); for i = 1:nlegend legend(varlegend) end end end if exist('titlevar','var') title(titlevar,'FontSize',18) end grid on if miny <= 0 && ~ytickflag error('one or some ydata have the number under zero. Please define Ytick'); return end if ~xtickflag set(gca,'XTick',10.^(floor(log10(minx)):ceil(log10(maxx)))); end if ~ytickflag set(gca,'YTick',10.^(floor(log10(miny)):ceil(log10(maxy)))); miny maxy end set(gca,'XMinorGrid','on') set(gca,'YMinorGrid','on') end