# HG changeset patch # User Carnë Draug # Date 1337201564 14400 # Node ID 5f1d4def40e1a9471715c6e3dd1a40b120700934 # Parent b9c02ee24de101692256e89d74c1841c2ee38de0 improve compatibility of colormap functions * autumn.m, bone.m, cool.m, copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, jet.m, lines.m, ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, winter: Always size and return 0x3 when size < 1. Return same values as Matlab when size == 1. diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/autumn.m --- a/scripts/image/autumn.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/autumn.m Wed May 16 16:52:44 2012 -0400 @@ -51,7 +51,7 @@ b = zeros (n, 1); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/bone.m --- a/scripts/image/bone.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/bone.m Wed May 16 16:52:44 2012 -0400 @@ -44,7 +44,7 @@ endif if (n == 1) - map = [0, 0, 0]; + map = [0.125, 0.125, 0.125]; elseif (n > 1) x = linspace (0, 1, n)'; r = (x < 3/4) .* (7/8 * x) ... @@ -56,7 +56,7 @@ + (x >= 3/8) .* (7/8 * x + 1/8); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/cool.m --- a/scripts/image/cool.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/cool.m Wed May 16 16:52:44 2012 -0400 @@ -50,7 +50,7 @@ b = ones (n, 1); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/copper.m --- a/scripts/image/copper.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/copper.m Wed May 16 16:52:44 2012 -0400 @@ -53,7 +53,7 @@ b = 1/2 * x; map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/flag.m --- a/scripts/image/flag.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/flag.m Wed May 16 16:52:44 2012 -0400 @@ -43,8 +43,14 @@ print_usage (); endif - C = [1, 0, 0; 1, 1, 1; 0, 0, 1; 0, 0, 0]; - map = C(rem (0:(n-1), 4) + 1, :); + if (n == 1) + map = [1, 0, 0]; + elseif (n > 1) + C = [1, 0, 0; 1, 1, 1; 0, 0, 1; 0, 0, 0]; + map = C(rem (0:(n-1), 4) + 1, :); + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/gmap40.m --- a/scripts/image/gmap40.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/gmap40.m Wed May 16 16:52:44 2012 -0400 @@ -43,8 +43,12 @@ print_usage (); endif - C = [1, 0, 0; 0, 1, 0; 0, 0, 1; 1, 1, 0; 1, 0, 1; 0, 1, 1]; - map = C(rem (0:(n-1), 6) + 1, :); + if (n > 1) + C = [1, 0, 0; 0, 1, 0; 0, 0, 1; 1, 1, 0; 1, 0, 1; 0, 1, 1]; + map = C(rem (0:(n-1), 6) + 1, :); + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/gray.m --- a/scripts/image/gray.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/gray.m Wed May 16 16:52:44 2012 -0400 @@ -45,9 +45,14 @@ print_usage (); endif - gr = [0:(n-1)]' / (n - 1); - - map = [gr, gr, gr]; + if (n == 1) + map = [0, 0, 0]; + elseif (n > 1) + gr = [0:(n-1)]' / (n - 1); + map = [gr, gr, gr]; + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/hot.m --- a/scripts/image/hot.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/hot.m Wed May 16 16:52:44 2012 -0400 @@ -44,7 +44,7 @@ endif if (n == 1) - map = [0, 0, 0]; + map = [1, 1, 1]; elseif (n > 1) x = linspace (0, 1, n)'; r = (x < 2/5) .* (5/2 * x) ... @@ -54,7 +54,7 @@ b = (x >= 4/5) .* (5 * x - 4); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/hsv.m --- a/scripts/image/hsv.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/hsv.m Wed May 16 16:52:44 2012 -0400 @@ -53,7 +53,7 @@ hue = linspace (0, 1, n)'; map = hsv2rgb ([hue, ones(n,1), ones(n,1)]); else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/jet.m --- a/scripts/image/jet.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/jet.m Wed May 16 16:52:44 2012 -0400 @@ -44,7 +44,7 @@ endif if (n == 1) - map = [0, 0, 0.5]; + map = [0, 1, 1]; elseif (n > 1) x = linspace (0, 1, n)'; r = (x >= 3/8 & x < 5/8) .* (4 * x - 3/2) ... @@ -58,7 +58,7 @@ + (x >= 3/8 & x < 5/8) .* (-4 * x + 5/2); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/lines.m --- a/scripts/image/lines.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/lines.m Wed May 16 16:52:44 2012 -0400 @@ -42,9 +42,15 @@ print_usage (); endif - C = get (gca, "colororder"); - nr = rows (C); - map = C(rem (0:(n-1), nr) + 1, :); + if (n == 1) + map = [0, 0, 1]; + elseif (n > 1) + C = get (gca, "colororder"); + nr = rows (C); + map = C(rem (0:(n-1), nr) + 1, :); + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/ocean.m --- a/scripts/image/ocean.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/ocean.m Wed May 16 16:52:44 2012 -0400 @@ -45,17 +45,23 @@ print_usage (); endif - cutin = fix (n/3); + if (n == 1) + map = [0, 0, 0]; + elseif (n > 1) + cutin = fix (n/3); - dr = (n - 1) / cutin; - r = prepad ([0:dr:(n-1)], n)'; + dr = (n - 1) / cutin; + r = prepad ([0:dr:(n-1)], n)'; - dg = (n - 1) / (2 * cutin); - g = prepad ([0:dg:(n-1)], n)'; + dg = (n - 1) / (2 * cutin); + g = prepad ([0:dg:(n-1)], n)'; + + b = [0:(n-1)]'; - b = [0:(n-1)]'; - - map = [r, g, b] / (n - 1); + map = [r, g, b] / (n - 1); + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/pink.m --- a/scripts/image/pink.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/pink.m Wed May 16 16:52:44 2012 -0400 @@ -44,7 +44,7 @@ endif if (n == 1) - map = [0, 0, 0]; + map = sqrt([1/3, 1/3, 1/3]); elseif (n > 1) x = linspace (0, 1, n)'; r = (x < 3/8) .* (14/9 * x) ... @@ -56,7 +56,7 @@ + (x >= 3/4) .* (2 * x - 1); map = sqrt ([r, g, b]); else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/prism.m --- a/scripts/image/prism.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/prism.m Wed May 16 16:52:44 2012 -0400 @@ -43,8 +43,14 @@ print_usage (); endif - C = [1, 0, 0; 1, 1/2, 0; 1, 1, 0; 0, 1, 0; 0, 0, 1; 2/3, 0, 1]; - map = C(rem (0:(n-1), 6) + 1, :); + if (n == 1) + map = [1 0 0]; + elseif (n > 1) + C = [1, 0, 0; 1, 1/2, 0; 1, 1, 0; 0, 1, 0; 0, 0, 1; 2/3, 0, 1]; + map = C(rem (0:(n-1), 6) + 1, :); + else + map = zeros (0, 3); + endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/rainbow.m --- a/scripts/image/rainbow.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/rainbow.m Wed May 16 16:52:44 2012 -0400 @@ -63,7 +63,7 @@ map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/spring.m --- a/scripts/image/spring.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/spring.m Wed May 16 16:52:44 2012 -0400 @@ -50,7 +50,7 @@ b = 1 - g; map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/summer.m --- a/scripts/image/summer.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/summer.m Wed May 16 16:52:44 2012 -0400 @@ -51,7 +51,7 @@ b = 0.4 * ones (n, 1); map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction diff -r b9c02ee24de1 -r 5f1d4def40e1 scripts/image/winter.m --- a/scripts/image/winter.m Wed May 16 16:52:08 2012 -0400 +++ b/scripts/image/winter.m Wed May 16 16:52:44 2012 -0400 @@ -50,7 +50,7 @@ b = 1 - g / 2; map = [r, g, b]; else - map = []; + map = zeros (0, 3); endif endfunction