Mercurial > octave
annotate scripts/plot/draw/contourc.m @ 33670:9dd2a8e7e0d5 default tip @
uifigure.m: Make sure variable exists before it is used (bug #65459).
* scripts/gui/uifigure.m: The variable "props" might have been used before it
existed. Make sure it exists for all code paths.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Mon, 24 Jun 2024 10:29:15 +0200 |
parents | 2e484f9f1f18 |
children |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
32632
2e484f9f1f18
maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
31706
diff
changeset
|
3 ## Copyright (C) 2003-2024 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26600
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
6257 | 7 ## |
6440 | 8 ## This file is part of Octave. |
9 ## | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24321
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
6257 | 11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24321
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
13 ## (at your option) any later version. |
6257 | 14 ## |
6440 | 15 ## Octave is distributed in the hope that it will be useful, but |
6257 | 16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
18 ## GNU General Public License for more details. |
6257 | 19 ## |
20 ## You should have received a copy of the GNU General Public License | |
7016 | 21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24321
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
6257 | 25 |
26 ## -*- texinfo -*- | |
29278 | 27 ## @deftypefn {} {@var{c} =} contourc (@var{z}) |
28 ## @deftypefnx {} {@var{c} =} contourc (@var{z}, @var{vn}) | |
29 ## @deftypefnx {} {@var{c} =} contourc (@var{x}, @var{y}, @var{z}) | |
30 ## @deftypefnx {} {@var{c} =} contourc (@var{x}, @var{y}, @var{z}, @var{vn}) | |
31 ## @deftypefnx {} {[@var{c}, @var{lev}] =} contourc (@dots{}) | |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
32 ## Compute contour lines (isolines of constant Z value). |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
33 ## |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
34 ## The matrix @var{z} contains height values above the rectangular grid |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
35 ## determined by @var{x} and @var{y}. If only a single input @var{z} is |
24319
3cdd2b6c78cb
doc: Correct surface plot explanation of meshgridded results of 1 input (bug #52536)
Rik <rik@octave.org>
parents:
23219
diff
changeset
|
36 ## provided then @var{x} is taken to be @code{1:columns (@var{z})} and @var{y} |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
37 ## is taken to be @code{1:rows (@var{z})}. The minimum data size is 2x2. |
6257 | 38 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
39 ## The optional input @var{vn} is either a scalar denoting the number of |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
40 ## contour lines to compute or a vector containing the Z values where lines |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
41 ## will be computed. When @var{vn} is a vector the number of contour lines |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
42 ## is @code{numel (@var{vn})}. However, to compute a single contour line |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
43 ## at a given value use @code{@var{vn} = [val, val]}. If @var{vn} is omitted |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
44 ## it defaults to 10. |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
45 ## |
29278 | 46 ## The return value @var{c} is a 2x@var{n} matrix containing the contour lines |
47 ## in the following format | |
6257 | 48 ## |
49 ## @example | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
50 ## @group |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
51 ## @var{c} = [lev1, x1, x2, @dots{}, levn, x1, x2, ... |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
52 ## len1, y1, y2, @dots{}, lenn, y1, y2, @dots{}] |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
53 ## @end group |
6257 | 54 ## @end example |
55 ## | |
56 ## @noindent | |
29278 | 57 ## in which contour line @var{n} has a level (height) of @var{levn} and length |
58 ## of @var{lenn}. | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
59 ## |
29278 | 60 ## The optional return value @var{lev} is a vector with the Z values of the |
61 ## contour levels. | |
6257 | 62 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
63 ## Example: |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10821
diff
changeset
|
64 ## |
6257 | 65 ## @example |
6592 | 66 ## @group |
67 ## x = 0:2; | |
68 ## y = x; | |
69 ## z = x' * y; | |
26600
f6730533820e
doc: clean up doc example blocks for accuracy and consistent formatting
Mike Miller <mtmiller@octave.org>
parents:
26376
diff
changeset
|
70 ## c = contourc (x, y, z, 2:3) |
f6730533820e
doc: clean up doc example blocks for accuracy and consistent formatting
Mike Miller <mtmiller@octave.org>
parents:
26376
diff
changeset
|
71 ## @result{} c = |
f6730533820e
doc: clean up doc example blocks for accuracy and consistent formatting
Mike Miller <mtmiller@octave.org>
parents:
26376
diff
changeset
|
72 ## 2.0000 1.0000 1.0000 2.0000 2.0000 3.0000 1.5000 2.0000 |
f6730533820e
doc: clean up doc example blocks for accuracy and consistent formatting
Mike Miller <mtmiller@octave.org>
parents:
26376
diff
changeset
|
73 ## 4.0000 2.0000 2.0000 1.0000 1.0000 2.0000 2.0000 1.5000 |
6592 | 74 ## @end group |
6257 | 75 ## @end example |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
76 ## @seealso{contour, contourf, contour3, clabel} |
6257 | 77 ## @end deftypefn |
78 | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
79 function [c, lev] = contourc (varargin) |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
80 |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
81 if (nargin < 1 || nargin > 4) |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
82 print_usage (); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
83 endif |
6257 | 84 |
85 if (nargin == 1) | |
86 z = varargin{1}; | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
87 x = 1:columns (z); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
88 y = 1:rows (z); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
89 vn = 10; |
6257 | 90 elseif (nargin == 2) |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
91 z = varargin{1}; |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
92 x = 1:columns (z); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
93 y = 1:rows (z); |
6257 | 94 vn = varargin{2}; |
95 elseif (nargin == 3) | |
96 x = varargin{1}; | |
97 y = varargin{2}; | |
98 z = varargin{3}; | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
99 vn = 10; |
6257 | 100 elseif (nargin == 4) |
101 x = varargin{1}; | |
102 y = varargin{2}; | |
103 z = varargin{3}; | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
104 vn = varargin{4}; |
6257 | 105 endif |
106 | |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
107 if (! (isnumeric (z) && isnumeric (x) && isnumeric (y)) |
29278 | 108 || ! (ismatrix (z) && ismatrix (x) && ismatrix (y)) |
109 || ! (isreal (z) && isreal (x) && isreal (y))) | |
110 error ("contourc: X, Y, and Z must be real numeric matrices"); | |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
111 endif |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
112 |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
113 if (rows (z) < 2 || columns (z) < 2) |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
114 error ("contourc: Z data must have at least 2 rows and 2 columns"); |
10634
60542efcfa2c
Check input arguments for size and type (bug #29861).
Rik <octave@nomad.inbox5.com>
parents:
9758
diff
changeset
|
115 endif |
60542efcfa2c
Check input arguments for size and type (bug #29861).
Rik <octave@nomad.inbox5.com>
parents:
9758
diff
changeset
|
116 |
6257 | 117 if (isscalar (vn)) |
29278 | 118 lev = linspace (min (z(:)), max (z(:)), vn+2)(2:end-1); |
6257 | 119 else |
29278 | 120 lev = unique (sort (vn)); |
6257 | 121 endif |
122 | |
7327 | 123 if (isvector (x) && isvector (y)) |
29278 | 124 c = __contourc__ (x(:)', y(:)', z, lev); |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
125 elseif (! any (bsxfun (@minus, x, x(1,:))(:)) |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
126 && ! any (bsxfun (@minus, y, y(:,1))(:))) |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
127 ## x,y are uniform grid (such as from meshgrid) |
29278 | 128 c = __contourc__ (x(1,:), y(:,1)', z, lev); |
7327 | 129 else |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
130 ## Data is sampled over non-uniform mesh. |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
131 ## Algorithm calculates contours for uniform grid |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
132 ## and then interpolates values back to the non-uniform mesh. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
133 |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
134 ## Uniform grid for __contourc__. |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
135 [nr, nc] = size (z); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
136 ii = 1:nc; |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
137 jj = 1:nr; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
138 |
29278 | 139 c = __contourc__ (ii, jj, z, lev); |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
140 |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
141 ## Map the contour lines from index space (i,j) |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
142 ## back to the original grid (x,y) |
7327 | 143 i = 1; |
6257 | 144 |
29278 | 145 while (i < columns (c)) |
146 clen = c(2, i); | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
147 idx = i + (1:clen); |
6257 | 148 |
29278 | 149 ci = c(1, idx); |
150 cj = c(2, idx); | |
7327 | 151 |
29278 | 152 ## Due to rounding errors, some elements of ci and cj can fall out of the |
153 ## range of ii and jj and interp2 would return NA for those values. | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
154 ## The permitted range is enforced here: |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
155 |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
156 ci = max (ci, 1); ci = min (ci, nc); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
157 cj = max (cj, 1); cj = min (cj, nr); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
158 |
29278 | 159 c(1, idx) = interp2 (ii, jj, x, ci, cj); |
160 c(2, idx) = interp2 (ii, jj, y, ci, cj); | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
161 |
29278 | 162 i += (clen + 1); |
7327 | 163 endwhile |
6257 | 164 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
165 |
6257 | 166 endfunction |
7245 | 167 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14327
diff
changeset
|
168 |
8790
a013ff655ca4
Trivial changes to demos to produce a more pleasant output for octave+gnuplot+aquaterm.
Ben Abbott <bpabbott@mac.com>
parents:
8325
diff
changeset
|
169 %!test |
7245 | 170 %! x = 0:2; |
171 %! y = x; | |
172 %! z = x' * y; | |
17451
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
173 %! c_exp = [2, 1, 1, 2, 2, 3, 1.5, 2; 4, 2, 2, 1, 1, 2, 2, 1.5]; |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
174 %! lev_exp = [2 3]; |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
175 %! [c_obs, lev_obs] = contourc (x, y, z, 2:3); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
176 %! assert (c_obs, c_exp, eps); |
56e72e8d1aba
contourc.m: Code special case for meshgrid input (30X performance increase).
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
177 %! assert (lev_obs, lev_exp, eps); |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
178 |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
179 ## Test input validation |
28896
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
180 %!error <Invalid call> contourc () |
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
181 %!error <Invalid call> contourc (1,2,3,4,5) |
29278 | 182 %!error <X, Y, and Z must be .* numeric> contourc ({3}) |
183 %!error <X, Y, and Z must be .* numeric> contourc ({1}, 2, 3) | |
184 %!error <X, Y, and Z must be .* numeric> contourc (1, {2}, 3) | |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
185 %!error <X, Y, and Z must be .* matrices> contourc (ones (3,3,3)) |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
186 %!error <X, Y, and Z must be .* matrices> contourc (ones (3,3,3), 2, 3) |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
187 %!error <X, Y, and Z must be .* matrices> contourc (1, ones (3,3,3), 3) |
29278 | 188 %!error <X, Y, and Z must be real> contourc (3i) |
189 %!error <X, Y, and Z must be real> contourc (1i, 2, 3) | |
190 %!error <X, Y, and Z must be real> contourc (1, 2i, 3) | |
26120
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
191 %!error <Z data must have at least 2 rows> contourc ([1, 2]) |
80643ff8c8b7
contourc.m: Tighten input validation to avoid segfault in __contourc__ (bug #55071).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
192 %!error <Z data must have at least .* 2 columns> contourc ([1; 2]) |