0001 function m = Monochrome(color,n,varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 hgamma = 1;
0028 type = 'linear';
0029 n0 = 100;
0030 color0 = [0 0 0];
0031
0032
0033 if nargin == 0,
0034
0035 color = color0;
0036 n = n0;
0037 elseif nargin == 1,
0038 if isdvector(color,'#3','>=0'),
0039
0040 n = n0;
0041 elseif isiscalar(color),
0042
0043 n = color;
0044 color = color0;
0045 else
0046
0047 error('Incorrect parameter (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).');
0048 end
0049 else
0050 if isdvector(color,'#3','>=0'),
0051
0052 if ischar(n),
0053
0054 varargin = {n,varargin{:}};
0055 n = n0;
0056 elseif ~isiscalar(n),
0057
0058 error('Incorrect number of output rows (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).');
0059 end
0060 elseif isiscalar(color),
0061
0062 varargin = {n,varargin{:}};
0063 n = color;
0064 color = color0;
0065 else
0066
0067 varargin = {color,n,varargin{:}};
0068 n = n0;
0069 color = color0;
0070 end
0071 end
0072
0073
0074 if mod(length(varargin),2) ~= 0,
0075 error('Incorrect number of parameters (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).');
0076 end
0077
0078
0079
0080 for i = 1:2:length(varargin),
0081 if ~ischar(varargin{i}),
0082 error(['Parameter ' num2str(i+2) ' is not a property (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).']);
0083 end
0084 switch(lower(varargin{i})),
0085 case 'hgamma',
0086 hgamma = varargin{i+1};
0087 if ~isdscalar(hgamma,'>=0'),
0088 error('Incorrect value for property ''hgamma'' (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).');
0089 end
0090 otherwise,
0091 error(['Unknown property ''' num2str(varargin{i}) ''' (type ''help <a href="matlab:help Monochrome">Monochrome</a>'' for details).']);
0092 end
0093 end
0094
0095 for i = 1:3,
0096 m(:,i) = linspace(1,color(i),n).^(1/hgamma);
0097 end