Mercurial > hg > octave-nkf
annotate scripts/image/rgbplot.m @ 15192:8367f326fa29
Remove octave_value::is_real_nd_array cruft
* ov-base.h (octave_base_value::is_real_nd_array): Remove function.
* ov.h (octave_Value::is_real_nd_array): Remove function.
author | Max Brister <max@2bass.com> |
---|---|
date | Thu, 16 Aug 2012 18:57:45 -0500 |
parents | e2a14d1b4eaa |
children | 4beb3a4bd440 |
rev | line source |
---|---|
14271
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
1 ## Copyright (C) 2012 Rik Wehbring |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
2 ## |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
4 ## |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
8 ## your option) any later version. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
9 ## |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
13 ## General Public License for more details. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
14 ## |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
18 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
20 ## @deftypefn {Function File} {} rgbplot (@var{cmap}) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
21 ## Plot the components of a colormap. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
22 ## |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
23 ## The first column is plotted in red, the second column in green, and |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
24 ## the third column in blue. The values are between 0 and 1 and represent |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
25 ## the intensity of the RGB components in the given indexed color. |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
26 ## @seealso{colormap} |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
27 ## @end deftypefn |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
28 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
29 function rgbplot (cmap) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
30 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
31 if (nargin != 1) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
32 print_usage (); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
33 endif |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
34 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
35 if (! ismatrix (cmap) || ndims (cmap) != 2 || columns (cmap) != 3) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
36 error ("rgbplot: CMAP must be a matrix of size Nx3"); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
37 elseif (any (cmap(:) < 0) || any (cmap(:) > 1)) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
38 error ("rgbplot: CMAP intensities must be in the range [0, 1]"); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
39 endif |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
40 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
41 plot (cmap(:,1),"r", cmap(:,2),"g", cmap(:,3),"b"); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
42 set (gca, 'ytick', 0:0.1:1); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
43 xlabel ("color index"); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
44 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
45 endfunction |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
46 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
47 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
48 %!demo |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
49 %! clf; |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
50 %! rgbplot (ocean); |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
51 |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
52 %%test input validation |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
53 %!error rgbplot () |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
54 %!error rgbplot (1,2) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
55 %!error <CMAP must be a matrix of size Nx3> rgbplot ({0 1 0}) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
56 %!error <CMAP must be a matrix of size Nx3> rgbplot (ones (3,3,3)) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
57 %!error <CMAP must be a matrix of size Nx3> rgbplot (ones (3,4)) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
58 %!error <CMAP intensities must be in the range> rgbplot ([0 0 -2]) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
59 %!error <CMAP intensities must be in the range> rgbplot ([0 0 2]) |
e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
60 |