function x = cpltaxes(z) %CPLTAXES Determine suitable AXIS for plot of complex vector. % X = CPLTAXES(Z), where Z is a complex vector, % determines a 4-vector X such that AXIS(X) sets axes for a plot % of Z that has axes of equal length and leaves a reasonable amount % of space around the edge of the plot. % Called by FV, GERSH, PS and PSCONT. % Set x and y axis ranges so both have the same length. xmin = min(real(z)); xmax = max(real(z)); ymin = min(imag(z)); ymax = max(imag(z)); % Fix for rare case of `trivial data'. if xmin == xmax, xmin = xmin - 1/2; xmax = xmax + 1/2; end if ymin == ymax, ymin = ymin - 1/2; ymax = ymax + 1/2; end if xmax-xmin >= ymax-ymin ymid = (ymin + ymax)/2; ymin = ymid - (xmax-xmin)/2; ymax = ymid + (xmax-xmin)/2; else xmid = (xmin + xmax)/2; xmin = xmid - (ymax-ymin)/2; xmax = xmid + (ymax-ymin)/2; end axis('square') % Scale ranges by 1+2*alpha to give extra space around edges of plot. alpha = 0.1; x(1) = xmin - alpha*(xmax-xmin); x(2) = xmax + alpha*(xmax-xmin); x(3) = ymin - alpha*(ymax-ymin); x(4) = ymax + alpha*(ymax-ymin); if x(1) == x(2), x(2) = x(2) + 0.1; end if x(3) == x(4), x(4) = x(3) + 0.1; end