Description 
% H = colormapline(X,Y,Z,C) Plot a line using a specified colormap
% If Z is given, a 3D plot with coordinates X, Y, Z is created.
% If Z is not given, a 2D plot of Y over X if created.
% If Y and Z are not given, a 2D plot of X over 1:length(X) is created.
% The plotted line uses all colors in a given colormap in ascending
% order. Other than with other functions in File Exchange, the color
% does NOT depend on any coordinate.
% Technically, length(colormap) lines are plotted, each with a different
% color from the colormap in ascending order.
% H is a handle to the complete colored line. It can be used to set
% parameters such as linewidth and linestyle.
% C is optional. If it is specified, it is used as a colormap. To use it
% with a 2D plot, use Z=[] and Y=[] if required;
%
% Examples:
%% 2D plot
% t=0:0.1:10*pi;
% h=colormapline(t.*sin(t),t.*cos(t),[],jet(128));
% set(h,'linewidth',3,'linestyle','')
%
%% 3D plot
% t=20*pi:0.1:20*pi;
% h=colormapline(t.*sin(t),t.*cos(t),sin(t),jet(128));
% set(h,'linewidth',3)
%
%% Minimal example (2D plot with one input)
% h=colormapline(1:1000);
% Changes from version 1 (20130123):
%  Returns proper error messages when called
% with input vectors of length < 3 or with different lengths.
%  Exits with the same hold state it was started with.
%  Works with input vectors which are shorter than the colormap.
% For this, the colormap is compressed to the input vector length.
%  Works with colormaps of length 1 or 2
%  Also works with a single input, like plot(). (> "minimal example")
% Thanks go to Rob Campbell for his comments on some of these points.
Other than stated below, this file was not inspired by by Matteo Niccoli's perceptually improved colormaps. Nevertheless I like them.
